14#include "arccore/accelerator/CommonUtils.h"
16#include "arccore/base/FatalErrorException.h"
19#include "arccore/common/accelerator/NativeStream.h"
33namespace Arcane::Accelerator::Impl
39#if defined(ARCCORE_COMPILING_CUDA)
41cudaStream_t CudaUtils::
44 cudaStream_t* s =
reinterpret_cast<cudaStream_t*
>(v.m_native_pointer);
50cudaStream_t CudaUtils::
51toNativeStream(
const RunQueue* queue)
55 p = queue->executionPolicy();
58 return toNativeStream(queue->_internalNativeStream());
61cudaStream_t CudaUtils::
62toNativeStream(
const RunQueue& queue)
64 return toNativeStream(&queue);
72#if defined(ARCCORE_COMPILING_HIP)
77 hipStream_t* s =
reinterpret_cast<hipStream_t*
>(v.m_native_pointer);
84toNativeStream(
const RunQueue* queue)
88 p = queue->executionPolicy();
91 return toNativeStream(queue->_internalNativeStream());
95toNativeStream(
const RunQueue& queue)
97 return toNativeStream(&queue);
105#if defined(ARCCORE_COMPILING_SYCL)
107sycl::queue SyclUtils::
110 sycl::queue* s =
reinterpret_cast<sycl::queue*
>(v.m_native_pointer);
116sycl::queue SyclUtils::
117toNativeStream(
const RunQueue* queue)
121 p = queue->executionPolicy();
124 return toNativeStream(queue->_internalNativeStream());
127sycl::queue SyclUtils::
128toNativeStream(
const RunQueue& queue)
130 return toNativeStream(&queue);
143namespace Arcane::Accelerator::impl
152#if defined(ARCCORE_COMPILING_CUDA)
153 cudaStream_t stream = Impl::CudaUtils::toNativeStream(queue);
154 ARCANE_CHECK_CUDA(::cudaMemcpyAsync(destination.
data(), source.data(), source.size(), cudaMemcpyDeviceToHost, stream));
155#elif defined(ARCCORE_COMPILING_HIP)
156 hipStream_t stream = Impl::HipUtils::toNativeStream(queue);
157 ARCANE_CHECK_HIP(::hipMemcpyAsync(destination.
data(), source.data(), source.size(), hipMemcpyDefault, stream));
159 ARCCORE_UNUSED(destination);
160 ARCCORE_UNUSED(source);
161 ARCCORE_UNUSED(queue);
169GenericDeviceStorage::
170GenericDeviceStorage()
171: m_storage(
MemoryUtils::getDeviceOrHostAllocator())
#define ARCCORE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Fonctions utilitaires de gestion mémoire.
Type opaque pour encapsuler une 'stream' native.
File d'exécution pour un accélérateur.
void _copyToAsync(Span< std::byte > destination, Span< const std::byte > source, const RunQueue &queue)
Copie l'instance dans dest_ptr.
constexpr __host__ __device__ pointer data() const noexcept
Pointeur sur le début de la vue.
Vue d'un tableau d'éléments de type T.
eExecutionPolicy
Politique d'exécution pour un Runner.
@ SYCL
Politique d'exécution utilisant l'environnement SYCL.
@ HIP
Politique d'exécution utilisant l'environnement HIP.
@ None
Aucune politique d'exécution.
@ CUDA
Politique d'exécution utilisant l'environnement CUDA.
Fonctions utilitaires de gestion mémoire.