如果从CUDA 4.2 中调用__device__
或编码,有人可以清楚地解释 new 和 delete 关键字的行为吗?__global__
内存在哪里分配,如果它在设备上是本地的还是全局的?
它就我试图在 GPU 上创建神经网络的问题的上下文而言,我想要一个链接表示(就像一个链接列表,但每个神经元都存储一个链接的链接列表,其中包含权重和指向其他神经元的指针),我知道我可以cudaMalloc
在内核启动之前分配使用,但我希望内核控制网络的创建方式和时间。
谢谢!
如果从CUDA 4.2 中调用__device__
或编码,有人可以清楚地解释 new 和 delete 关键字的行为吗?__global__
内存在哪里分配,如果它在设备上是本地的还是全局的?
它就我试图在 GPU 上创建神经网络的问题的上下文而言,我想要一个链接表示(就像一个链接列表,但每个神经元都存储一个链接的链接列表,其中包含权重和指向其他神经元的指针),我知道我可以cudaMalloc
在内核启动之前分配使用,但我希望内核控制网络的创建方式和时间。
谢谢!
C++new
并delete
在设备堆内存上进行操作。该设备允许以这种方式分配一部分全局(即板载)内存。 new
并delete
以与devicemalloc
和free
.
您可以使用运行时 API 调用调整堆可用的设备全局内存量。
您可能还对C++ 新建/删除示例代码感兴趣。
这些功能需要 CC 2.0 或更高版本。