性能分析器
Taichi 的分析器可以帮助你分析程序的运行时开销。在 Taichi 中有两个分析系统: ScopedProfiler
和 KernelProfiler
.
基于作用域的性能分析器 - ScopedProfiler
ScopedProfiler
能够有层次地度量 主机上 执行任务所花费的时间。- 这个分析器是自动开启的。如要显示它的结果,请调用
ti.print_profile_info()
。例如:
import taichi as ti
ti.init(arch=ti.cpu)
var = ti.var(ti.f32, shape=1)
@ti.kernel
def compute():
var[0] = 1.0
print("Setting var[0] =", var[0])
compute()
ti.print_profile_info()
ti.print_profile_info()
会以有层次的格式打印分析结果。
注解
ScopedProfiler
是 Taichi 的一个核心 C++ 类。 它不会向 Python 用户公开。
内核性能分析器(KernelProfiler)
KernelProfiler
记录了 Taichi 内核在设备上的开销。如要开启该分析器,请在ti.init
中设置kernel_profiler=True
。- 通过调用
ti.kernel_profiler_print()
以显示内核分析器的结果。例如:
import taichi as ti
ti.init(ti.cpu, kernel_profiler=True)
var = ti.var(ti.f32, shape=1)
@ti.kernel
def compute():
var[0] = 1.0
compute()
ti.kernel_profiler_print()
输出将会是:
[ 22.73%] jit_evaluator_0_kernel_0_serial min 0.001 ms avg 0.001 ms max 0.001 ms total 0.000 s [ 1x]
[ 0.00%] jit_evaluator_1_kernel_1_serial min 0.000 ms avg 0.000 ms max 0.000 ms total 0.000 s [ 1x]
[ 77.27%] compute_c4_0_kernel_2_serial min 0.004 ms avg 0.004 ms max 0.004 ms total 0.000 s [ 1x]