12#ifndef ARCANE_ACCELERATOR_RUNCOMMANDLAUNCH_H
13#define ARCANE_ACCELERATOR_RUNCOMMANDLAUNCH_H
17#include "arcane/accelerator/RunCommandLaunchImpl.h"
72#if defined(ARCANE_COMPILING_SYCL)
73#define RUNCOMMAND_LAUNCH(iter_name, bounds, ...) \
74 A_FUNCINFO << ::Arcane::Accelerator::impl::makeExtendedLoop(bounds __VA_OPT__(, __VA_ARGS__)) \
75 << [=] ARCCORE_HOST_DEVICE(auto iter_name __VA_OPT__(ARCANE_RUNCOMMAND_REDUCER_FOR_EACH(__VA_ARGS__)))
77#define RUNCOMMAND_LAUNCH(iter_name, bounds, ...) \
78 A_FUNCINFO << ::Arcane::Accelerator::impl::makeExtendedLoop(bounds __VA_OPT__(, __VA_ARGS__)) \
79 << [=] ARCCORE_HOST_DEVICE(typename decltype(bounds)::LoopIndexType iter_name __VA_OPT__(ARCANE_RUNCOMMAND_REDUCER_FOR_EACH(__VA_ARGS__)))
Gestion d'une commande sur accélérateur.
Intervalle d'itération d'une boucle utilisant le parallélisme hiérarchique.
Espace de nom pour l'utilisation des accélérateurs.
WorkGroupLoopRange makeWorkGroupLoopRange(RunCommand &command, Int32 nb_group, Int32 group_size)
Créé un intervalle d'itération pour la commande command.
std::int32_t Int32
Type entier signé sur 32 bits.