我正在编写一个包含CUDA代码的MEX函数,在Host函数中我需要将所有数组A
值重置为float 0.0
。这似乎可以通过销毁和重新创建数组来实现:
mxGPUDestroyGPUArray(A);
A = mxGPUCreateGPUArray(1, &dims, mxSINGLE_CLASS, mxREAL, MX_GPU_INITIALIZE_VALUES);
是否有更自然/更优雅的方法来达到相同的效果?
答案 0 :(得分:0)
cudaMemset
需要设备指针,而mxGPUCreateGPUArray
则返回mxGPUobject
。根据文档,应该能够使用mxGPUGetData
获取此指针。此外,value
参数必须是int类型,而不是您给它的float。幸运的是,浮点值0.0对应于0
的二进制(/整数)表示。
(问题'从评论中迁移')