Skip to content

Commit 2b78ce5

Browse files
authored
devtool tutorial fix (#10981)
this PR makes devtool turtorial as actual running as possible, removed lots of mock patch, to make it reflect the actual result. It still has several mock patch, which is for better format.
1 parent 4d86b29 commit 2b78ce5

File tree

5 files changed

+29
-14
lines changed

5 files changed

+29
-14
lines changed

devtools/inspector/_inspector.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1240,7 +1240,7 @@ def find_total_for_module(self, module_name: str) -> float:
12401240
for block in self.event_blocks:
12411241
for event in block.events:
12421242
# Skip OPERATOR_CALL events to avoid double-counting and exclude framework tax
1243-
if event.event_name == "OPERATOR_CALL":
1243+
if event.name == "OPERATOR_CALL":
12441244
continue
12451245

12461246
module_hierarchy = event.module_hierarchy.values()
789 KB
Loading
-256 Bytes
Binary file not shown.

docs/source/tutorials_source/devtools-integration-tutorial.py

Lines changed: 28 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -187,24 +187,22 @@ def forward(self, x):
187187

188188
from executorch.devtools import Inspector
189189

190+
190191
# sphinx_gallery_start_ignore
191-
inspector_patch = patch.object(Inspector, "__init__", return_value=None)
192-
inspector_patch_print = patch.object(Inspector, "print_data_tabular", return_value="")
193-
inspector_patch.start()
192+
# inspector_patch = patch.object(Inspector, "__init__", return_value=None)
193+
inspector_patch_print = patch.object(Inspector, "print_data_tabular", return_value=None)
194194
inspector_patch_print.start()
195195
# sphinx_gallery_end_ignore
196196
etrecord_path = "etrecord.bin"
197197
etdump_path = "etdump.etdp"
198198
inspector = Inspector(etdump_path=etdump_path, etrecord=etrecord_path)
199-
# sphinx_gallery_start_ignore
200-
inspector.event_blocks = []
201-
# sphinx_gallery_end_ignore
202199
inspector.print_data_tabular()
203200

204-
# sphinx_gallery_start_ignore
205-
inspector_patch.stop()
206-
inspector_patch_print.stop()
207-
# sphinx_gallery_end_ignore
201+
####################################
202+
#
203+
# Here is an example output:
204+
#
205+
# .. image:: ../_static/img/inspector_tabular_output.png
208206

209207
######################################################################
210208
# Analyzing with an Inspector
@@ -234,11 +232,13 @@ def forward(self, x):
234232
if event.name == "native_call_addmm.out":
235233
print(event.name, event.perf_data.raw if event.perf_data else "")
236234

235+
print()
237236
# Via Dataframe
238237
df = event_block.to_dataframe()
239238
df = df[df.event_name == "native_call_addmm.out"]
240-
print(df[["event_name", "raw"]])
241-
print()
239+
if len(df) > 0:
240+
print(df[["event_name", "raw"]])
241+
print()
242242

243243
######################################################################
244244
# If a user wants to trace an operator back to their model code, they would do
@@ -255,6 +255,20 @@ def forward(self, x):
255255
if slowest is not None:
256256
print(slowest.name)
257257
print()
258+
# sphinx_gallery_start_ignore
259+
slowest_print = patch.object(
260+
slowest,
261+
"stack_traces",
262+
new={
263+
"aten_convolution_default_1_": " File "
264+
'"devtools-integration-tutorial.py", '
265+
"line 82, in forward\n"
266+
" x = F.max_pool2d(F.relu(self.conv2(x)), "
267+
"2)\n"
268+
},
269+
)
270+
slowest_print.start()
271+
# sphinx_gallery_end_ignore
258272
pp.pprint(slowest.stack_traces)
259273
print()
260274
pp.pprint(slowest.module_hierarchy)
@@ -264,7 +278,7 @@ def forward(self, x):
264278
df = df[df.event_name == "native_call_convolution.out"]
265279
if len(df) > 0:
266280
slowest = df.loc[df["p50"].idxmax()]
267-
assert slowest
281+
assert slowest is not None
268282
print(slowest.name)
269283
print()
270284
pp.pprint(slowest.stack_traces if slowest.stack_traces else "")
@@ -281,6 +295,7 @@ def forward(self, x):
281295
######################################################################
282296
# Note: ``find_total_for_module`` is a special first class method of
283297
# `Inspector <../model-inspector.html>`__
298+
#
284299

285300
######################################################################
286301
# Conclusion
2.27 KB
Binary file not shown.

0 commit comments

Comments
 (0)