0
如果我在C++中有一個for循環,但是如何在OpenCL內核中對其進行並行化。在OpenCL中循環步進
例如:
for(int i=0;i<100;i++4)
for(int j=0;j<60;j++4)
{
a[i]= b[j]+2;
}
在OpenCL的,如果我想並行化循環,我能想到用的 「/」或「%」,但是否有其他解決辦法? 我想是這樣的:
int id1= get_global_id(0);
int id2= get_global_id(1);
if((id1%4==0) && (id2%4==0))
{
a[id1] = b[id2]+2;
}
這只是一個例子,我想知道,如何能與步幅工作。有沒有其他方法?
什麼樣的數據類型是a和b? (我假設爲整數)兩個列表中有多少條目? – mfa
如果你不安排你的代碼來實現讀寫合併,你將在桌面上留下很多性能。 – Dithermaster