32 if ((group_size % 32) != 0)
33 ARCCORE_FATAL(
"group_size '{0}' is not a multiple of 32", group_size);
35 command.addNbThreadPerBlock(group_size);
45 Int32 total_size = nb_group * group_size;
46 _setGroupSize(command, group_size);
58 if (group_size == 0) {
60 ARCCORE_FATAL(
"Value of argument 'nb_group' has to be '0' if 'group_size' is '0'");
64 nb_group = nb_element / group_size;
66 if ((nb_element % group_size) != 0)
69 _setGroupSize(command, group_size);
Types et macros pour gérer le parallélisme hiérarchique sur les accélérateurs.
Gestion d'une commande sur accélérateur.
Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique.
ARCCORE_ACCELERATOR_EXPORT WorkGroupLoopRange makeWorkGroupLoopRange(RunCommand &command, Int32 nb_group, Int32 group_size)
Créé un intervalle d'itération pour la commande command.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
std::int32_t Int32
Type entier signé sur 32 bits.