在CUDA内核函数中用于动态内存分配的malloc的替代方法

时间:2013-09-26 20:59:34

标签: cuda malloc gpu

我正在尝试为具有sm_10架构的GPU编译我的CUDA C代码,该架构不支持从malloc函数调用__global__

我需要保留一个树,在GPU内存中动态创建节点。不幸的是,没有malloc显然我不能这样做。

是否有办法使用cudaMalloc复制整棵树?我认为这样的方法只会复制我树的根。

1 个答案:

答案 0 :(得分:3)

引用CUDA C编程指南

  

动态全局内存分配和操作仅受设备支持   计算能力2.x及更高。

对于早于2.0的计算能力,唯一的可能性是:

  1. 使用主机端的cudaMalloc__global__功能中根据需要分配全局内存;
  2. 如果您在编译时知道所需的内存大小,请使用静态分配;