new
在使用CUDA 进行内核调用时,检查内存是否成功分配的最佳方法是什么?即使在内存分配失败的情况下,是否有类似(nothrow)
的方法可以继续执行内核?
谢谢!
new
在使用CUDA 进行内核调用时,检查内存是否成功分配的最佳方法是什么?即使在内存分配失败的情况下,是否有类似(nothrow)
的方法可以继续执行内核?
谢谢!
我不认为这new
在设备端得到正式支持。此外-据我所知-设备端不支持异常,因此注释之类nothrow
的无效。
你可以在内核中做的是调用malloc
. 失败后,该功能将返回NULL
,您可以正常检查。
请注意
malloc
仅在设备 2.0 (Fermi) 及更高版本上受支持。cudaDeviceSetLimit
。进一步阅读:CUDA C 编程指南,v.5.0,第 B.17 章 - 动态全局内存分配
更新:测试表明new
似乎支持并且似乎以相同的方式工作,即NULL
在失败时返回。