在 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')
我正在编写一个包含 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')