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