想问个简单的小问题,假如在循环之外有一个外部变量,随着循环会不断变化,发现在arch=gpu情况下只有开串行才是正确的,但是如果想要并行处理的话该如何来做呢:
import taichi as ti
ti.init(arch=ti.gpu)
# ti.init(arch=ti.cpu)
testfield = ti.field(ti.i32, 100)
@ti.kernel
def testlock():
testnum = 0
# ti.loop_config(serialize=True)
for i in range(10):
testfield[testnum] = 10
testnum += 1
testlock()
print(testfield)
此外,发现如果是arch=cpu结果也会是正确的,所以感觉有些困惑