Arcane  v3.15.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IRunQueueStream.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* IRunQueueStream.h (C) 2000-2024 */
9/* */
10/* Interface d'un flux d'exécution pour une RunQueue. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ACCELERATOR_IRUNQUEUESTREAM_H
13#define ARCANE_ACCELERATOR_IRUNQUEUESTREAM_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane::Accelerator::impl
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
31class ARCANE_ACCELERATOR_CORE_EXPORT IRunQueueStream
32{
33 public:
34
35 virtual ~IRunQueueStream() = default;
36
37 public:
38
41
47 virtual void notifyEndLaunchKernel(impl::RunCommandImpl& command) = 0;
48
56 virtual void barrier() = 0;
57
59 virtual void copyMemory(const MemoryCopyArgs& args) = 0;
60
62 virtual void prefetchMemory(const MemoryPrefetchArgs& args) = 0;
63
64 public:
65
68
70 virtual bool _barrierNoException() = 0;
71
74};
75
76/*---------------------------------------------------------------------------*/
77/*---------------------------------------------------------------------------*/
78
79} // namespace Arcane::Accelerator::impl
80
81/*---------------------------------------------------------------------------*/
82/*---------------------------------------------------------------------------*/
83
84#endif
Arguments pour la copie mémoire.
Definition Memory.h:63
Arguments pour le préfetching mémoire.
Definition Memory.h:125
Interface d'un flux d'exécution pour une RunQueue.
virtual void barrier()=0
Bloque jusqu'à ce que toutes les actions associées à cette file soient terminées.
virtual bool _barrierNoException()=0
Barrière sans exception. Retourne true en cas d'erreur.
virtual void prefetchMemory(const MemoryPrefetchArgs &args)=0
Effectue un pré-chargement d'une zone mémoire.
virtual void notifyBeginLaunchKernel(impl::RunCommandImpl &command)=0
Notification avant le lancement de la commande.
virtual void _setSyclLastCommandEvent(void *sycl_event_ptr)
Pour SYCL, positionne l'évènement associé à la dernière commande exécutée.
virtual NativeStream nativeStream()=0
Pointeur sur la structure interne dépendante de l'implémentation.
virtual void copyMemory(const MemoryCopyArgs &args)=0
Effectue une copie entre deux zones mémoire.
virtual void notifyEndLaunchKernel(impl::RunCommandImpl &command)=0
Notification de fin de lancement de la commande.
Type opaque pour encapsuler une 'stream' native.
Implémentation d'une commande pour accélérateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149