我是新推力(cuda),我想做一些數組操作,但我沒有在互聯網上找到任何類似的例子。推力 - 如何使用我的陣列/數據 - 模型
我有以下兩個數組(2D):
a = { {1, 2, 3}, {4} }
b = { {5}, {6, 7} }
我想要的推力計算此陣:
c = { {1, 2, 3, 5}, {1, 2, 3, 6, 7}, {1, 2, 3, 5}, {1, 2, 3, 6, 7} }
我知道它是如何工作在C/C++而不是怎麼說的推力去做吧。
這是我知道這是怎麼沃爾也許可以工作:
主題1: 乘坐[0] - >用b展開。 將其寫入c。
線程2: 做一個[1] - >用b展開它。 將其寫入c。
但我不知道該怎麼做。我可以寫數組a和b的一維數組,如:
thrust::device_vector<int> dev_a;
dev_a.push_back(3); // size of first array
dev_a.push_back(1);
dev_a.push_back(2);
dev_a.push_back(3);
dev_a.push_back(1); // size of secound array
dev_a.push_back(4);
thrust::device_vector<int> dev_b;
dev_b.push_back(1); // size of first array
dev_b.push_back(5);
dev_b.push_back(2); // size of secound array
dev_b.push_back(6);
dev_b.push_back(7);
和僞功能:
struct expand
{
__host__ __device__
?? ?? (const array ai, const array *b) {
for bi in b: // each array in the 2d array
{
c.push_back(bi[0] + ai[0]); // write down the array count
for i in ai: // each element in the ai array
c.push_back(i);
for i in bi: // each element in the bi array
c.push_back(i);
}
}
};
任何人任何想法?
P.S.如果有人知道,如何在兩個列表項之間製作這種電路板格式代碼 - 請更正。 –
謝謝你的幫助。我會試試看。 如果有人知道陣列讀/寫多線程的另一種方式 - 請告訴我們。 ;) – nt2005