12#ifndef ARCANE_ACCELERATOR_CORE_MEMORY_H
13#define ARCANE_ACCELERATOR_CORE_MEMORY_H
18#include "arcane/utils/MemoryView.h"
20#include "arccore/base/Span.h"
22#include "arcane/accelerator/core/DeviceId.h"
54extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT std::ostream&
68 return {
reinterpret_cast<const std::byte*
>(ptr), length };
72 return {
reinterpret_cast<std::byte*
>(ptr), length };
79 :
MemoryCopyArgs(_toSpan(destination, length),_toSpan(source, length))
85 , m_destination(destination)
93 , m_destination(destination)
108 ConstMemoryView source()
const {
return m_source; }
109 MutableMemoryView destination()
const {
return m_destination; }
110 bool isAsync()
const {
return m_is_async; }
114 ConstMemoryView m_source;
115 MutableMemoryView m_destination;
116 bool m_is_async =
false;
130 return {
reinterpret_cast<const std::byte*
>(ptr), length };
166 MemoryPrefetchArgs& addDeviceId(DeviceId v)
171 ConstMemoryView source()
const {
return m_source; }
172 bool isAsync()
const {
return m_is_async; }
173 DeviceId deviceId()
const {
return m_device_id; }
177 ConstMemoryView m_source;
178 DeviceId m_device_id;
179 bool m_is_async =
false;
Déclarations des types utilisés dans Arcane.
Arguments pour la copie mémoire.
MemoryCopyArgs(MutableMemoryView destination, ConstMemoryView source)
Copie depuis source vers destination.
MemoryCopyArgs(void *destination, const void *source, Int64 length)
Copie length octets depuis source vers destination.
MemoryCopyArgs(Span< std::byte > destination, Span< const std::byte > source)
Copie source.size() octets depuis source vers destination.
Arguments pour le préfetching mémoire.
MemoryPrefetchArgs(Span< const std::byte > source)
Prefetch source.
MemoryPrefetchArgs(const void *source, Int64 length)
Prefetch length octets depuis source.
MemoryPrefetchArgs(ConstMemoryView source)
Prefetch source.
Vue constante sur une zone mémoire contigue contenant des éléments de taille fixe.
Vue modifiable sur une zone mémoire contigue contenant des éléments de taille fixe.
Vue d'un tableau d'éléments de type T.
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.
eMemoryAdvice
Conseils pour la gestion mémoire.
@ AccessedByHost
Indique que la zone mémoire est accédée par l'hôte.
@ PreferredLocationDevice
Privilégié le positionnement de la mémoire sur l'accélérateur.
@ MostlyRead
Indique que la zone mémoire est principalement en lecture seule.
@ PreferredLocationHost
Privilégié le positionnement de la mémoire sur l'hôte.
@ AccessedByDevice
Indique que la zone mémoire est accédée par l'accélérateur.
@ None
Aucune politique d'exécution.
std::int64_t Int64
Type entier signé sur 64 bits.