Arcane  v4.1.0.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
CommonGlobal.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/* CommonGlobal.h (C) 2000-2025 */
9/* */
10/* Définitions globales de la composante 'Common' de 'Arccore'. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCCORE_COMMON_COMMONGLOBAL_H
13#define ARCCORE_COMMON_COMMONGLOBAL_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arccore/base/ArccoreGlobal.h"
18
19#include <iosfwd>
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24#if defined(ARCCORE_COMPONENT_arccore_common)
25#define ARCCORE_COMMON_EXPORT ARCCORE_EXPORT
26#define ARCCORE_COMMON_EXTERN_TPL
27#else
28#define ARCCORE_COMMON_EXPORT ARCCORE_IMPORT
29#define ARCCORE_COMMON_EXTERN_TPL extern
30#endif
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
34
35namespace Arcane::Accelerator
36{
37class RunQueue;
38};
39
40/*---------------------------------------------------------------------------*/
41/*---------------------------------------------------------------------------*/
42
43// Pour l'instant on doit laisser ArrayTraits dans le namespace Arccore
44// pour des raisons de compatibilité avec la macro ARCCORE_DEFINE_ARRAY_PODTYPE
45namespace Arccore
46{
47template <typename DataType> class ArrayTraits;
48}
49
50/*---------------------------------------------------------------------------*/
51/*---------------------------------------------------------------------------*/
52
53namespace Arcane
54{
56
57/*---------------------------------------------------------------------------*/
58/*---------------------------------------------------------------------------*/
59
62class IMemoryCopier;
63
66class ArrayDebugInfo;
72
73class ArrayImplBase;
74class ArrayMetaData;
75template <typename DataType> class ArrayImplT;
76template <typename DataType> class Array;
77template <typename DataType> class AbstractArray;
78template <typename DataType> class UniqueArray;
79template <typename DataType> class SharedArray;
80using Arccore::ArrayTraits;
81
82/*---------------------------------------------------------------------------*/
83/*---------------------------------------------------------------------------*/
84
100
101/*---------------------------------------------------------------------------*/
102/*---------------------------------------------------------------------------*/
110enum class eHostDeviceMemoryLocation : int8_t
111{
115 Device = 1,
117 Host = 2,
122};
123
124extern "C++" ARCCORE_COMMON_EXPORT std::ostream&
125operator<<(std::ostream& o, eHostDeviceMemoryLocation r);
126
127/*---------------------------------------------------------------------------*/
128/*---------------------------------------------------------------------------*/
133{
137 Host,
141 Device,
144};
145
147static constexpr int ARCCORE_NB_MEMORY_RESOURCE = 5;
148
149/*---------------------------------------------------------------------------*/
150/*---------------------------------------------------------------------------*/
151
152extern "C++" ARCCORE_COMMON_EXPORT std::ostream&
153operator<<(std::ostream& o, eMemoryResource r);
154
155/*---------------------------------------------------------------------------*/
156/*---------------------------------------------------------------------------*/
157
158} // namespace Arcane
159
160/*---------------------------------------------------------------------------*/
161/*---------------------------------------------------------------------------*/
162
163#endif
164
Classe abstraite de base d'un vecteur.
File d'exécution pour un accélérateur.
Allocateur mémoire avec alignement mémoire spécifique.
Informations sur une zone mémoire allouée.
Informations de debug pour les classes tableaux.
Ce type n'est plus utilisé.
Cette classe n'est plus utilisée.
Meta-Données des tableaux.
Tableau d'items de types quelconques.
Allocateur mémoire via malloc/realloc/free.
Interface d'un allocateur pour la mémoire.
Interface pour les copies mémoire avec support des accélérateurs.
Partie interne à Arcane de 'IMemoryRessourceMng'.
Gestion des ressources mémoire pour les CPU et accélérateurs.
Classe contenant des informations pour spécialiser les allocations.
Allocateur mémoire via malloc/realloc/free avec impression listing.
Vecteur 1D de données avec sémantique par référence.
Vecteur 1D de données avec sémantique par valeur (style STL).
Caractéristiques pour un tableau.
Espace de nom pour l'utilisation des accélérateurs.
std::ostream & operator<<(std::ostream &o, eExecutionPolicy exec_policy)
Affiche le nom de la politique d'exécution.
@ None
Aucune politique d'exécution.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eMemoryLocationHint
Indices sur la localisation mémoire attendue.
@ MainlyHost
Indique que la donnée sera plutôt utilisée sur CPU.
@ HostAndDeviceMostlyRead
Indique que la donnée sera utilisée à la fois sur accélérateur et sur CPU et qu'elle ne sera pas souv...
@ MainlyDevice
Indique que la donnée sera plutôt utilisée sur accélérateur.
eHostDeviceMemoryLocation
Localisation physique d'une adresse mémoire.
@ ManagedMemoryDevice
La mémoire est de la mémoire managée sur accélérateur.
@ ManagedMemoryHost
La mémoire est de la mémoire managée sur l'hôte.
eMemoryResource
Liste des ressources mémoire disponibles.
@ HostPinned
Alloue sur l'hôte.
@ UnifiedMemory
Alloue en utilisant la mémoire unifiée.
Espace de nom de Arccore.