Multithreading 原子_是否以原子方式执行操作
我有一个使用全局uint数组的内核,我想使用OpenCL中的Multithreading 原子_是否以原子方式执行操作,multithreading,opencl,gpu,atomic,Multithreading,Opencl,Gpu,Atomic,我有一个使用全局uint数组的内核,我想使用OpenCL中的atom\u或函数从所有线程访问和更改该数组中的条目。 守则: void SetMove(int c, uint m, volatile __global uint *prevmove) { uint idx = c >> 4; uint mask = m << (2 * (c & 15)); atom_or(&prevmove[idx], mask); } void S
atom\u或函数从所有线程访问和更改该数组中的条目。
守则:
void SetMove(int c, uint m, volatile __global uint *prevmove)
{
uint idx = c >> 4;
uint mask = m << (2 * (c & 15));
atom_or(&prevmove[idx], mask);
}
void SetMove(int c、uint m、volatile\u global uint*prevmove)
{
uint idx=c>>4;
uint mask=m什么是c变量?每个线程从某个状态中查找多个后续状态p
c
这里是这些状态中的一个,并且m
编码从p
到c所需的操作在线程之间是连续的还是完全随机的?在线程之间应该是随机的,尽管我认为nk线程可能会使用相同的c
调用此函数,当您使用atomic\u或?时会发生什么情况,因为32位iInteger应该首选此函数