Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
IRunnerRuntime.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/* IRunnerRuntime.h (C) 2000-2024 */
9/* */
10/* Interface du runtime associé à une RunQueue. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ACCELERATOR_INTERNAL_IRUNQUEUERUNTIME_H
13#define ARCANE_ACCELERATOR_INTERNAL_IRUNQUEUERUNTIME_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22namespace Arcane::Accelerator::impl
23{
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
31class ARCANE_ACCELERATOR_CORE_EXPORT IRunnerRuntime
32{
33 public:
34
35 virtual ~IRunnerRuntime() = default;
36
37 public:
38
39 virtual void notifyBeginLaunchKernel() = 0;
40 virtual void notifyEndLaunchKernel() = 0;
41 virtual void barrier() = 0;
42 virtual eExecutionPolicy executionPolicy() const = 0;
43 virtual IRunQueueStream* createStream(const RunQueueBuildInfo& bi) = 0;
44 virtual impl::IRunQueueEventImpl* createEventImpl() = 0;
45 virtual impl::IRunQueueEventImpl* createEventImplWithTimer() = 0;
46 virtual void setMemoryAdvice(ConstMemoryView buffer, eMemoryAdvice advice, DeviceId device_id) = 0;
47 virtual void unsetMemoryAdvice(ConstMemoryView buffer, eMemoryAdvice advice, DeviceId device_id) = 0;
48 virtual void setCurrentDevice(DeviceId device_id) = 0;
49 virtual const IDeviceInfoList* deviceInfoList() = 0;
50 virtual void getPointerAttribute(PointerAttribute& attribute, const void* ptr) = 0;
51
52 virtual void startProfiling() {}
53 virtual void stopProfiling() {}
54 virtual bool isProfilingActive() { return false; }
55 virtual void pushProfilerRange([[maybe_unused]] const String& name, [[maybe_unused]] Int32 color_gdb) {}
56 virtual void popProfilerRange() {}
57 virtual void finalize(ITraceMng*) {}
58
59 protected:
60
61 void _fillPointerAttribute(PointerAttribute& attribute,
63 int device, const void* pointer, const void* device_pointer,
64 const void* host_pointer);
65 void _fillPointerAttribute(PointerAttribute& attribute, const void* pointer);
66};
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70
71} // namespace Arcane::Accelerator::impl
72
73/*---------------------------------------------------------------------------*/
74/*---------------------------------------------------------------------------*/
75
76#endif
Identifiant d'un composant du système.
Definition DeviceId.h:33
Interface d'une liste de devices.
Informations sur une adresse mémoire.
Informations pour créer une RunQueue.
Interface de l'implémentation d'un évènement.
Interface d'un flux d'exécution pour une RunQueue.
Interface du runtime associé à une RunQueue.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Interface du gestionnaire de traces.
Chaîne de caractères unicode.
eMemoryAdvice
Conseils pour la gestion mémoire.
Definition Memory.h:36
ePointerMemoryType
Type de mémoire pour un pointeur.
eExecutionPolicy
Politique d'exécution pour un Runner.
std::int32_t Int32
Type entier signé sur 32 bits.