我想通过下面的代码,能不能在编译期就判断出if下面的语句是否执行,从而节省判断的时间。
但是在gpu上执行反而是不加ti.static的速度更快,请问这种代码能发挥作用嘛
import taichi as ti
import time
ti.init(arch=ti.gpu, device_memory_GB=3)
@ti.data_oriented
class a:
def __init__(self):
self.k = 12
@ti.kernel
def m(self):
u=0
for i in range(1000000000):
u+=1
@ti.kernel
def l(self):
y=0
for i in range(1000000000):
if ti.static(self.k==12):
y+=1
@ti.kernel
def p(self):
x=0
for i in range(1000000000):
if self.k==12:
x+=1
A = a()
A.l()
A.p()
A.m()
s = time.time()
A.l()
d = time.time()
g = time.time()
A.p()
h = time.time()
e = time.time()
A.m()
t = time.time()
print(d-s, h-g, t-e)