为什么我收到关于cudaMemcpyToArray(...)的警告被弃用吗? [英] Why am I getting a warning about cudaMemcpyToArray(...) being deprecated?

查看:0
本文介绍了为什么我收到关于cudaMemcpyToArray(...)的警告被弃用吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

此警告是什么,我如何修复它?

warning: ‘cudaError_t cudaMemcpyToArray(cudaArray_t, size_t, size_t, const void*, size_t, cudaMemcpyKind)’ is deprecated [-Wdeprecated-declarations]

推荐答案

已弃用意味着不建议使用它,可能会在下一个CUDA版本中放弃对它的支持

提供了有关如何处理它的说明here

对于将整个分配从主机复制到设备的典型用法,源(主机)分配是宽度w元素按高度h行的平面(非倾斜)分配,可能如下所示:

cudaMemcpyToArray(dst, 0, 0, src, h*w*sizeof(src[0]), cudaMemcpyHostToDevice)

您可以将其替换为:

cudaMemcpy2DToArray(dst, 0, 0, src, w*sizeof(src[0]) , w*sizeof(src[0]), h, cudaMemcpyHostToDevice);

替换接口(cudaMemcpy2DToArray)已记录here

请注意,在我给出的示例中,如果您不知道由行和列组成的2D";分配,而是只有一个平面分配(比方说)w元素,则只需在上面的公式中设置h=1即可。

这篇关于为什么我收到关于cudaMemcpyToArray(...)的警告被弃用吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆