12#ifndef ARCANE_ACCELERATOR_ASYNC_RUNQUEUE_POOL_H
13#define ARCANE_ACCELERATOR_ASYNC_RUNQUEUE_POOL_H
18#include "arcane/accelerator/core/Runner.h"
19#include "arcane/accelerator/core/RunQueue.h"
20#include "arcane/accelerator/core/RunQueueBuildInfo.h"
60 m_pool.reserve(m_pool_size);
61 for (Int32 i(0); i < m_pool_size; ++i) {
64 bi.
setPriority(
static_cast<std::underlying_type_t<eRunQueuePriority>
>(queues_priority));
66 queue_ref->setAsync(
true);
67 m_pool.add(queue_ref);
81 return *(m_pool[i % m_pool_size].get());
87 return m_pool[i % m_pool_size].get();
#define ARCANE_CHECK_POINTER(ptr)
Macro retournant le pointeur ptr s'il est non nul ou lancant une exception s'il est nul.
Collection de file d'exécution asynchrone avec priorité sur accélérateur.
Int32 poolSize() const
Taille de la collection.
RunQueue * operator[](Int32 i)
Pour récupérer la i % poolSize() ième queue d'exécution.
static constexpr Int32 POOL_MAX_SIZE
au plus 32 queues (32 = nb de kernels max exécutables simultanément)
const RunQueue & operator[](Int32 i) const
Pour récupérer la i % poolSize() ième queue d'exécution.
void waitAll() const
Force l'attente de toutes les RunQueue.
Informations pour créer une RunQueue.
void setPriority(int priority)
Positionne la priorité.
File d'exécution pour un accélérateur.
Gestionnaire d'exécution pour accélérateur.
Vecteur 1D de données avec sémantique par valeur (style STL).
Espace de nom pour l'utilisation des accélérateurs.
Ref< RunQueue > makeQueueRef(const Runner &runner)
Créé une référence sur file avec la politique d'exécution par défaut de runner.
AsyncRunQueuePool makeAsyncQueuePool(Runner &runner)
Créé un pool de file temporaire associée à runner.
eRunQueuePriority
Niveaux de priorité prédéfinis pour les files d'exécution sur les accélérateurs.
@ Default
Utilise 0 comme valeur par défaut.