首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有CUDA新功能的Nothrow

带有CUDA新功能的Nothrow
EN

Stack Overflow用户
提问于 2013-01-27 04:36:38
回答 1查看 150关注 0票数 3

当通过CUDA在内核调用中使用new时,检查内存成功分配的最佳方式是什么?如果没有类似于(nothrow)的东西,是否有一种方法可以继续执行内核,即使在内存分配失败的情况下也是如此?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-27 04:43:48

我不认为new在设备端是官方支持的。此外,据我所知,在设备端不支持异常,所以像nothrow这样的注释没有效果。

您可以在内核中执行的操作是调用malloc。在失败时,该函数只返回NULL,您可以正常检查。

请注意,

  • device-side malloc仅在devices 2.0 (Fermi)及更高版本上受支持。
  • 默认情况下只有8MB堆内存。如果您想要更多,则需要通过cudaDeviceSetLimit.

设置更高的限制

进一步阅读: CUDA C编程指南,v.5.0,第B.17章-动态全局内存分配

更新:测试表明,new似乎得到了支持,并且似乎以同样的方式工作,即在失败时返回NULL

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14541332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档