mirror of
https://github.com/pytorch/pytorch.git
synced 2025-10-20 21:14:14 +08:00
running python test/strobelight/examples/compile_time_profile_example.py ``` strobelight_compile_time_profiler, line 123, 2025-02-20 14:08:08,409, INFO: compile time strobelight profiling enabled strobelight_compile_time_profiler, line 159, 2025-02-20 14:08:08,409, INFO: Unique sample tag for this run is: 2025-02-20-14:08:081656673devgpu005.nha1.facebook.com strobelight_compile_time_profiler, line 160, 2025-02-20 14:08:09,124, INFO: URL to access the strobelight profile at the end of the run: https://fburl.com/scuba/pyperf_experimental/on_demand/9felqj0i strobelight_compile_time_profiler, line 205, 2025-02-20 14:08:12,436, INFO: profiling frame 0/0 is skipped due to frame_id_filter 1/.* strobelight_compile_time_profiler, line 205, 2025-02-20 14:08:15,553, INFO: profiling frame 0/0 is skipped due to frame_id_filter 1/.* strobelight_compile_time_profiler, line 205, 2025-02-20 14:08:16,170, INFO: profiling frame 0/0 is skipped due to frame_id_filter 1/.* strobelight_compile_time_profiler, line 214, 2025-02-20 14:08:16,877, INFO: profiling frame 1/0 strobelight_function_profiler, line 247, 2025-02-20 14:08:19,416, INFO: strobelight run id is: 4015948658689996 strobelight_function_profiler, line 249, 2025-02-20 14:08:21,546, INFO: strobelight profiling running strobelight_function_profiler, line 289, 2025-02-20 14:08:25,964, INFO: work function took 4.417063233006047 seconds strobelight_function_profiler, line 230, 2025-02-20 14:08:28,310, INFO: strobelight profiling stopped strobelight_function_profiler, line 221, 2025-02-20 14:08:44,308, INFO: Total samples: 119 strobelight_function_profiler, line 221, 2025-02-20 14:08:44,308, INFO: GraphProfiler (python stack): https://fburl.com/scuba/pyperf_experimental/on_demand/73h2f7ur strobelight_function_profiler, line 221, 2025-02-20 14:08:44,308, INFO: Icicle view (python stack): https://fburl.com/scuba/pyperf_experimental/on_demand/zs06fi9e strobelight_compile_time_profiler, line 167, 2025-02-20 14:08:44,308, INFO: 1 strobelight success runs out of 1 non-recursive compilation events. ``` Pull Request resolved: https://github.com/pytorch/pytorch/pull/147549 Approved by: https://github.com/bobrenjc93 ghstack dependencies: #147547
38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
# mypy: allow-untyped-defs
|
|
import torch
|
|
from torch._strobelight.compile_time_profiler import StrobelightCompileTimeProfiler
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# You can pass TORCH_COMPILE_STROBELIGHT=True instead.
|
|
StrobelightCompileTimeProfiler.enable()
|
|
|
|
# You can use the code below to filter what frames to be profiled.
|
|
StrobelightCompileTimeProfiler.frame_id_filter = "1/.*"
|
|
# StrobelightCompileTimeProfiler.frame_id_filter='0/.*'
|
|
# StrobelightCompileTimeProfiler.frame_id_filter='.*'
|
|
# You can set env variable COMPILE_STROBELIGHT_FRAME_FILTER to set the filter also.
|
|
|
|
def fn(x, y, z):
|
|
return x * y + z
|
|
|
|
@torch.compile()
|
|
def work(n):
|
|
for _ in range(3):
|
|
for _ in range(5):
|
|
fn(torch.rand(n, n), torch.rand(n, n), torch.rand(n, n))
|
|
|
|
# Strobelight will be called only 3 times because dynamo will be disabled after
|
|
# 3rd iteration.
|
|
# Frame 0/0
|
|
for i in range(3):
|
|
torch._dynamo.reset()
|
|
work(i)
|
|
|
|
@torch.compile(fullgraph=True)
|
|
def func4(x):
|
|
return x * x
|
|
|
|
# Frame 1/0
|
|
func4(torch.rand(10))
|