6.12. 内存管理 [已弃用]

本节介绍 CUDA 运行时应用程序编程接口中已弃用的内存管理功能。

某些函数具有重载的 C++ API 模板版本,在 C++ API 例程 模块中单独记录。

函数

__host__cudaError_t cudaMemcpyArrayToArray ( cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, cudaMemcpyKind kind = cudaMemcpyDeviceToDevice )
在主机和设备之间复制数据。
__host__cudaError_t cudaMemcpyFromArray ( void* dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind )
在主机和设备之间复制数据。
__host__cudaError_t cudaMemcpyFromArrayAsync ( void* dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0 )
在主机和设备之间复制数据。
__host__cudaError_t cudaMemcpyToArray ( cudaArray_t dst, size_t wOffset, size_t hOffset, const void* src, size_t count, cudaMemcpyKind kind )
在主机和设备之间复制数据。
__host__cudaError_t cudaMemcpyToArrayAsync ( cudaArray_t dst, size_t wOffset, size_t hOffset, const void* src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0 )
在主机和设备之间复制数据。

函数

__host__cudaError_t cudaMemcpyArrayToArray ( cudaArray_t dst, size_t wOffsetDst, size_t hOffsetDst, cudaArray_const_t src, size_t wOffsetSrc, size_t hOffsetSrc, size_t count, cudaMemcpyKind kind = cudaMemcpyDeviceToDevice )
在主机和设备之间复制数据。
参数
dst
- 目标内存地址
wOffsetDst
- 目标起始 X 偏移量(列,以字节为单位)
hOffsetDst
- 目标起始 Y 偏移量(行)
src
- 源内存地址
wOffsetSrc
- 源起始 X 偏移量(列,以字节为单位)
hOffsetSrc
- 源起始 Y 偏移量(行)
count
- 要复制的字节大小
kind
- 传输类型
已弃用

描述
复制count从 CUDA 数组开始的字节数src起始于hOffsetSrc行和wOffsetSrc从左上角开始到 CUDA 数组的字节数dst起始于hOffsetDst行和wOffsetDst从左上角开始的字节数,其中kind指定复制的方向,并且必须是 cudaMemcpyHostToHostcudaMemcpyHostToDevicecudaMemcpyDeviceToHostcudaMemcpyDeviceToDevicecudaMemcpyDefault 之一。建议传递 cudaMemcpyDefault,在这种情况下,传输类型从指针值推断。但是,只有在支持统一虚拟寻址的系统上才允许使用 cudaMemcpyDefault

注意

另请参阅

cudaMemcpy, cudaMemcpy2D, cudaMemcpyToArray, cudaMemcpy2DToArray, cudaMemcpyFromArray, cudaMemcpy2DFromArray, cudaMemcpy2DArrayToArray, cudaMemcpyToSymbol, cudaMemcpyFromSymbol, cudaMemcpyAsync, cudaMemcpy2DAsync, cudaMemcpyToArrayAsync, cudaMemcpy2DToArrayAsync, cudaMemcpyFromArrayAsync, cudaMemcpy2DFromArrayAsync, cudaMemcpyToSymbolAsync, cudaMemcpyFromSymbolAsync, cuMemcpyAtoA

__host__cudaError_t cudaMemcpyFromArray ( void* dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind )
在主机和设备之间复制数据。
参数
dst
- 目标内存地址
src
- 源内存地址
wOffset
- 源起始 X 偏移量(列,以字节为单位)
hOffset
- 源起始 Y 偏移量(行)
count
- 要复制的字节大小
kind
- 传输类型
已弃用

描述
复制count从 CUDA 数组开始的字节数src起始于hOffset行和wOffset从左上角开始到由 指向的内存区域的字节数dst,其中kind指定复制的方向,并且必须是 cudaMemcpyHostToHostcudaMemcpyHostToDevicecudaMemcpyDeviceToHostcudaMemcpyDeviceToDevicecudaMemcpyDefault 之一。建议传递 cudaMemcpyDefault,在这种情况下,传输类型从指针值推断。但是,只有在支持统一虚拟寻址的系统上才允许使用 cudaMemcpyDefault

注意

另请参阅

cudaMemcpy, cudaMemcpy2D, cudaMemcpyToArray, cudaMemcpy2DToArray, cudaMemcpy2DFromArray, cudaMemcpyArrayToArray, cudaMemcpy2DArrayToArray, cudaMemcpyToSymbol, cudaMemcpyFromSymbol, cudaMemcpyAsync, cudaMemcpy2DAsync, cudaMemcpyToArrayAsync, cudaMemcpy2DToArrayAsync, cudaMemcpyFromArrayAsync, cudaMemcpy2DFromArrayAsync, cudaMemcpyToSymbolAsync, cudaMemcpyFromSymbolAsync, cuMemcpyAtoH, cuMemcpyAtoD

__host__cudaError_t cudaMemcpyFromArrayAsync ( void* dst, cudaArray_const_t src, size_t wOffset, size_t hOffset, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0 )
在主机和设备之间复制数据。
参数
dst
- 目标内存地址
src
- 源内存地址
wOffset
- 源起始 X 偏移量(列,以字节为单位)
hOffset
- 源起始 Y 偏移量(行)
count
- 要复制的字节大小
kind
- 传输类型
stream
- 流标识符
已弃用

描述
复制count从 CUDA 数组开始的字节数src起始于hOffset行和wOffset从左上角开始到由 指向的内存区域的字节数dst,其中kind指定复制的方向,并且必须是 cudaMemcpyHostToHostcudaMemcpyHostToDevicecudaMemcpyDeviceToHostcudaMemcpyDeviceToDevicecudaMemcpyDefault 之一。建议传递 cudaMemcpyDefault,在这种情况下,传输类型从指针值推断。但是,只有在支持统一虚拟寻址的系统上才允许使用 cudaMemcpyDefault

cudaMemcpyFromArrayAsync() 相对于主机是异步的,因此调用可能会在复制完成之前返回。复制可以可选地与流关联,方法是传递非零stream参数。如果kindcudaMemcpyHostToDevicecudaMemcpyDeviceToHoststream为非零值,则复制可能会与其他流中的操作重叠。

注意

另请参阅

cudaMemcpy, cudaMemcpy2D, cudaMemcpyToArray, cudaMemcpy2DToArray, cudaMemcpyFromArray, cudaMemcpy2DFromArray, cudaMemcpyArrayToArray, cudaMemcpy2DArrayToArray, cudaMemcpyToSymbol, cudaMemcpyFromSymbol, cudaMemcpyAsync, cudaMemcpy2DAsync, cudaMemcpyToArrayAsync, cudaMemcpy2DToArrayAsync, cudaMemcpy2DFromArrayAsync, cudaMemcpyToSymbolAsync, cudaMemcpyFromSymbolAsync, cuMemcpyAtoHAsync, cuMemcpy2DAsync

__host__cudaError_t cudaMemcpyToArray ( cudaArray_t dst, size_t wOffset, size_t hOffset, const void* src, size_t count, cudaMemcpyKind kind )
在主机和设备之间复制数据。
参数
dst
- 目标内存地址
wOffset
- 目标起始 X 偏移量(列,以字节为单位)
hOffset
- 目标起始 Y 偏移量(行)
src
- 源内存地址
count
- 要复制的字节大小
kind
- 传输类型
已弃用

描述
复制count从由 指向的内存区域开始的字节数src到 CUDA 数组dst起始于hOffset行和wOffset从左上角开始的字节数,其中kind指定复制的方向,并且必须是 cudaMemcpyHostToHostcudaMemcpyHostToDevicecudaMemcpyDeviceToHostcudaMemcpyDeviceToDevicecudaMemcpyDefault 之一。建议传递 cudaMemcpyDefault,在这种情况下,传输类型从指针值推断。但是,只有在支持统一虚拟寻址的系统上才允许使用 cudaMemcpyDefault

注意

另请参阅

cudaMemcpy, cudaMemcpy2D, cudaMemcpy2DToArray, cudaMemcpyFromArray, cudaMemcpy2DFromArray, cudaMemcpyArrayToArray, cudaMemcpy2DArrayToArray, cudaMemcpyToSymbol, cudaMemcpyFromSymbol, cudaMemcpyAsync, cudaMemcpy2DAsync, cudaMemcpyToArrayAsync, cudaMemcpy2DToArrayAsync, cudaMemcpyFromArrayAsync, cudaMemcpy2DFromArrayAsync, cudaMemcpyToSymbolAsync, cudaMemcpyFromSymbolAsync, cuMemcpyHtoA, cuMemcpyDtoA

__host__cudaError_t cudaMemcpyToArrayAsync ( cudaArray_t dst, size_t wOffset, size_t hOffset, const void* src, size_t count, cudaMemcpyKind kind, cudaStream_t stream = 0 )
在主机和设备之间复制数据。
参数
dst
- 目标内存地址
wOffset
- 目标起始 X 偏移量(列,以字节为单位)
hOffset
- 目标起始 Y 偏移量(行)
src
- 源内存地址
count
- 要复制的字节大小
kind
- 传输类型
stream
- 流标识符
已弃用

描述
复制count从由 指向的内存区域开始的字节数src到 CUDA 数组dst起始于hOffset行和wOffset从左上角开始的字节数,其中kind指定复制的方向,并且必须是 cudaMemcpyHostToHostcudaMemcpyHostToDevicecudaMemcpyDeviceToHostcudaMemcpyDeviceToDevicecudaMemcpyDefault 之一。建议传递 cudaMemcpyDefault,在这种情况下,传输类型从指针值推断。但是,只有在支持统一虚拟寻址的系统上才允许使用 cudaMemcpyDefault

cudaMemcpyToArrayAsync() 相对于主机是异步的,因此调用可能会在复制完成之前返回。复制可以可选地与流关联,方法是传递非零stream参数。如果kindcudaMemcpyHostToDevicecudaMemcpyDeviceToHoststream为非零值,则复制可能会与其他流中的操作重叠。

注意

另请参阅

cudaMemcpy, cudaMemcpy2D, cudaMemcpyToArray, cudaMemcpy2DToArray, cudaMemcpyFromArray, cudaMemcpy2DFromArray, cudaMemcpyArrayToArray, cudaMemcpy2DArrayToArray, cudaMemcpyToSymbol, cudaMemcpyFromSymbol, cudaMemcpyAsync, cudaMemcpy2DAsync, cudaMemcpy2DToArrayAsync, cudaMemcpyFromArrayAsync, cudaMemcpy2DFromArrayAsync, cudaMemcpyToSymbolAsync, cudaMemcpyFromSymbolAsync, cuMemcpyHtoAAsync, cuMemcpy2DAsync