Arcane  v3.15.0.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/*---------------------------------------------------------------------------*/
34class ARCANE_ACCELERATOR_CORE_EXPORT IRunnerRuntime
35{
36 public:
37
38 virtual ~IRunnerRuntime() = default;
39
40 public:
41
42 virtual void notifyBeginLaunchKernel() = 0;
43 virtual void notifyEndLaunchKernel() = 0;
44 virtual void barrier() = 0;
45 virtual eExecutionPolicy executionPolicy() const = 0;
46 virtual IRunQueueStream* createStream(const RunQueueBuildInfo& bi) = 0;
47 virtual impl::IRunQueueEventImpl* createEventImpl() = 0;
48 virtual impl::IRunQueueEventImpl* createEventImplWithTimer() = 0;
49 virtual void setMemoryAdvice(ConstMemoryView buffer, eMemoryAdvice advice, DeviceId device_id) = 0;
50 virtual void unsetMemoryAdvice(ConstMemoryView buffer, eMemoryAdvice advice, DeviceId device_id) = 0;
51 virtual void setCurrentDevice(DeviceId device_id) = 0;
52 virtual const IDeviceInfoList* deviceInfoList() = 0;
53 virtual void getPointerAttribute(PointerAttribute& attribute, const void* ptr) = 0;
54 virtual DeviceMemoryInfo getDeviceMemoryInfo(DeviceId device_id) =0;
55
56 virtual void startProfiling() {}
57 virtual void stopProfiling() {}
58 virtual bool isProfilingActive() { return false; }
59 virtual void pushProfilerRange([[maybe_unused]] const String& name, [[maybe_unused]] Int32 color_gdb) {}
60 virtual void popProfilerRange() {}
61 virtual void finalize(ITraceMng*) {}
62
63 protected:
64
65 void _fillPointerAttribute(PointerAttribute& attribute,
67 int device, const void* pointer, const void* device_pointer,
68 const void* host_pointer);
69 void _fillPointerAttribute(PointerAttribute& attribute, const void* pointer);
70};
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75} // namespace Arcane::Accelerator::impl
76
77/*---------------------------------------------------------------------------*/
78/*---------------------------------------------------------------------------*/
79
80#endif
Identifiant d'un composant du système.
Definition DeviceId.h:33
Information mémoire d'un accélérateur.
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é à un accélérateur.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:149
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.