8#include <gtest/gtest.h>
10#include "arcane/accelerator/core/Runner.h"
11#include "arcane/accelerator/core/RunQueue.h"
13#include "arcane/accelerator/GenericPartitioner.h"
25 std::cout <<
"DO_Partition_1\n";
27 const Int32 nb_value = values.
size();
30 input.copy(values, queue);
32 auto input_values =
viewIn(queue, input);
33 auto output_values =
viewOut(queue, output);
34 auto select_lambda = [=] ARCCORE_HOST_DEVICE(Int32 input_index) {
35 return input_values[input_index] > 2.0;
37 auto setter_lambda = [=] ARCCORE_HOST_DEVICE(Int32 input_index, Int32 output_index) {
38 output_values[output_index] = input_values[input_index];
41 partitioner.applyWithIndex(nb_value, setter_lambda, select_lambda, A_FUNCINFO);
42 Int32 nb_first_part = partitioner.nbFirstPart();
43 std::cout <<
"NbFirstPart = " << nb_first_part <<
"\n";
44 std::cout <<
"Input=" << values <<
"\n";
45 std::cout <<
"Output=" << output.to1DSmallSpan() <<
"\n";
46 std::cout <<
"Expected=" << final_values <<
"\n";
49 ASSERT_EQ(output.to1DSmallSpan(), final_values);
Types et macros pour gérer les boucles sur les accélérateurs.
Algorithme générique de partitionnement d'une liste.
File d'exécution pour un accélérateur.
Tableaux multi-dimensionnels pour les types numériques accessibles sur accélérateurs.
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.
auto viewOut(const ViewBuildInfo &vbi, CellMaterialVariableScalarRef< DataType > &var)
Vue en écriture pour les variables materiaux scalaire.
auto viewIn(const ViewBuildInfo &vbi, const CellMaterialVariableScalarRef< DataType > &var)
Vue en lecture pour les variables materiaux scalaire.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-