12#ifndef ARCANE_CUDA_CUDAACCELERATOR_H
13#define ARCANE_CUDA_CUDAACCELERATOR_H
17#include "arcane/utils/Array.h"
18#include "arcane/utils/TraceInfo.h"
19#include "arcane/utils/NotSupportedException.h"
20#include "arcane/utils/FatalErrorException.h"
24#include <cuda_runtime.h>
29#ifdef ARCANE_COMPONENT_arcane_cuda
30#define ARCANE_CUDA_EXPORT ARCANE_EXPORT
32#define ARCANE_CUDA_EXPORT ARCANE_IMPORT
35namespace Arcane::Accelerator::Cuda
41extern "C++" ARCANE_CUDA_EXPORT
void
42arcaneCheckCudaErrors(
const TraceInfo& ti,cudaError_t e);
44extern "C++" ARCANE_CUDA_EXPORT
void
45arcaneCheckCudaErrorsNoThrow(
const TraceInfo& ti,cudaError_t e);
48#define ARCANE_CHECK_CUDA(result) \
49 Arcane::Accelerator::Cuda::arcaneCheckCudaErrors(A_FUNCINFO,result)
52#define ARCANE_CHECK_CUDA_NOTHROW(result) \
53 Arcane::Accelerator::Cuda::arcaneCheckCudaErrorsNoThrow(A_FUNCINFO,result)
59getCudaMemoryAllocator();
63getCudaDeviceMemoryAllocator();
67getCudaUnifiedMemoryAllocator();
71getCudaHostPinnedMemoryAllocator();
73extern "C++" ARCANE_CUDA_EXPORT
void
74initializeCudaMemoryAllocators();
76extern "C++" ARCANE_CUDA_EXPORT
void
77finalizeCudaMemoryAllocators(
ITraceMng* tm);
Interface d'un allocateur pour la mémoire.
Interface du gestionnaire de traces.