17

如果从CUDA 4.2 中调用__device__或编码,有人可以清楚地解释 new 和 delete 关键字的行为吗?__global__

内存在哪里分配,如果它在设备上是本地的还是全局的?

它就我试图在 GPU 上创建神经网络的问题的上下文而言,我想要一个链接表示(就像一个链接列表,但每个神经元都存储一个链接的链接列表,其中包含权重和指向其他神经元的指针),我知道我可以cudaMalloc在内核启动之前分配使用,但我希望内核控制网络的创建方式和时间。

谢谢!

4

1 回答 1

23

C++newdelete在设备堆内存上进行操作。该设备允许以这种方式分配一部分全局(即板载)内存。 newdelete以与devicemallocfree.

您可以使用运行时 API 调用调整堆可用的设备全局内存量。

您可能还对C++ 新建/删除示例代码感兴趣。

这些功能需要 CC 2.0 或更高版本。

于 2013-01-19T18:31:50.477 回答