注意释放Plan Handle

adagio_chen 2014-07-30 03:02:03
加精
我们都知道 malloc 以后要 free 掉资源,以免造成内存泄漏的问题。但有时候我们编程时会忽略另一种资源:Plan Handle

例如,我们使用CUFFT库的时候,通常有类似这样的代码:


cufftHandle fftPlan;
cufftPlan3d(&fftPlan, dim, dim, dim, CUFFT_C2C);
cufftExecC2C(fftPlan, input, input, CUFFT_FORWARD);


初看起来没什么问题。但实际上,这里缺少了一句用于释放资源的 cufftDestroy(fftPlan); 虽然不写这句运行也没有问题,然而此处造成了轻微的显存泄漏。如果这段代码被执行了很多次,你就会发现程序出错,报错的地方是某个CudaMalloc函数,显然,显存已经漏完了。

因此,当你发现程序可能有显存泄漏的问题,但是程序里没有未被 CudaFree 的 CudaMalloc,那么你可以找一找是否有没有被Destroy 的 plan handle
...全文
535 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
琥珀色的天空 2014-08-04
  • 打赏
  • 举报
回复
表示暂无看不懂
baidu_18743569 2014-08-01
  • 打赏
  • 举报
回复
有分奋厅;地区非机动车
baidu_18743569 2014-08-01
  • 打赏
  • 举报
回复
是什么J WKDF D
lhw7791086 2014-08-01
  • 打赏
  • 举报
回复
GW786228836 2014-07-30
  • 打赏
  • 举报
回复
老李家的小二 2014-07-30
  • 打赏
  • 举报
回复
传说中的沙发吗

579

社区成员

发帖
与我相关
我的任务
社区描述
CUDA™是一种由NVIDIA推出的通用并行计算架构,该架构使GPU能够解决复杂的计算问题。 它包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
社区管理员
  • CUDA编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧