2013-09-26 85 views
0

我试图编译我的GPU的CUDA C代码与sm_10体系结构不支持从__global__功能调用mallocmalloc替代CUDA内核函数动态内存分配

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

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

+1

请问您可以显示您的代码吗? – StormeHawke

+2

你问题的最后一部分不是很清楚。你用_cudaMalloc'_拷贝整棵树是什么意思? 'cudaMalloc'只用于分配内存。你能解释一下为什么你认为'cudaMalloc'你只能复制你的树的根? – JackOLantern

回答

3

引述CUDA C编程指南

全球动态内存分配和操作只能由 计算能力2.x和更高的设备支持。

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

  1. 使用cudaMalloc从主机端,正如你在__global__功能需要分配尽可能多的全局存储器;
  2. 如果您知道编译时所需的内存大小,请使用静态分配;