一个简单的运算为什么会出错

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

t = 300
@ti.kernel
def test(T:ti.i32):
r = int(abs(T) / (T))
print(r)
test(t)

输出结果为0

似乎是一个和精度相关的问题,如果用cpu后端,或者cuda下开双精度
ti.init(arch = ti.cuda, default_fp=ti.f64)
就不会出错了

1 个赞

ti.init(arch=ti.gpu,default_fp=ti.f64)

设置默认精度为f64就好,taichi精度好像不太行