如果从CUDA 4.2中的__device__
或__global__
代码调用,有人可以清楚说明新关键字和删除关键字的行为吗?
如果设备上的内存是本地的还是全局的,那么内存将被分配到哪里?
我试图在GPU上创建神经网络的问题的上下文条款,我想要一个链接表示(像链表一样,但每个神经元存储一个链接的连接列表,其中包含权重,指针指向另一个神经元),我知道我可以在内核启动之前使用cudaMalloc
进行分配,但我希望内核控制网络的创建方式和时间。
谢谢!
答案 0 :(得分:20)
C ++ new
和delete
在设备堆内存上运行。该设备允许以这种方式分配全局(即板载)存储器的一部分。 new
和delete
的工作方式与device malloc
and free
类似。
您可以使用runtime API call调整堆可用的设备全局内存量。
您可能也对C++ new/delete sample code.
感兴趣这些功能需要CC 2.0或更高版本。