12#ifndef ARCANE_ACCELERATOR_CORE_MEMORY_H
13#define ARCANE_ACCELERATOR_CORE_MEMORY_H
17#include "arccore/base/MemoryView.h"
18#include "arccore/base/Span.h"
20#include "arcane/accelerator/core/DeviceId.h"
52extern "C++" ARCANE_ACCELERATOR_CORE_EXPORT std::ostream&
66 return {
reinterpret_cast<const std::byte*
>(ptr), length };
70 return {
reinterpret_cast<std::byte*
>(ptr), length };
77 :
MemoryCopyArgs(_toSpan(destination, length),_toSpan(source, length))
83 , m_destination(destination)
91 , m_destination(destination)
106 ConstMemoryView source()
const {
return m_source; }
107 MutableMemoryView destination()
const {
return m_destination; }
108 bool isAsync()
const {
return m_is_async; }
112 ConstMemoryView m_source;
113 MutableMemoryView m_destination;
114 bool m_is_async =
false;
128 return {
reinterpret_cast<const std::byte*
>(ptr), length };
164 MemoryPrefetchArgs& addDeviceId(DeviceId v)
169 ConstMemoryView source()
const {
return m_source; }
170 bool isAsync()
const {
return m_is_async; }
171 DeviceId deviceId()
const {
return m_device_id; }
175 ConstMemoryView m_source;
176 DeviceId m_device_id;
177 bool m_is_async =
false;
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.