taichi.profiler
¶
Submodules¶
Package Contents¶
Classes¶
Kernel profiler of Taichi. |
Functions¶
We have only one |
- class taichi.profiler.KernelProfiler¶
Kernel profiler of Taichi.
Kernel profiler acquires kernel profiling records from backend, counts records in Python scope, and prints the results to the console by
print_info()
.KernelProfiler
now support detailed low-level performance metrics (such as memory bandwidth consumption) in its advanced mode. This mode is only available for the CUDA backend with CUPTI toolkit, i.e. you needti.init(kernel_profiler=True, arch=ti.cuda)
.Note
For details about using CUPTI in Taichi, please visit https://docs.taichi.graphics/docs/lang/articles/misc/profiler#advanced-mode.
- COUNT = count¶
- TRACE = trace¶
- set_kernel_profiler_mode(self, mode=False)¶
Turn on or off
KernelProfiler
.
- get_kernel_profiler_mode(self)¶
Get status of
KernelProfiler
.
- set_toolkit(self, toolkit_name='default')¶
- get_total_time(self)¶
Get elapsed time of all kernels recorded in KernelProfiler.
- Returns
total time in second.
- Return type
time (float)
- clear_info(self)¶
Clear all records both in front-end
KernelProfiler
and back-end instanceKernelProfilerBase
.Note
The values of
self._profiling_mode
andself._metric_list
will not be cleared.
- query_info(self, name)¶
For docsting of this function, see
query_kernel_profile_info()
.
- set_metrics(self, metric_list=default_cupti_metrics)¶
For docsting of this function, see
set_kernel_profile_metrics()
.
- collect_metrics_in_context(self, metric_list=default_cupti_metrics)¶
This function is not exposed to user now.
For usage of this function, see
collect_kernel_profile_metrics()
.
- print_info(self, mode=COUNT)¶
Print the profiling results of Taichi kernels.
For usage of this function, see
print_kernel_profile_info()
.- Parameters
mode (str) – the way to print profiling results.
- taichi.profiler.get_default_kernel_profiler()¶
We have only one
KernelProfiler
instance(i.e._ti_kernel_profiler
) now.For
KernelProfiler
usingCuptiToolkit
, GPU devices can only work in a certain configuration. Profiling mode and metrics are configured by the host(CPU) via CUPTI APIs, and device(GPU) will use its counter registers to collect specific metrics. So if there are multiple instances ofKernelProfiler
, the device will work in the latest configuration, the profiling configuration of other instances will be changed as a result. For data retention purposes, multiple instances will be considered in the future.