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>
31#ifdef ARCANE_COMPONENT_arcane_cuda
32#define ARCANE_CUDA_EXPORT ARCANE_EXPORT
34#define ARCANE_CUDA_EXPORT ARCANE_IMPORT
37namespace Arcane::Accelerator::Cuda
43extern "C++" ARCANE_CUDA_EXPORT
void
44arcaneCheckCudaErrors(
const TraceInfo& ti,cudaError_t e);
46extern "C++" ARCANE_CUDA_EXPORT
void
47arcaneCheckCudaErrorsNoThrow(
const TraceInfo& ti,cudaError_t e);
50#define ARCANE_CHECK_CUDA(result) \
51 Arcane::Accelerator::Cuda::arcaneCheckCudaErrors(A_FUNCINFO,result)
54#define ARCANE_CHECK_CUDA_NOTHROW(result) \
55 Arcane::Accelerator::Cuda::arcaneCheckCudaErrorsNoThrow(A_FUNCINFO,result)
61getCudaMemoryAllocator();
65getCudaDeviceMemoryAllocator();
69getCudaUnifiedMemoryAllocator();
73getCudaHostPinnedMemoryAllocator();
75extern "C++" ARCANE_CUDA_EXPORT
void
76initializeCudaMemoryAllocators();
78extern "C++" ARCANE_CUDA_EXPORT
void
79finalizeCudaMemoryAllocators(
ITraceMng* tm);
Interface d'un allocateur pour la mémoire.
Interface du gestionnaire de traces.
Espace de nom de Arccore.