使用opengl后端计算超大循环体时计算缓慢且结果有错

对如下代码

@ti.kernel
def ttt():
    for i in range(20000000):
        a[None]+=1

ti.init(ti.opengl)
a=ti.field(float, ())
ttt()
print(a[None])

输出结果为:

[Taichi] Starting on arch=opengl
16777216.0

结果错误,应为20000000.0,且运行时间长达27.9秒
而切换为cuda后端或x64后端后,都可以在一秒内输出正确的结果

[Taichi] version 1.5.0, llvm 15.0.1, commit 7b885c28, win, python 3.8.8

计数的需求麻烦用 int 类型吧,现在的 a 是 float。这个跟后端的实现有点关系。(是bug)

好的。
不过实际上并非是计数需求,我实际使用中中间是一系列浮点计算。

暂时先用 f64 吧,或者 cpu / cuda 后端

好的。