14#include "arccore/common/accelerator/RunCommand.h"
16#include "arccore/common/ArraySimdPadder.h"
18#include "arccore/common/accelerator/RunQueue.h"
19#include "arccore/common/accelerator/NativeStream.h"
20#include "arccore/common/accelerator/internal/RunQueueImpl.h"
21#include "arccore/common/accelerator/internal/ReduceMemoryImpl.h"
22#include "arccore/common/accelerator/internal/RunCommandImpl.h"
23#include "arccore/common/accelerator/internal/IRunQueueStream.h"
36: m_p(run_queue._getCommandImpl())
38 m_p->m_has_living_run_command =
true;
47 m_p->m_has_living_run_command =
false;
48 m_p->_notifyDestroyRunCommand();
59executionPolicy()
const
61 return m_p->m_execution_policy;
70 return m_p->traceInfo();
79 return m_p->kernelName();
86nbThreadPerBlock()
const
88 return m_p->m_nb_thread_per_block;
94RunCommand& RunCommand::
97 m_p->m_trace_info = ti;
104RunCommand& RunCommand::
105addKernelName(
const String& v)
107 m_p->m_kernel_name = v;
114RunCommand& RunCommand::
115addNbThreadPerBlock(
Int32 v)
121 m_p->m_nb_thread_per_block = v;
128RunCommand& RunCommand::
132 if (m_p->m_use_accelerator){
135 m_p->m_nb_stride = v;
146 m_p->m_parallel_loop_options = opt;
153parallelLoopOptions()
const
155 return m_p->m_parallel_loop_options;
161extern "C++" ARCCORE_COMMON_EXPORT
172_internalNativeStream()
const
174 return m_p->internalStream()->nativeStream();
181_internalQueueImpl()
const
199_internalDestroyImpl(Impl::RunCommandImpl* p)
208_allocateReduceMemory(Int32 nb_grid)
210 auto& mem_list = m_p->m_active_reduce_memory_list;
211 if (!mem_list.empty()) {
212 for (
auto& x : mem_list)
213 x->setGridSizeAndAllocate(nb_grid);
221_internalNotifyBeginLaunchKernel()
223 m_p->notifyBeginLaunchKernel();
230_internalNotifyEndLaunchKernel()
232 m_p->notifyEndLaunchKernel();
239_internalNotifyBeginLaunchKernelSyclEvent(
void* sycl_event_ptr)
241 m_p->notifyLaunchKernelSyclEvent(sycl_event_ptr);
247ForLoopOneExecStat* RunCommand::
248_internalCommandExecStat()
250 return m_p->m_loop_one_exec_stat_ptr;
257_addSharedMemory(Int32 size)
259 Int32 current_size = m_p->m_shared_memory_size;
260 m_p->m_shared_memory_size += ArraySimdPadder::getSizeWithSpecificPadding<16>(size);
270 return m_p->m_shared_memory_size;
279 return m_p->m_nb_stride;
Type opaque pour encapsuler une 'stream' native.
Implémentation d'une commande pour accélérateur.
File d'exécution pour accélérateur.
friend ARCCORE_COMMON_EXPORT RunCommand & operator<<(RunCommand &command, const TraceInfo &trace_info)
Affichage des informations de la commande.
RunCommand & addTraceInfo(const TraceInfo &ti)
Positionne le informations de trace.
File d'exécution pour un accélérateur.
Options d'exécution d'une boucle parallèle en multi-thread.
Chaîne de caractères unicode.
Espace de nom pour l'utilisation des accélérateurs.
eExecutionPolicy
Politique d'exécution pour un Runner.
std::int32_t Int32
Type entier signé sur 32 bits.