在 mex cuda 函数中将数组值设置为零

set array values to zero in a mex cuda function

我正在编写一个包含 CUDA 代码的 MEX 函数,在主机函数中我需要将所有数组 A 值重置为浮点数 0.0。这似乎可以通过销毁并重新创建数组来实现:

    mxGPUDestroyGPUArray(A);
    A = mxGPUCreateGPUArray(1, &dims, mxSINGLE_CLASS, mxREAL, MX_GPU_INITIALIZE_VALUES);

是否有更多的natural/elegant方法可以达到同样的效果?

cudaMemset 需要一个设备指针,而 mxGPUCreateGPUArray returns 一个 mxGPUobject。根据文档,应该能够使用 mxGPUGetData 获取此指针。此外,value 参数必须是 int 类型,而不是您给它的 float 类型。幸运的是,浮点值 0.0 对应于 0.

的二进制(/整数)表示

(来自评论的问题 'migrated')