14#include "arcane/accelerator/CommonUtils.h"
16#include "arcane/utils/FatalErrorException.h"
19#include "arcane/accelerator/core/NativeStream.h"
20#include "arcane/accelerator/CommonUtils.h"
34namespace Arcane::Accelerator::impl
40#if defined(ARCANE_COMPILING_CUDA)
42cudaStream_t CudaUtils::
43toNativeStream(
const NativeStream& v)
45 cudaStream_t* s =
reinterpret_cast<cudaStream_t*
>(v.m_native_pointer);
51cudaStream_t CudaUtils::
52toNativeStream(
const RunQueue* queue)
56 p = queue->executionPolicy();
59 return toNativeStream(queue->_internalNativeStream());
62cudaStream_t CudaUtils::
63toNativeStream(
const RunQueue& queue)
65 return toNativeStream(&queue);
73#if defined(ARCANE_COMPILING_HIP)
76toNativeStream(
const NativeStream& v)
78 hipStream_t* s =
reinterpret_cast<hipStream_t*
>(v.m_native_pointer);
85toNativeStream(
const RunQueue* queue)
89 p = queue->executionPolicy();
92 return toNativeStream(queue->_internalNativeStream());
96toNativeStream(
const RunQueue& queue)
98 return toNativeStream(&queue);
106#if defined(ARCANE_COMPILING_SYCL)
108sycl::queue SyclUtils::
109toNativeStream(
const NativeStream& v)
111 sycl::queue* s =
reinterpret_cast<sycl::queue*
>(v.m_native_pointer);
117sycl::queue SyclUtils::
118toNativeStream(
const RunQueue* queue)
122 p = queue->executionPolicy();
125 return toNativeStream(queue->_internalNativeStream());
128sycl::queue SyclUtils::
129toNativeStream(
const RunQueue& queue)
131 return toNativeStream(&queue);
142#if defined(ARCANE_COMPILING_CUDA)
144 ARCANE_CHECK_CUDA(::cudaMemcpyAsync(destination.data(), source.data(), source.size(),
cudaMemcpyDeviceToHost, stream));
145#elif defined(ARCANE_COMPILING_HIP)
146 hipStream_t stream = HipUtils::toNativeStream(queue);
147 ARCANE_CHECK_HIP(::hipMemcpyAsync(destination.data(), source.data(), source.size(),
hipMemcpyDefault, stream));
149 ARCANE_UNUSED(destination);
150 ARCANE_UNUSED(source);
151 ARCANE_UNUSED(queue);
159GenericDeviceStorage::
160GenericDeviceStorage()
161: m_storage(MemoryUtils::getDeviceOrHostAllocator())
#define ARCANE_FATAL(...)
Macro envoyant une exception FatalErrorException.
Fonctions de gestion mémoire et des allocateurs.
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.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
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.