2013-09-26 80 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. 如果您知道編譯時所需的內存大小,請使用靜態分配;