12#ifndef ARCANE_ACCELERATOR_RUNCOMMANDLAUNCHINFO_H
13#define ARCANE_ACCELERATOR_RUNCOMMANDLAUNCHINFO_H
17#include "arcane/utils/CheckedConvert.h"
19#include "arcane/utils/Profiling.h"
21#include "arcane/accelerator/AcceleratorGlobal.h"
26namespace Arcane::Accelerator::impl
38 template <
typename SyclKernel,
typename Lambda,
typename LambdaArgs,
typename... ReducerArgs>
40 const LambdaArgs& args,
const ReducerArgs&... reducer_args);
46 int nb_block_per_grid = 0;
47 int nb_thread_per_block = 0;
84 void computeLoopRunInfo();
94 void* _internalStreamImpl();
99 bool m_has_exec_begun =
false;
100 bool m_is_notify_end_kernel_done =
false;
101 IRunnerRuntime* m_runtime =
nullptr;
102 IRunQueueStream* m_queue_stream =
nullptr;
104 ThreadBlockInfo m_thread_block_info;
106 Int64 m_total_loop_size = 0;
111 void _doEndKernelLaunch();
112 ThreadBlockInfo _computeThreadBlockInfo()
const;
118 void _addSyclEvent(
void* sycl_event_ptr);
Classes, Types et macros pour gérer la concurrence.
Gestion d'une commande sur accélérateur.
Int64 totalLoopSize() const
Taille totale de la boucle.
ThreadBlockInfo threadBlockInfo() const
Informations sur le nombre de block/thread/grille du noyau à lancer.
const ForLoopRunInfo & loopRunInfo() const
Informations d'exécution de la boucle.
Informations d'exécution d'une boucle.
Options d'exécution d'une boucle parallèle en multi-thread.
eExecutionPolicy
Politique d'exécution pour un Runner.
std::int64_t Int64
Type entier signé sur 64 bits.