Ndrange超过int32范围报错?

代码如下:
batchsize = 524288
n_input= 32
n_output = 128

for k, i, j in ti.ndrange(self.batch_size, self.n_output, self.n_input):

报错:
Constant 2147483648 has exceeded the range of i32: [-2147483648, 2147483647]
因为524288 * 32 * 128 = 2147483648

Hi @yuxiangchen , 非常欢迎来到Taichi论坛。

你提到的问题和这个ISSUE:Unexpected results when iteration range exceeds INT_MAX · Issue #5217 · taichi-dev/taichi · GitHub 是一样的。

简单来说就是,for 循环在解析的时候会把range cast到 int32。
你可以看上面的ISSUE具体了解详情和bug修复进展。