Arcane
v4.1.0.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
AcceleratorGlobal.h
1
// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2
//-----------------------------------------------------------------------------
3
// Copyright 2000-2025 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
/* AcceleratorGlobal.h (C) 2000-2025 */
9
/* */
10
/* Déclarations générales pour le support des accélérateurs. */
11
/*---------------------------------------------------------------------------*/
12
#ifndef ARCANE_ACCELERATOR_ACCELERATORGLOBAL_H
13
#define ARCANE_ACCELERATOR_ACCELERATORGLOBAL_H
14
/*---------------------------------------------------------------------------*/
15
/*---------------------------------------------------------------------------*/
16
17
#include "
arcane/utils/UtilsTypes.h
"
18
19
#include "
arcane/accelerator/core/AcceleratorCoreGlobal.h
"
20
21
#include <iosfwd>
22
23
/*---------------------------------------------------------------------------*/
24
/*---------------------------------------------------------------------------*/
25
26
#ifdef ARCANE_COMPONENT_arcane_accelerator
27
#define ARCANE_ACCELERATOR_EXPORT ARCANE_EXPORT
28
#else
29
#define ARCANE_ACCELERATOR_EXPORT ARCANE_IMPORT
30
#endif
31
32
/*---------------------------------------------------------------------------*/
33
/*---------------------------------------------------------------------------*/
34
35
namespace
Arcane::Accelerator
36
{
37
namespace
Impl
38
{
39
class
CudaHipKernelRemainingArgsHelper
;
40
class
SyclKernelRemainingArgsHelper
;
41
}
42
43
/*---------------------------------------------------------------------------*/
44
/*---------------------------------------------------------------------------*/
45
46
template
<
typename
T, Int32 Extent = DynExtent>
class
LocalMemory
;
47
48
/*---------------------------------------------------------------------------*/
49
/*---------------------------------------------------------------------------*/
50
51
//! Type d'opération atomique supportée
52
enum class
eAtomicOperation
53
{
54
//! Ajout
55
Add
,
56
//! Minimum
57
Min
,
58
//! Maximum
59
Max
60
};
61
62
/*---------------------------------------------------------------------------*/
63
/*---------------------------------------------------------------------------*/
64
65
/*!
66
* \brief Initialise \a runner en fonction de
67
* la valeur de \a acc_info.
68
*/
69
extern
"C++"
ARCANE_ACCELERATOR_EXPORT
void
70
initializeRunner
(
Runner
& runner,
ITraceMng
* tm,
71
const
AcceleratorRuntimeInitialisationInfo
& acc_info);
72
73
/*---------------------------------------------------------------------------*/
74
/*---------------------------------------------------------------------------*/
75
76
}
// End namespace Arcane::Accelerator
77
78
/*---------------------------------------------------------------------------*/
79
/*---------------------------------------------------------------------------*/
80
81
namespace
Arcane::Accelerator::impl
82
{
83
84
/*---------------------------------------------------------------------------*/
85
/*---------------------------------------------------------------------------*/
86
87
extern
"C++"
ARCANE_ACCELERATOR_EXPORT String
88
getBadPolicyMessage(
eExecutionPolicy
policy);
89
90
/*---------------------------------------------------------------------------*/
91
/*---------------------------------------------------------------------------*/
92
93
}
94
95
/*---------------------------------------------------------------------------*/
96
/*---------------------------------------------------------------------------*/
97
98
//! Macro pour indiquer qu'un noyau n'a pas été compilé avec HIP
99
#define ARCANE_FATAL_NO_HIP_COMPILATION() \
100
ARCANE_FATAL(Arcane::Accelerator::impl::getBadPolicyMessage(Arcane::Accelerator::eExecutionPolicy::HIP));
101
102
//! Macro pour indiquer qu'un noyau n'a pas été compilé avec CUDA
103
#define ARCANE_FATAL_NO_CUDA_COMPILATION() \
104
ARCANE_FATAL(Arcane::Accelerator::impl::getBadPolicyMessage(Arcane::Accelerator::eExecutionPolicy::CUDA));
105
106
//! Macro pour indiquer qu'un noyau n'a pas été compilé avec SYCL
107
#define ARCANE_FATAL_NO_SYCL_COMPILATION() \
108
ARCANE_FATAL(Arcane::Accelerator::impl::getBadPolicyMessage(Arcane::Accelerator::eExecutionPolicy::SYCL));
109
110
/*---------------------------------------------------------------------------*/
111
/*---------------------------------------------------------------------------*/
112
113
#endif
AcceleratorCoreGlobal.h
UtilsTypes.h
Déclarations des types utilisés dans Arcane.
Arcane::Accelerator::AcceleratorRuntimeInitialisationInfo
Informations pour l'initialisation des accélérateurs.
Definition
accelerator/core/AcceleratorRuntimeInitialisationInfo.h:34
Arcane::Accelerator::Impl::CudaHipKernelRemainingArgsHelper
Classe pour appliquer une opération pour les arguments supplémentaires en début et en fin de noyau CU...
Definition
KernelLauncher.h:59
Arcane::Accelerator::Impl::SyclKernelRemainingArgsHelper
Classe pour appliquer une opération pour les arguments supplémentaires en début et en fin de noyau Sy...
Definition
KernelLauncher.h:99
Arcane::Accelerator::LocalMemory
Definition
LocalMemory.h:54
Arcane::Accelerator::Runner
Gestionnaire d'exécution pour accélérateur.
Definition
core/Runner.h:67
Arcane::ITraceMng
Interface du gestionnaire de traces.
Definition
arccore/src/trace/arccore/trace/ITraceMng.h:156
Arcane::Accelerator
Espace de nom pour l'utilisation des accélérateurs.
Definition
ArcaneTypes.h:644
Arcane::Accelerator::initializeRunner
void initializeRunner(Runner &runner, ITraceMng *tm, const AcceleratorRuntimeInitialisationInfo &acc_info)
Initialise runner en fonction de la valeur de acc_info.
Definition
Accelerator.cc:52
Arcane::Accelerator::eAtomicOperation
eAtomicOperation
Type d'opération atomique supportée.
Definition
AcceleratorGlobal.h:53
Arcane::Accelerator::eAtomicOperation::Max
@ Max
Maximum.
Definition
AcceleratorGlobal.h:59
Arcane::Accelerator::eAtomicOperation::Min
@ Min
Minimum.
Definition
AcceleratorGlobal.h:57
Arcane::Accelerator::eAtomicOperation::Add
@ Add
Ajout.
Definition
AcceleratorGlobal.h:55
Arcane::Accelerator::eExecutionPolicy
eExecutionPolicy
Politique d'exécution pour un Runner.
Definition
AcceleratorCoreGlobal.h:97
arcane
accelerator
AcceleratorGlobal.h
Généré le Lundi 24 Novembre 2025 03:20:32 pour Arcane par
1.13.2