12#ifndef ARCANE_ACCELERATOR_CORE_ACCELERATORCOREGLOBAL_H
13#define ARCANE_ACCELERATOR_CORE_ACCELERATORCOREGLOBAL_H
30#ifdef ARCANE_COMPONENT_arcane_accelerator_core
31#define ARCANE_ACCELERATOR_CORE_EXPORT ARCANE_EXPORT
33#define ARCANE_ACCELERATOR_CORE_EXPORT ARCANE_IMPORT
113extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT
134 Atomic ARCANE_DEPRECATED_REASON(
"Y2025: Use eDeviceReducePolicy::Grid instead") = 1,
171extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT
251namespace Arcane::Accelerator::impl
260extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT
void
261arcaneCheckPointerIsAccessible(
const RunQueue* queue,
const void* ptr,
262 const char* name,
const TraceInfo& ti);
269extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT
void
270arcaneCheckPointerIsAccessible(
const Runner* runner,
const void* ptr,
271 const char* name,
const TraceInfo& ti);
278extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT
void
280 const char* name,
const TraceInfo& ti);
283arcaneCheckPointerIsAccessible(
const RunQueue& queue,
const void* ptr,
284 const char* name,
const TraceInfo& ti)
286 arcaneCheckPointerIsAccessible(&queue, ptr, name, ti);
291 const char* name,
const TraceInfo& ti)
305#define ARCANE_CHECK_ACCESSIBLE_POINTER_ALWAYS(queue_or_runner_or_policy, ptr) \
306 ::Arcane::Accelerator::impl::arcaneCheckPointerIsAccessible((queue_or_runner_or_policy), (ptr), #ptr, A_FUNCINFO)
313#define ARCANE_CHECK_ACCESSIBLE_POINTER(queue_or_runner_or_policy, ptr) \
314 ARCANE_CHECK_ACCESSIBLE_POINTER_ALWAYS((queue_or_runner_or_policy), (ptr))
317#define ARCANE_CHECK_ACCESSIBLE_POINTER(queue_or_runner_or_policy, ptr)
void arcaneCheckPointerIsAccessible(const RunQueue *queue, const void *ptr, const char *name, const TraceInfo &ti)
Vérifie si ptr est accessible pour une exécution sur queue.
Déclarations des types utilisés dans Arcane.
Informations pour l'initialisation des accélérateurs.
Identifiant d'un composant du système.
Information sur un device.
Information mémoire d'un accélérateur.
Interface du gestionnaire des accélérateurs.
Interface d'une liste de devices.
Arguments pour lancer un kernel.
Type opaque pour encapsuler une 'stream' native.
Object temporaire pour conserver les informations d'exécution d'une commande et regrouper les tests.
Arguments pour la copie mémoire.
Arguments pour le préfetching mémoire.
Informations sur une adresse mémoire.
Région pour le profiling.
Gestion d'une commande sur accélérateur.
Informations pour créer une RunQueue.
Évènement pour une file d'exécution.
File d'exécution pour un accélérateur.
Gestionnaire d'exécution pour accélérateur.
Informations pour construire une vue pour les données sur accélérateur.
Interface de la gestion mémoire pour les réductions.
Interface de l'implémentation d'un évènement.
Interface d'un flux d'exécution pour une RunQueue.
Interface du runtime associé à un accélérateur.
Implémentation d'une commande pour accélérateur.
File d'exécution pour accélérateur.
Classe statique fournissant des fonctions internes à Arcane.
Espace de nom pour l'utilisation des accélérateurs.
ePointerAccessibility getPointerAccessibility(eExecutionPolicy policy, const void *ptr, PointerAttribute *ptr_attr)
Accessibilité de l'adresse ptr pour une politique d'exécutionpolicy.
std::ostream & operator<<(std::ostream &o, eExecutionPolicy exec_policy)
Affiche le nom de la politique d'exécution.
eDeviceReducePolicy
Politique des opératations de réduction sur les accélérateurs.
@ Grid
Utilise un noyau de calcul avec une synchronisations entre les blocs.
@ Atomic
Utilise des opérations atomiques entre les blocs.
ePointerAccessibility
Informations d'accessibilité d'une adresse mémoire.
@ Unknown
Accessibilité inconnue.
eMemoryAdvice
Conseils pour la gestion mémoire.
ePointerMemoryType
Type de mémoire pour un pointeur.
eExecutionPolicy
Politique d'exécution pour un Runner.
@ SYCL
Politique d'exécution utilisant l'environnement SYCL.
@ HIP
Politique d'exécution utilisant l'environnement HIP.
@ None
Aucune politique d'exécution.
@ CUDA
Politique d'exécution utilisant l'environnement CUDA.
@ Sequential
Politique d'exécution séquentielle.
@ Thread
Politique d'exécution multi-thread.
eRunQueuePriority
Niveaux de priorité prédéfinis pour les files d'exécution sur les accélérateurs.
@ Low
Une valeur arbitraire positive pour définir une priorité faible.
@ High
Une valeur arbitraire négative pour définir une priorité élevée.
@ Default
Utilise 0 comme valeur par défaut.
bool isAcceleratorPolicy(eExecutionPolicy exec_policy)
Indique si exec_policy correspond à un accélérateur.