“cuda c 编程指南”给出了使用 cuda 数组的示例。这些示例仅限于 2D。因此,对于 2D cuda 数组,我只需执行以下操作即可将主机数据复制到设备内存:
// Copy to device memory some data located at address h_data in host memory
// cuInputArray is a 2D cuda array
cudaMemcpyToArray(cuInputArray, 0, 0, host_data, size_bytes, cudaMemcpyHostToDevice);
// with e.g. size_bytes := size_arr_x * size_arr_y * sizeof(float)
我尝试了相同的方法,将 cuInputArray 作为 3D cuda 数组,但没有取得多大成功,出现无效参数错误。
那么如何将我的主机数据获取到设备内存并返回呢?