8#include <gtest/gtest.h>
10#include "arccore/base/PlatformUtils.h"
12#include "arccore/common/accelerator/Runner.h"
13#include "arccore/common/accelerator/RunQueue.h"
14#include "arccore/common/NumArray.h"
19#include "arccore/accelerator/internal/Initializer.h"
33 Int32 nb_value, Int32 nb_part, Int32 nb_loop)
35 if ((nb_value % nb_part) != 0)
36 ARCCORE_FATAL(
"{0} is not a multiple of {1}", nb_value, nb_part);
37 Int32 nb_true_value = nb_value / nb_part;
38 Int32 offset = nb_true_value;
42 for (
int j = 0; j < nb_loop; ++j) {
44 command.addNbThreadPerBlock(nb_thread);
48 for (Int32 k = 0; k < nb_part; ++k) {
49 Int32 z = i + (offset * k);
57 Int64 nb_byte = c.
size() *
sizeof(Int64) * nb_loop * 3;
59 Real nb_giga_byte_second = (
static_cast<Real
>(nb_byte) / 1.0e9) / diff;
60 std::cout <<
"** TotalLoopDirect "
61 <<
" nb_part=" << nb_part <<
" nb_value=" << nb_value
62 <<
" nb_thread=" << nb_thread
63 <<
" GB/s=" << nb_giga_byte_second <<
" time=" << diff <<
"\n";
#define ARCCORE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Types et fonctions pour gérer les synchronisations sur les accélérateurs.
Types et macros pour gérer les boucles sur les accélérateurs.
#define RUNCOMMAND_LOOP1(iter_name, x1,...)
Boucle 1D sur accélérateur avec arguments supplémentaires.
File d'exécution pour un accélérateur.
Vue d'un tableau d'éléments de type T.
constexpr __host__ __device__ SizeType size() const noexcept
Retourne la taille du tableau.
Espace de nom pour l'utilisation des accélérateurs.
RunCommand makeCommand(const RunQueue &run_queue)
Créé une commande associée à la file run_queue.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-