Interface d'un flux d'exécution pour une RunQueue. Plus de détails...
#include <arcane/accelerator/core/internal/IRunQueueStream.h>
Fonctions membres publiques | |
virtual void | notifyBeginLaunchKernel (impl::RunCommandImpl &command)=0 |
Notification avant le lancement de la commande. | |
virtual void | notifyEndLaunchKernel (impl::RunCommandImpl &command)=0 |
Notification de fin de lancement de la commande. | |
virtual void | barrier ()=0 |
Bloque jusqu'à ce que toutes les actions associées à cette file soient terminées. | |
virtual void | copyMemory (const MemoryCopyArgs &args)=0 |
Effectue une copie entre deux zones mémoire. | |
virtual void | prefetchMemory (const MemoryPrefetchArgs &args)=0 |
Effectue un pré-chargement d'une zone mémoire. | |
virtual void * | _internalImpl ()=0 |
Pointeur sur la structure interne dépendante de l'implémentation. | |
virtual bool | _barrierNoException ()=0 |
Barrière sans exception. Retourne true en cas d'erreur. | |
virtual void | _setSyclLastCommandEvent (void *sycl_event_ptr) |
Pour SYCL, positionne l'évènement associé à la dernière commande exécutée. | |
Interface d'un flux d'exécution pour une RunQueue.
Définition à la ligne 31 du fichier IRunQueueStream.h.
Barrière sans exception. Retourne true en cas d'erreur.
Implémenté dans Arcane::Accelerator::impl::HostRunQueueStream, Arcane::Accelerator::Cuda::CudaRunQueueStream, Arcane::Accelerator::Hip::HipRunQueueStream, et Arcane::Accelerator::Sycl::SyclRunQueueStream.
Pointeur sur la structure interne dépendante de l'implémentation.
Implémenté dans Arcane::Accelerator::impl::HostRunQueueStream, Arcane::Accelerator::Cuda::CudaRunQueueStream, Arcane::Accelerator::Hip::HipRunQueueStream, et Arcane::Accelerator::Sycl::SyclRunQueueStream.
|
inlinevirtual |
Pour SYCL, positionne l'évènement associé à la dernière commande exécutée.
Réimplémentée dans Arcane::Accelerator::Sycl::SyclRunQueueStream.
Définition à la ligne 73 du fichier IRunQueueStream.h.
Référencé par Arcane::Accelerator::impl::RunCommandImpl::notifyLaunchKernelSyclEvent().
Bloque jusqu'à ce que toutes les actions associées à cette file soient terminées.
Cela comprend les commandes (RunCommandImpl) et les autres actions telles que les copies mémoire asynchrones.
Implémenté dans Arcane::Accelerator::impl::HostRunQueueStream, Arcane::Accelerator::Cuda::CudaRunQueueStream, Arcane::Accelerator::Hip::HipRunQueueStream, et Arcane::Accelerator::Sycl::SyclRunQueueStream.
|
pure virtual |
Effectue une copie entre deux zones mémoire.
Implémenté dans Arcane::Accelerator::impl::HostRunQueueStream, Arcane::Accelerator::Cuda::CudaRunQueueStream, Arcane::Accelerator::Hip::HipRunQueueStream, et Arcane::Accelerator::Sycl::SyclRunQueueStream.
|
pure virtual |
Notification avant le lancement de la commande.
Implémenté dans Arcane::Accelerator::Cuda::CudaRunQueueStream, Arcane::Accelerator::Hip::HipRunQueueStream, Arcane::Accelerator::Sycl::SyclRunQueueStream, et Arcane::Accelerator::impl::HostRunQueueStream.
Référencé par Arcane::Accelerator::impl::RunCommandImpl::notifyBeginLaunchKernel().
|
pure virtual |
Notification de fin de lancement de la commande.
En mode asynchrone, la commande peut continuer à s'exécuter en tâche de fond.
Implémenté dans Arcane::Accelerator::Cuda::CudaRunQueueStream, Arcane::Accelerator::Hip::HipRunQueueStream, Arcane::Accelerator::Sycl::SyclRunQueueStream, et Arcane::Accelerator::impl::HostRunQueueStream.
Référencé par Arcane::Accelerator::impl::RunCommandImpl::notifyEndLaunchKernel().
|
pure virtual |
Effectue un pré-chargement d'une zone mémoire.
Implémenté dans Arcane::Accelerator::impl::HostRunQueueStream, Arcane::Accelerator::Cuda::CudaRunQueueStream, Arcane::Accelerator::Hip::HipRunQueueStream, et Arcane::Accelerator::Sycl::SyclRunQueueStream.