为了我正在写的一篇教程,我正在寻找一个由于忽略SIMT / SIMD而导致死锁的“真实”和简单的示例。
我想到了这个片段,似乎是一个很好的例子。
欢迎任何意见。
我知道,这既不是标准的CUDA C也不是OpenCL C。
我想到了这个片段,似乎是一个很好的例子。
欢迎任何意见。
…
int x = threadID / 2;
if (threadID > x) {
value[threadID] = 42;
barrier();
}
else {
value2[threadID/2] = 13
barrier();
}
result = value[threadID/2] + value2[threadID/2];
我知道,这既不是标准的CUDA C也不是OpenCL C。
get_local_id(0) > constant
,并用注释/* do some stuff */
和/* do another stuff */
替换 "业务代码"(赋值)。 尽管如此,我认为 StackOverflow 不是讨论的最佳场所,它更适合提问和回答。 - Radim Vansa