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