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

时间:2016-07-20 12:17:12

标签: arrays cuda mex

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

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

是否有更自然/更优雅的方法来达到相同的效果?

1 个答案:

答案 0 :(得分:0)

cudaMemset需要设备指针,而mxGPUCreateGPUArray则返回mxGPUobject。根据文档,应该能够使用mxGPUGetData获取此指针。此外,value参数必须是int类型,而不是您给它的float。幸运的是,浮点值0.0对应于0的二进制(/整数)表示。

(问题'从评论中迁移')