gpt4 book ai didi

memory-management - Nothrow with CUDA 新

转载 作者:行者123 更新时间:2023-12-02 00:13:06 27 4
gpt4 key购买 nike

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

谢谢!

最佳答案

我不认为设备端正式支持 new。此外 - 据我所知 - 设备端不支持异常,因此 nothrow 之类的注释无效。

可以在内核中做的是调用malloc。失败时,该函数仅返回 NULL,您可以正常检查。

请注意

  • 设备端 malloc 仅在设备 2.0 (Fermi) 及更高版本上受支持。
  • 默认情况下您只有 8MB 的堆内存。如果你想拥有更多,你需要通过cudaDeviceSetLimit设置更高的限制。

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


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

关于memory-management - Nothrow with CUDA 新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14541332/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com