Sanitizer Memory API
实现 Sanitizer Memory API 的函数、类型和枚举。
函数
- SanitizerResult sanitizerAlloc(CUcontext ctx, void **devPtr, size_t size)
在设备上分配内存。
- SanitizerResult sanitizerAllocHost(CUcontext ctx, void **devPtr, size_t size)
分配主机页锁定内存。
- SanitizerResult sanitizerFree(CUcontext ctx, void *devPtr)
释放设备上的内存。
- SanitizerResult sanitizerFreeHost(CUcontext ctx, void *devPtr)
释放主机内存。
- SanitizerResult sanitizerMemcpyDeviceToHost(void *dst, void *src, size_t count, Sanitizer_StreamHandle stream)
将数据从设备复制到主机。
- SanitizerResult sanitizerMemcpyHostToDeviceAsync(void *dst, void *src, size_t count, Sanitizer_StreamHandle stream)
将数据从主机复制到设备。
- SanitizerResult sanitizerMemset(void *devPtr, int value, size_t count, Sanitizer_StreamHandle stream)
初始化设备内存或将设备内存设置为一个值。
函数
-
SanitizerResult sanitizerAlloc(CUcontext ctx, void **devPtr, size_t size)
在设备上分配内存。
等效于 cudaMalloc,可以在回调函数中调用。
注意
线程安全性:此函数是线程安全的。
- 参数
ctx – 分配的上下文。如果为 NULL,将使用当前上下文。
devPtr – 指向已分配设备内存的指针
size – 分配大小(以字节为单位)
-
SanitizerResult sanitizerAllocHost(CUcontext ctx, void **devPtr, size_t size)
分配主机页锁定内存。
等效于 cudaMallocHost,可以在回调函数中调用。
注意
线程安全性:此函数是线程安全的。
- 参数
ctx – 分配的上下文。如果为 NULL,将使用当前上下文。
devPtr – 指向已分配主机内存的指针
size – 分配大小(以字节为单位)
-
SanitizerResult sanitizerFree(CUcontext ctx, void *devPtr)
释放设备上的内存。
等效于 cudaFree,可以在回调函数中调用。
注意
线程安全性:此函数是线程安全的。
- 参数
ctx – 分配的上下文。如果为 NULL,将使用当前上下文。
devPtr – 指向要释放的内存的设备指针
-
SanitizerResult sanitizerFreeHost(CUcontext ctx, void *devPtr)
释放主机内存。
等效于 cudaFreeHost,可以在回调函数中调用。
注意
线程安全性:此函数是线程安全的。
- 参数
ctx – 分配的上下文。如果为 NULL,将使用当前上下文。
devPtr – 指向要释放的内存的主机指针
-
SanitizerResult sanitizerMemcpyDeviceToHost(void *dst, void *src, size_t count, Sanitizer_StreamHandle stream)
将数据从设备复制到主机。
等效于 cudaMemcpy,可以在回调函数中调用。该函数将在复制完成后返回。
注意
线程安全性:此函数是线程安全的。
- 参数
dst – 目标内存地址
src – 源内存地址
count – 要复制的字节大小
stream – 流句柄。如果为 NULL,将使用 NULL 流。
-
SanitizerResult sanitizerMemcpyHostToDeviceAsync(void *dst, void *src, size_t count, Sanitizer_StreamHandle stream)
将数据从主机复制到设备。
等效于 cudaMemcpyAsync,可以在回调函数中调用。该函数将在可分页缓冲区复制到用于 DMA 传输到设备内存的暂存内存后返回,但到最终目的地的 DMA 可能尚未完成。
注意
线程安全性:此函数是线程安全的。
- 参数
dst – 目标内存地址
src – 源内存地址
count – 要复制的字节大小
stream – 流句柄。如果为 NULL,将使用 NULL 流。
-
SanitizerResult sanitizerMemset(void *devPtr, int value, size_t count, Sanitizer_StreamHandle stream)
初始化设备内存或将设备内存设置为一个值。
等效于 cudaMemset,可以在回调函数中调用。
注意
线程安全性:此函数是线程安全的。
- 参数
devPtr – 指向设备内存的指针
value – 要为指定内存的每个字节设置的值
count – 要设置的字节大小
stream – 流句柄。如果为 NULL,将使用 NULL 流。