在我的MEX代码中未能解决内存泄漏问题后,我尝试编写尽可能与MATLAB提供的示例相似的代码(不幸的是,只有one example of using CUDA in MEX) 但是,我收到了一个错误 - "超出了设备允许的最大可变大小"当我尝试这样做时:
mxGPUArray * tmp = mxGPUCreateGPUArray(4,
rSize,
mxDOUBLE_CLASS,
mxREAL,
MX_GPU_INITIALIZE_VALUES);
我预先打印rSize
(定义了gpuArray的尺寸),我尝试在Matlab中分配一个完全相同大小的gpuArray
(使用gpuArray.zeros(...)
),没有问题
我已经尝试过预先分配必要的空间,并修改其中一个rhs变量的值,但由于内存泄漏很少(但有问题),我试图使代码类似尽可能使代码不会导致内存泄漏。
有谁知道如何解决这个问题?有没有办法改变这个限制?