使用CUDAcudaMalloc3DArray无法释放GPU内存

时间:2019-03-31 06:10:19

标签: c++ matlab cuda gpu mex

**编辑: 我会完善我的问题

我正在使用C ++,GTX1070

我正在按如下所述分配cuda数组:

//variables: Vdepth = 200, Vheight = 100, Vwidth = 100, device = 0 VolumeId = 0
cudaExtent volumeSize = make_cudaExtent(Vdepth, Vheight, Vwidth);
cudaArray *d_volumeArray = NULL;
cudaChannelFormatDesc channelDesc = cudaCreateChannelDesc<texture_type>();
VERIFY_CALL( cudaMalloc3DArray(&d_volumeArray, &channelDesc, volumeSize) );
cu_VolArray[device][VolumeId] = d_volumeArray;

然后我尝试像这样释放它:

    VERIFY_CALL(cudaFreeArray(cu_VolArray[device][VolumeId]));
    cu_VolArray[device][VolumeId] = NULL;

使用GPUz,分配将使GPU内存增加100MB,而释放将减少10MB-如何清除扩展的内存?

整个代码在MATLAB(2012a)中通过mex运行。 尝试“清除mex_name”时,这些“卡住”的内存块导致我的MATLAB卡住(卡在“忙”状态)

0 个答案:

没有答案