32 if ((group_size % 32) != 0)
33 ARCANE_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 ARCANE_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);
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
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.
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.