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 流。