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 };
151 : m_source(ConstMemoryView(source))
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 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.