请问为什么for循环结束后x的赋值还是0,但是在kernel里面首先赋值x=0,后面的输出就是正常的2

image

image

第一幅图并未在kernel中让x=0,输出的x为0,第二幅图输出的x就是我认为正常的x=2

为啥第一幅图里面,x的值输出不会发生改变呢

如果你想要类似的效果,可以使用下面的方法

import taichi as ti
ti.init(arch=ti.cpu)

x = ti.field(ti.f32, shape=())

@ti.kernel
def test():
    for i in ti.static(range(1)):
        x[None] = 5
    print(x[None])


test()