14#include "arcane/accelerator/core/RunCommand.h"
16#include "arcane/accelerator/core/RunQueue.h"
17#include "arcane/accelerator/core/NativeStream.h"
18#include "arcane/accelerator/core/internal/RunQueueImpl.h"
19#include "arcane/accelerator/core/internal/ReduceMemoryImpl.h"
20#include "arcane/accelerator/core/internal/RunCommandImpl.h"
21#include "arcane/accelerator/core/internal/IRunQueueStream.h"
33RunCommand(
const RunQueue& run_queue)
34: m_p(run_queue._getCommandImpl())
36 m_p->m_has_living_run_command =
true;
45 m_p->m_has_living_run_command =
false;
46 m_p->_notifyDestroyRunCommand();
58 return m_p->traceInfo();
67 return m_p->kernelName();
74nbThreadPerBlock()
const
76 return m_p->m_nb_thread_per_block;
85 m_p->m_trace_info = ti;
93addKernelName(
const String& v)
95 m_p->m_kernel_name = v;
103addNbThreadPerBlock(Int32 v)
109 m_p->m_nb_thread_per_block = v;
119 m_p->m_parallel_loop_options = opt;
126parallelLoopOptions()
const
128 return m_p->m_parallel_loop_options;
134extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT
145_internalNativeStream()
const
147 return m_p->internalStream()->nativeStream();
153impl::RunQueueImpl* RunCommand::
154_internalQueueImpl()
const
162impl::RunCommandImpl* RunCommand::
163_internalCreateImpl(impl::RunQueueImpl* queue)
165 return new impl::RunCommandImpl(queue);
172_internalDestroyImpl(impl::RunCommandImpl* p)
181_allocateReduceMemory(Int32 nb_grid)
183 auto& mem_list = m_p->m_active_reduce_memory_list;
184 if (!mem_list.empty()) {
185 for (
auto& x : mem_list)
186 x->setGridSizeAndAllocate(nb_grid);
194_internalNotifyBeginLaunchKernel()
196 m_p->notifyBeginLaunchKernel();
203_internalNotifyEndLaunchKernel()
205 m_p->notifyEndLaunchKernel();
212_internalNotifyBeginLaunchKernelSyclEvent(
void* sycl_event_ptr)
214 m_p->notifyLaunchKernelSyclEvent(sycl_event_ptr);
220ForLoopOneExecStat* RunCommand::
221_internalCommandExecStat()
223 return m_p->m_loop_one_exec_stat_ptr;
Gestion d'une commande sur accélérateur.
RunCommand & addTraceInfo(const TraceInfo &ti)
Positionne le informations de trace.
Type opaque pour encapsuler une 'stream' native.
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.
std::ostream & operator<<(std::ostream &ostr, eItemKind item_kind)
Opérateur de sortie sur un flot.