我一直认为,在整个分配中,renderscripts是forEach的线程安全。为了帮助我调试,有人可以确认一下吗?
(我看到静态数组值检查成功,但使用rsDebug显示检查应该失败。
static uint32_t state[16];
static void f(); // modifies state.
/* snip... */
void
root(const uint32_t *in, uint32_t *out)
{
/* snip... */
f();
if(state[0] == 0)
{
rsDebug("state[0]", state[0]);
*out = 1;
}
}
我看到打印状态[0]的值非零值!)
答案 0 :(得分:0)
预计每个单元独立于其他单元执行。如果要写入输入(或输出)分配的其他单元格,则肯定会触发未定义的行为。但是,这与任何其他多线程计算模型没有什么不同。你能准确地展示你的内核代码并描述你如何调用它吗?