为啥下面的代码给出的结果不一样呢?
import taichi as ti
# ti.init(arch=ti.cpu, cpu_max_num_threads=1, default_fp=ti.f64) # Try to run on GPU
ti.init(arch=ti.cuda, default_fp=ti.f64) # Try to run on GPU
# summ = ti.field(dtype=float, shape=()) # grid forces
# summ[None] = 1000000000
summ1 = ti.field(dtype=float, shape=()) # grid forces
summ1[None] = 1000000000
# @ti.kernel
# def func():
# for indx in range(1000000):
# summ[None] += 0.000001
# summ[None] -= 1000000000
@ti.kernel
def func1():
c = 0.0
for indx in range(1000000):
y = 0.000001 - c
t = summ1[None] + y
c = (t - summ1[None]) - y
summ1[None] = t
summ1[None] -= 1000000000
# func()
func1()
# print('非精确解(双精度):', summ[None])
print('精确解GPU:', summ1[None])