Taichi如何查看profile中kernel name对应的函数

如题。
为了加速taichi程序,我进行了profile,
arch=CPU x64,
[Taichi] version 1.0.0, llvm 10.0.0, commit 6a15da85, win, python 3.7.0
在结果中看到这两个kernel占用了主要时间,想请问一下要如何知道这两个kernel具体对应的是什么语句呢?然后进行针对性的优化

[ 18.59%   0.064 s      2x |   31.477    32.204    32.931 ms] fill_tensor_c0_1_kernel_0_range_for
[ 11.30%   0.039 s 228640x |    0.000     0.000     0.037 ms] snode_reader_12_kernel_0_serial

cc @qiao-bo @haidonglan

Hi, 一般情况下前面的名字对应的是ti.kernel的名字,比如fill_tensor_***对应的应该是fill_tensor的kernel (比如你调用了某个snode的fill函数,which is a kernel in Taichi). 后面的range_for一般对应的是你kernel中一个并行的for loop. 像这种情况下fill_tensor 应该只有一个for loop, 所以0_range_for. 如果你的kernel有多个for loop, 应该会得到1_range_for, 2_range_for … etc. Serial是ti.kernel中没有被并行的部分,

3 Likes

非常感谢你的回复~