首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >cuda:如何将主机数据复制到3D cuda阵列并将其复制回来

cuda:如何将主机数据复制到3D cuda阵列并将其复制回来
EN

Stack Overflow用户
提问于 2012-06-29 21:43:46
回答 1查看 2.7K关注 0票数 2

"cuda c编程指南“给出了使用cuda数组的例子。这些示例仅限于2D。因此,在2D cuda阵列的情况下,我将简单地执行以下操作,将主机数据复制到设备内存:

代码语言:javascript
复制
// 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数组,但没有太多成功,得到了无效参数错误。

那么,如何将我的主机数据转到设备内存并取回呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-29 23:18:50

为了将3D数据复制到GPU设备内存中,您需要执行以下操作:

使用cudaMalloc3D

  • Setup将输入参数与cudaMemcpy3DParms

  • Copy输入数据通过cudaMemcpy3D

从主机输入到设备的内存空间

然后,要将数据返回到主机:

使用cudaMemcpy3DParms

  • Copy输出数据通过cudaMemcpy3D

将输出参数从设备

  1. Setup到主机

CUDA C编程指南的第3.2.2章《设备内存》提供了一个代码示例,该示例分配了一个宽×高×深的3D浮点值数组,并展示了如何在设备代码中循环数组元素。

CUDA SDK的simpleTexture3D示例也是一个很好的起点。

只需要一个recommendation:,准备好你的代码来捕捉CUDA错误,并分析错误发生的情况,因为你可能会发现一些错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11262928

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档