运行环境
[Taichi] version 0.7.32, llvm 10.0.0, commit 6652f94f, win, python 3.9.7
[Taichi] Starting on arch=cuda
问题描述
在taichi_sparse中,每个层级的block的下标计算如下:
t = x[i, j]
block1_index = ti.rescale_index(x, block1, ti.Vector([i, j])) # ti.Vector([i, j]) // 64
block2_index = ti.rescale_index(x, block2, ti.Vector([i, j])) # ti.Vector([i, j]) // 16
block3_index = ti.rescale_index(x, block3, ti.Vector([i, j])) # ti.Vector([i, j]) // 4
但个人感觉正确的下标计算应该是:
t = x[i, j]
block1_index = ti.Vector([i, j]) // 64 # (i, j) 在 block1 (8 * 8) 中的的相对位置
block2_index = (ti.Vector([i, j]) % 64) // 16 # (i % 64, j % 64) 在 block2 (4 * 4) 中的相对位置
block3_index = ((ti.Vector([i, j]) % 64) % 16) // 4 # ((i % 64) % 16, (i % 64) % 16) 在 block3 (4 * 4) 中的相对位置