CUDA 数组如何存储在 GPU 内存中?它们在物理上是线性的吗?



根据 CUDA 工具包文档:

https://docs.nvidia.com/cuda/cuda-c-programming-guide/

设备内存可以分配为线性内存或 CUDA 阵列。

这是否意味着 CUDA 数组不是线性存储在 GPU 内存中?

在我的实验中,我成功地从基于 cudamemcpy 函数的 GPU 内存中转储了数据。如果我的数据是由 cudaMallocArray 分配的,这是否意味着数据在 GPU 内存中不是物理线性的,需要由其他 API 提取?

CUDA 数组确实存储在 GPU 设备内存("全局"内存)中,并且字节在内存中不是物理线性的。它们是针对多通道、多维纹理访问和纹理过滤优化的不透明布局。该格式未记录,因为它可能会在 GPU 架构之间发生变化。

最新更新