2012-05-18 95 views
0

我是CUDA新手,存在以下問題?我的內核是應該計算類型:在我試圖改變原來的C++代碼CUDA,將在一個循環計算的陣列[6],然後將其推回至my_vectorCUDA陣列和C++向量

vector <double *> *my_vector = new vector <double *>(); 

for{ 
      //calculations 


     double *array = new double[6]; 
     array[0] = data; 
     array[1] = data; 
     array[2] = data; 
     array[3] = data; 
     array[4] = data; 
     array[5] = data; 

     my_vector->push_back(array); 
} 

我知道使用推力可以幫助,但我更喜歡如果我不使用它。我想在內核中使用2D數組並將數據複製回主機代碼,然後使用std :: vector將其複製到my_vector。我到目前爲止所嘗試的都失敗了。

如果有人有這方面的經驗,並有任何想法,這將是很大的幫助。

+2

在CUDA中沒有STL支持,內核中的'malloc'支持非常慢。你可能想考慮另一種方法。 – talonmies

回答

1

查看the Thrust模板庫,爲主機和設備代碼的使用提供有用的模板。可以使用thrust::device_vector類似於std::vector類比。