cuda 一共提供了14个接口进行虚拟地址管理,参见 Virtual Memory Management 相关文档。 按照功能大致可分为物理地址管理、虚拟地址管理、地址映射和访问权限管理四类。
PA-物理地址管理
类型是 CUmemGenericAllocationHandle
, 相关接口
- 创建 cuMemCreate
- 释放 cuMemRelease
- 共享导出 cuMemExportToShareableHandle
- 共享导入 cuMemImportFromShareableHandle
- 查看属性: cuMemGetAllocationPropertiesFromHandle
- 查看对齐粒度: cuMemGetAllocationGranularity
VA-虚拟地址管理
- 预留: cuMemAddressReserve
- 释放: cuMemAddressFree
- 反查物理handle: cuMemRetainAllocationHandle
Map-地址映射
- 映射地址: cuMemMap
- 批量映射: cuMemMapArrayAsync
- 解除地址映射: cuMemUnmap
Perm-访问权限
- 获取: cuMemGetAccess
- 设置: cuMemSetAccess