Created
August 28, 2025 04:27
-
-
Save blais/185450275a66d575fc2a47edcc368c20 to your computer and use it in GitHub Desktop.
xprof data
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/usr/bin/env python | |
| import pprint | |
| import json | |
| # from xprof.pywrap import _pywrap_profiler_plugin as profiler_wrapper_plugin | |
| from xprof import profile_plugin | |
| from xprof.protobuf import roofline_model_pb2 | |
| tools = profile_plugin._get_tools( | |
| ["/tmp/jax-trace/plugins/profile/2025_08_27_23_22_13/lumia.xplane.pb"], | |
| "/tmp/jax-trace/plugins/profile/2025_08_27_23_22_13", | |
| ) | |
| print(tools) | |
| # Output: | |
| # { | |
| # "op_profile", | |
| # "hlo_stats", | |
| # "memory_viewer", | |
| # "trace_viewer@", | |
| # "framework_op_stats", | |
| # "overview_page", | |
| # "roofline_model", | |
| # "memory_profile", | |
| # "kernel_stats", | |
| # "graph_viewer", | |
| # } | |
| # Output: these "tools' are - I think - the contents of the ListBox on the left | |
| # of the Profile tab in recent TensorBoard. | |
| from xprof.convert.raw_to_tool_data import xspace_to_tool_data | |
| data, success = xspace_to_tool_data( | |
| ["/tmp/jax-trace/plugins/profile/2025_08_27_23_22_13/lumia.xplane.pb"], | |
| "roofline_model", | |
| {}, | |
| ) | |
| pprint.pprint(json.loads(data)) | |
| # Output if conversion of the xplane protobuf + business logic to produce the | |
| # JSON to render in the tab. | |
| """ | |
| [{'cols': [{'id': 'step', 'label': 'Step', 'type': 'string'}, | |
| {'id': 'rank', 'label': 'Rank', 'type': 'number'}, | |
| {'id': 'category', 'label': 'Category', 'type': 'string'}, | |
| {'id': 'operation', 'label': 'Operation', 'type': 'string'}, | |
| {'id': 'occurrences', 'label': '# Occurrences', 'type': 'number'}, | |
| {'id': 'total_time', 'label': 'Total Time (us)', 'type': 'number'}, | |
| {'id': 'avg_time', 'label': 'Avg. time (us)', 'type': 'number'}, | |
| {'id': 'total_self_time', | |
| 'label': 'Total self time (us)', | |
| 'type': 'number'}, | |
| {'id': 'avg_self_time', | |
| 'label': 'Avg. self time (us)', | |
| 'type': 'number'}, | |
| {'id': 'total_self_time_percent', | |
| 'label': 'Total self time (%)', | |
| 'type': 'number'}, | |
| {'id': 'cumulative_total_self_time_percent', | |
| 'label': 'Cumulative total self time (%)', | |
| 'type': 'number'}, | |
| {'id': 'measured_flop_rate', | |
| 'label': 'Normalized FLOP Rate (GFLOP/s)', | |
| 'type': 'number'}, | |
| {'id': 'model_flop_rate', | |
| 'label': 'Model FLOP Rate (GFLOP/s)', | |
| 'type': 'number'}, | |
| {'id': 'measured_memory_bw', | |
| 'label': 'Memory BW (GiB/s)', | |
| 'type': 'number'}, | |
| {'id': 'hbm_bw', 'label': 'HBM BW (GiB/s)', 'type': 'number'}, | |
| {'id': 'vmem_write_bw', | |
| 'label': 'SHM/L1 BW (GiB/s)', | |
| 'type': 'number'}, | |
| {'id': 'operational_intensity', | |
| 'label': 'Operational Intensity (FLOP/Byte)', | |
| 'type': 'number'}, | |
| {'id': 'hbm_operational_intensity', | |
| 'label': 'HBM Operational Intensity (FLOP/Byte)', | |
| 'type': 'number'}, | |
| {'id': 'vmem_write_operational_intensity', | |
| 'label': 'SHM/L1 Operational Intensity (FLOP/Byte)', | |
| 'type': 'number'}, | |
| {'id': 'bottleneck_operational_intensity', | |
| 'label': 'Bottleneck Operational Intensity (FLOP/Byte)', | |
| 'type': 'number'}, | |
| {'id': 'bound_by', 'label': 'Bound by', 'type': 'string'}, | |
| {'id': 'total_time_per_core', | |
| 'label': 'Total Time per core (us)', | |
| 'type': 'number'}, | |
| {'id': 'total_time_in_percentage', | |
| 'label': 'Total Time (%)', | |
| 'type': 'number'}, | |
| {'id': 'optimal_flop_rate', | |
| 'label': 'Optimal FLOP Rate (GFLOP/s)', | |
| 'type': 'number'}, | |
| {'id': 'roofline_efficiency', | |
| 'label': 'Roofline efficiency (%)', | |
| 'type': 'number'}, | |
| {'id': 'compute_efficiency', | |
| 'label': 'FLOP Rate / Peak (%)', | |
| 'type': 'number'}, | |
| {'id': 'max_mem_bw_utilization', | |
| 'label': 'Max memory BW utilization (among supported memories) (%)', | |
| 'type': 'number'}, | |
| {'id': 'include_infeed_outfeed', | |
| 'label': 'Include Infeed/Outfeed', | |
| 'type': 'boolean'}, | |
| {'id': 'hlo_module_id', 'label': 'Program ID', 'type': 'string'}, | |
| {'id': 'source_info', 'label': 'Source Info', 'type': 'string'}], | |
| 'p': {'device_type': 'Nvidia GPU (Ampere)', | |
| 'hbm_ridge_point': '141.509', | |
| 'peak_flop_rate': '50950.1', | |
| 'peak_hbm_bw': '335.321', | |
| 'peak_vmem_write_bw': '11862.8', | |
| 'vmem_write_ridge_point': '4'}, | |
| 'rows': [{'c': [{'v': 'Total'}, | |
| {'v': 0.0}, | |
| {'v': 'Program'}, | |
| {'v': 'Program'}, | |
| {'v': 1.0}, | |
| {'v': 460088.832}, | |
| {'v': 460088.832}, | |
| {'v': 0.0}, | |
| {'v': 0.0}, | |
| {'v': 0.0}, | |
| {'v': 0.0}, | |
| {'v': 0.004212360451296501}, | |
| {'v': 0.004212360451296501}, | |
| {'v': 0.006412253881798044}, | |
| {'v': 0.006412253881798044}, | |
| {'v': 0.0}, | |
| {'v': 0.611807712705508}, | |
| {'v': 0.611807712705508}, | |
| {'v': 0.0}, | |
| {'v': 0.611807712705508}, | |
| {'v': 'HBM'}, | |
| {'v': 460088.832}, | |
| {'v': 1.0}, | |
| {'v': 220.28014334419277}, | |
| {'v': 1.9122742464873885e-05}, | |
| {'v': 8.267612455219954e-08}, | |
| {'v': 1.9122742464873885e-05}, | |
| {'v': True}, | |
| {'v': '0'}, | |
| {'v': ''}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 1.0}, | |
| {'v': 'call'}, | |
| {'v': 'call'}, | |
| {'v': 18000.0}, | |
| {'v': 24031.576}, | |
| {'v': 1.3350875555555557}, | |
| {'v': 24031.576}, | |
| {'v': 1.3350875555555557}, | |
| {'v': 0.05223246975053722}, | |
| {'v': 0.05223246975053722}, | |
| {'v': 289.40349147305193}, | |
| {'v': 289.40349147305193}, | |
| {'v': 76.92847791233955}, | |
| {'v': 76.08580833201577}, | |
| {'v': 0.0}, | |
| {'v': 3.503618063112078}, | |
| {'v': 3.5424215197300866}, | |
| {'v': 0.0}, | |
| {'v': 3.5424215197300866}, | |
| {'v': 'HBM'}, | |
| {'v': 24031.576}, | |
| {'v': 0.05223246975053722}, | |
| {'v': 1275.4417833357782}, | |
| {'v': 0.22690450889585004}, | |
| {'v': 0.00568013098202533}, | |
| {'v': 0.22690450889585004}, | |
| {'v': True}, | |
| {'v': '52'}, | |
| {'v': ''}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 2.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_add_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 29.439}, | |
| {'v': 1.47195}, | |
| {'v': 29.439}, | |
| {'v': 1.47195}, | |
| {'v': 6.398546965817245e-05}, | |
| {'v': 0.05229645522019539}, | |
| {'v': 13.043921328849486}, | |
| {'v': 13.043921328849486}, | |
| {'v': 32.556903698776495}, | |
| {'v': 32.556903698776495}, | |
| {'v': 0.0}, | |
| {'v': 0.373134328358209}, | |
| {'v': 0.373134328358209}, | |
| {'v': 0.0}, | |
| {'v': 0.373134328358209}, | |
| {'v': 'HBM'}, | |
| {'v': 29.439}, | |
| {'v': 6.398546965817245e-05}, | |
| {'v': 134.34626865671643}, | |
| {'v': 0.09709180209671105}, | |
| {'v': 0.00025601343401207045}, | |
| {'v': 0.09709180209671105}, | |
| {'v': True}, | |
| {'v': '58'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:44:8\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:44</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 3.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_multiply_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 28.707}, | |
| {'v': 1.4353500000000001}, | |
| {'v': 28.707}, | |
| {'v': 1.4353500000000001}, | |
| {'v': 6.239447255263958e-05}, | |
| {'v': 0.052358849692748025}, | |
| {'v': 13.376528372870728}, | |
| {'v': 13.376528372870728}, | |
| {'v': 17.03612743867628}, | |
| {'v': 17.03612743867628}, | |
| {'v': 0.0}, | |
| {'v': 0.7312614259597806}, | |
| {'v': 0.7312614259597806}, | |
| {'v': 0.0}, | |
| {'v': 0.7312614259597806}, | |
| {'v': 'HBM'}, | |
| {'v': 28.707}, | |
| {'v': 6.239447255263957e-05}, | |
| {'v': 263.28921389396714}, | |
| {'v': 0.050805455244580494}, | |
| {'v': 0.00026254152241200204}, | |
| {'v': 0.050805455244580494}, | |
| {'v': True}, | |
| {'v': '55'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:44:8\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:44</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 4.0}, | |
| {'v': 'input fusion'}, | |
| {'v': 'input_reduce_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 25.088}, | |
| {'v': 1.2544}, | |
| {'v': 25.088}, | |
| {'v': 1.2544}, | |
| {'v': 5.452860025083157e-05}, | |
| {'v': 0.05241337829299886}, | |
| {'v': 30.373086734693878}, | |
| {'v': 30.373086734693878}, | |
| {'v': 19.493626848775513}, | |
| {'v': 19.493626848775513}, | |
| {'v': 0.0}, | |
| {'v': 1.4510968921389398}, | |
| {'v': 1.4510968921389398}, | |
| {'v': 0.0}, | |
| {'v': 1.4510968921389398}, | |
| {'v': 'HBM'}, | |
| {'v': 25.088}, | |
| {'v': 5.452860025083156e-05}, | |
| {'v': 522.464533820841}, | |
| {'v': 0.058134255568645266}, | |
| {'v': 0.0005961334816775765}, | |
| {'v': 0.058134255568645266}, | |
| {'v': True}, | |
| {'v': '64'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:48:13\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:48</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 5.0}, | |
| {'v': 'input fusion'}, | |
| {'v': 'input_reduce_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 24.479}, | |
| {'v': 1.2239499999999999}, | |
| {'v': 24.479}, | |
| {'v': 1.2239499999999999}, | |
| {'v': 5.320494282286774e-05}, | |
| {'v': 0.05246658323582173}, | |
| {'v': 0.2426569712815066}, | |
| {'v': 0.2426569712815066}, | |
| {'v': 0.30740987797267316}, | |
| {'v': 0.30740987797267316}, | |
| {'v': 0.0}, | |
| {'v': 0.7351485148514851}, | |
| {'v': 0.7351485148514851}, | |
| {'v': 0.0}, | |
| {'v': 0.7351485148514851}, | |
| {'v': 'HBM'}, | |
| {'v': 24.479}, | |
| {'v': 5.320494282286774e-05}, | |
| {'v': 264.6887524752475}, | |
| {'v': 0.0009167634401246376}, | |
| {'v': 4.762635632227195e-06}, | |
| {'v': 0.0009167634401246376}, | |
| {'v': True}, | |
| {'v': '73'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:55:11\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:55</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 6.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_maximum_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 23.743}, | |
| {'v': 1.18715}, | |
| {'v': 23.743}, | |
| {'v': 1.18715}, | |
| {'v': 5.160525174408058e-05}, | |
| {'v': 0.05251818848756581}, | |
| {'v': 16.175714947563492}, | |
| {'v': 16.175714947563492}, | |
| {'v': 40.16968463177439}, | |
| {'v': 40.16968463177439}, | |
| {'v': 0.0}, | |
| {'v': 0.3750292945863604}, | |
| {'v': 0.3750292945863604}, | |
| {'v': 0.0}, | |
| {'v': 0.3750292945863604}, | |
| {'v': 'HBM'}, | |
| {'v': 23.743}, | |
| {'v': 5.160525174408059e-05}, | |
| {'v': 135.0285474572299}, | |
| {'v': 0.11979477860181476}, | |
| {'v': 0.0003174812410258054}, | |
| {'v': 0.11979477860181476}, | |
| {'v': True}, | |
| {'v': '61'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:45:8\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:45</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 7.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'wrapped_multiply'}, | |
| {'v': 20.0}, | |
| {'v': 21.632}, | |
| {'v': 1.0816000000000001}, | |
| {'v': 21.632}, | |
| {'v': 1.0816000000000001}, | |
| {'v': 4.701700735913538e-05}, | |
| {'v': 0.052565205494924945}, | |
| {'v': 0.27736686390532544}, | |
| {'v': 0.27736686390532544}, | |
| {'v': 0.6888480581475432}, | |
| {'v': 0.6888480581475432}, | |
| {'v': 0.0}, | |
| {'v': 0.375}, | |
| {'v': 0.375}, | |
| {'v': 0.0}, | |
| {'v': 0.375}, | |
| {'v': 'HBM'}, | |
| {'v': 21.632}, | |
| {'v': 4.7017007359135376e-05}, | |
| {'v': 135.018}, | |
| {'v': 0.002054295456200843}, | |
| {'v': 5.443887732786888e-06}, | |
| {'v': 0.002054295456200843}, | |
| {'v': True}, | |
| {'v': '40'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:101:14\n" | |
| "'>/home/blais/p/machine-learning/tpu/example.py:101</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 8.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_multiply_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 21.599}, | |
| {'v': 1.07995}, | |
| {'v': 21.599}, | |
| {'v': 1.07995}, | |
| {'v': 4.6945282079787586e-05}, | |
| {'v': 0.052612150777004735}, | |
| {'v': 0.0027779063845548404}, | |
| {'v': 0.0027779063845548404}, | |
| {'v': 0.006899005136278371}, | |
| {'v': 0.006899005136278371}, | |
| {'v': 0.0}, | |
| {'v': 0.375}, | |
| {'v': 0.375}, | |
| {'v': 0.0}, | |
| {'v': 0.375}, | |
| {'v': 'HBM'}, | |
| {'v': 21.599}, | |
| {'v': 4.6945282079787586e-05}, | |
| {'v': 135.018}, | |
| {'v': 2.0574341084557913e-05}, | |
| {'v': 5.452205168556228e-08}, | |
| {'v': 2.0574341084557913e-05}, | |
| {'v': True}, | |
| {'v': '73'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:55:11\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:55</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 9.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_add_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 21.154}, | |
| {'v': 1.0577}, | |
| {'v': 21.154}, | |
| {'v': 1.0577}, | |
| {'v': 4.5978077555249155e-05}, | |
| {'v': 0.052658128854559984}, | |
| {'v': 0.2836343008414484}, | |
| {'v': 0.2836343008414484}, | |
| {'v': 0.7079354731879026}, | |
| {'v': 0.7079354731879026}, | |
| {'v': 0.0}, | |
| {'v': 0.373134328358209}, | |
| {'v': 0.373134328358209}, | |
| {'v': 0.0}, | |
| {'v': 0.373134328358209}, | |
| {'v': 'HBM'}, | |
| {'v': 21.154}, | |
| {'v': 4.5978077555249155e-05}, | |
| {'v': 134.34626865671643}, | |
| {'v': 0.002111218299379754}, | |
| {'v': 5.566898904965773e-06}, | |
| {'v': 0.002111218299379754}, | |
| {'v': True}, | |
| {'v': '67'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:48:13\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:48</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 10.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'wrapped_subtract'}, | |
| {'v': 20.0}, | |
| {'v': 21.152}, | |
| {'v': 1.0576}, | |
| {'v': 21.152}, | |
| {'v': 1.0576}, | |
| {'v': 4.597373056862202e-05}, | |
| {'v': 0.05270410258512861}, | |
| {'v': 0.283661119515885}, | |
| {'v': 0.283661119515885}, | |
| {'v': 1.056720016583372}, | |
| {'v': 1.056720016583372}, | |
| {'v': 0.0}, | |
| {'v': 0.25}, | |
| {'v': 0.25}, | |
| {'v': 0.0}, | |
| {'v': 0.25}, | |
| {'v': 'HBM'}, | |
| {'v': 21.152}, | |
| {'v': 4.597373056862202e-05}, | |
| {'v': 90.01200000000001}, | |
| {'v': 0.0031513700341719436}, | |
| {'v': 5.567425275890978e-06}, | |
| {'v': 0.0031513700341719436}, | |
| {'v': True}, | |
| {'v': '70'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:55:21\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:55</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 0.0}, | |
| {'v': 'Program'}, | |
| {'v': 'Program'}, | |
| {'v': 1.0}, | |
| {'v': 460088.832}, | |
| {'v': 460088.832}, | |
| {'v': 0.0}, | |
| {'v': 0.0}, | |
| {'v': 0.0}, | |
| {'v': 0.0}, | |
| {'v': 0.004212360451296501}, | |
| {'v': 0.004212360451296501}, | |
| {'v': 0.006412253881798044}, | |
| {'v': 0.006412253881798044}, | |
| {'v': 0.0}, | |
| {'v': 0.611807712705508}, | |
| {'v': 0.611807712705508}, | |
| {'v': 0.0}, | |
| {'v': 0.611807712705508}, | |
| {'v': 'HBM'}, | |
| {'v': 460088.832}, | |
| {'v': 1.0}, | |
| {'v': 220.28014334419277}, | |
| {'v': 1.9122742464873885e-05}, | |
| {'v': 8.267612455219954e-08}, | |
| {'v': 1.9122742464873885e-05}, | |
| {'v': False}, | |
| {'v': '0'}, | |
| {'v': ''}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 1.0}, | |
| {'v': 'call'}, | |
| {'v': 'call'}, | |
| {'v': 18000.0}, | |
| {'v': 24031.576}, | |
| {'v': 1.3350875555555557}, | |
| {'v': 24031.576}, | |
| {'v': 1.3350875555555557}, | |
| {'v': 0.05223246975053722}, | |
| {'v': 0.05223246975053722}, | |
| {'v': 289.40349147305193}, | |
| {'v': 289.40349147305193}, | |
| {'v': 76.92847791233955}, | |
| {'v': 76.08580833201577}, | |
| {'v': 0.0}, | |
| {'v': 3.503618063112078}, | |
| {'v': 3.5424215197300866}, | |
| {'v': 0.0}, | |
| {'v': 3.5424215197300866}, | |
| {'v': 'HBM'}, | |
| {'v': 24031.576}, | |
| {'v': 0.05223246975053722}, | |
| {'v': 1275.4417833357782}, | |
| {'v': 0.22690450889585004}, | |
| {'v': 0.00568013098202533}, | |
| {'v': 0.22690450889585004}, | |
| {'v': False}, | |
| {'v': '52'}, | |
| {'v': ''}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 2.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_add_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 29.439}, | |
| {'v': 1.47195}, | |
| {'v': 29.439}, | |
| {'v': 1.47195}, | |
| {'v': 6.398546965817245e-05}, | |
| {'v': 0.05229645522019539}, | |
| {'v': 13.043921328849486}, | |
| {'v': 13.043921328849486}, | |
| {'v': 32.556903698776495}, | |
| {'v': 32.556903698776495}, | |
| {'v': 0.0}, | |
| {'v': 0.373134328358209}, | |
| {'v': 0.373134328358209}, | |
| {'v': 0.0}, | |
| {'v': 0.373134328358209}, | |
| {'v': 'HBM'}, | |
| {'v': 29.439}, | |
| {'v': 6.398546965817245e-05}, | |
| {'v': 134.34626865671643}, | |
| {'v': 0.09709180209671105}, | |
| {'v': 0.00025601343401207045}, | |
| {'v': 0.09709180209671105}, | |
| {'v': False}, | |
| {'v': '58'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:44:8\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:44</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 3.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_multiply_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 28.707}, | |
| {'v': 1.4353500000000001}, | |
| {'v': 28.707}, | |
| {'v': 1.4353500000000001}, | |
| {'v': 6.239447255263958e-05}, | |
| {'v': 0.052358849692748025}, | |
| {'v': 13.376528372870728}, | |
| {'v': 13.376528372870728}, | |
| {'v': 17.03612743867628}, | |
| {'v': 17.03612743867628}, | |
| {'v': 0.0}, | |
| {'v': 0.7312614259597806}, | |
| {'v': 0.7312614259597806}, | |
| {'v': 0.0}, | |
| {'v': 0.7312614259597806}, | |
| {'v': 'HBM'}, | |
| {'v': 28.707}, | |
| {'v': 6.239447255263957e-05}, | |
| {'v': 263.28921389396714}, | |
| {'v': 0.050805455244580494}, | |
| {'v': 0.00026254152241200204}, | |
| {'v': 0.050805455244580494}, | |
| {'v': False}, | |
| {'v': '55'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:44:8\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:44</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 4.0}, | |
| {'v': 'input fusion'}, | |
| {'v': 'input_reduce_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 25.088}, | |
| {'v': 1.2544}, | |
| {'v': 25.088}, | |
| {'v': 1.2544}, | |
| {'v': 5.452860025083157e-05}, | |
| {'v': 0.05241337829299886}, | |
| {'v': 30.373086734693878}, | |
| {'v': 30.373086734693878}, | |
| {'v': 19.493626848775513}, | |
| {'v': 19.493626848775513}, | |
| {'v': 0.0}, | |
| {'v': 1.4510968921389398}, | |
| {'v': 1.4510968921389398}, | |
| {'v': 0.0}, | |
| {'v': 1.4510968921389398}, | |
| {'v': 'HBM'}, | |
| {'v': 25.088}, | |
| {'v': 5.452860025083156e-05}, | |
| {'v': 522.464533820841}, | |
| {'v': 0.058134255568645266}, | |
| {'v': 0.0005961334816775765}, | |
| {'v': 0.058134255568645266}, | |
| {'v': False}, | |
| {'v': '64'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:48:13\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:48</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 5.0}, | |
| {'v': 'input fusion'}, | |
| {'v': 'input_reduce_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 24.479}, | |
| {'v': 1.2239499999999999}, | |
| {'v': 24.479}, | |
| {'v': 1.2239499999999999}, | |
| {'v': 5.320494282286774e-05}, | |
| {'v': 0.05246658323582173}, | |
| {'v': 0.2426569712815066}, | |
| {'v': 0.2426569712815066}, | |
| {'v': 0.30740987797267316}, | |
| {'v': 0.30740987797267316}, | |
| {'v': 0.0}, | |
| {'v': 0.7351485148514851}, | |
| {'v': 0.7351485148514851}, | |
| {'v': 0.0}, | |
| {'v': 0.7351485148514851}, | |
| {'v': 'HBM'}, | |
| {'v': 24.479}, | |
| {'v': 5.320494282286774e-05}, | |
| {'v': 264.6887524752475}, | |
| {'v': 0.0009167634401246376}, | |
| {'v': 4.762635632227195e-06}, | |
| {'v': 0.0009167634401246376}, | |
| {'v': False}, | |
| {'v': '73'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:55:11\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:55</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 6.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_maximum_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 23.743}, | |
| {'v': 1.18715}, | |
| {'v': 23.743}, | |
| {'v': 1.18715}, | |
| {'v': 5.160525174408058e-05}, | |
| {'v': 0.05251818848756581}, | |
| {'v': 16.175714947563492}, | |
| {'v': 16.175714947563492}, | |
| {'v': 40.16968463177439}, | |
| {'v': 40.16968463177439}, | |
| {'v': 0.0}, | |
| {'v': 0.3750292945863604}, | |
| {'v': 0.3750292945863604}, | |
| {'v': 0.0}, | |
| {'v': 0.3750292945863604}, | |
| {'v': 'HBM'}, | |
| {'v': 23.743}, | |
| {'v': 5.160525174408059e-05}, | |
| {'v': 135.0285474572299}, | |
| {'v': 0.11979477860181476}, | |
| {'v': 0.0003174812410258054}, | |
| {'v': 0.11979477860181476}, | |
| {'v': False}, | |
| {'v': '61'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:45:8\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:45</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 7.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'wrapped_multiply'}, | |
| {'v': 20.0}, | |
| {'v': 21.632}, | |
| {'v': 1.0816000000000001}, | |
| {'v': 21.632}, | |
| {'v': 1.0816000000000001}, | |
| {'v': 4.701700735913538e-05}, | |
| {'v': 0.052565205494924945}, | |
| {'v': 0.27736686390532544}, | |
| {'v': 0.27736686390532544}, | |
| {'v': 0.6888480581475432}, | |
| {'v': 0.6888480581475432}, | |
| {'v': 0.0}, | |
| {'v': 0.375}, | |
| {'v': 0.375}, | |
| {'v': 0.0}, | |
| {'v': 0.375}, | |
| {'v': 'HBM'}, | |
| {'v': 21.632}, | |
| {'v': 4.7017007359135376e-05}, | |
| {'v': 135.018}, | |
| {'v': 0.002054295456200843}, | |
| {'v': 5.443887732786888e-06}, | |
| {'v': 0.002054295456200843}, | |
| {'v': False}, | |
| {'v': '40'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:101:14\n" | |
| "'>/home/blais/p/machine-learning/tpu/example.py:101</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 8.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_multiply_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 21.599}, | |
| {'v': 1.07995}, | |
| {'v': 21.599}, | |
| {'v': 1.07995}, | |
| {'v': 4.6945282079787586e-05}, | |
| {'v': 0.052612150777004735}, | |
| {'v': 0.0027779063845548404}, | |
| {'v': 0.0027779063845548404}, | |
| {'v': 0.006899005136278371}, | |
| {'v': 0.006899005136278371}, | |
| {'v': 0.0}, | |
| {'v': 0.375}, | |
| {'v': 0.375}, | |
| {'v': 0.0}, | |
| {'v': 0.375}, | |
| {'v': 'HBM'}, | |
| {'v': 21.599}, | |
| {'v': 4.6945282079787586e-05}, | |
| {'v': 135.018}, | |
| {'v': 2.0574341084557913e-05}, | |
| {'v': 5.452205168556228e-08}, | |
| {'v': 2.0574341084557913e-05}, | |
| {'v': False}, | |
| {'v': '73'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:55:11\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:55</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 9.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'loop_add_fusion'}, | |
| {'v': 20.0}, | |
| {'v': 21.154}, | |
| {'v': 1.0577}, | |
| {'v': 21.154}, | |
| {'v': 1.0577}, | |
| {'v': 4.5978077555249155e-05}, | |
| {'v': 0.052658128854559984}, | |
| {'v': 0.2836343008414484}, | |
| {'v': 0.2836343008414484}, | |
| {'v': 0.7079354731879026}, | |
| {'v': 0.7079354731879026}, | |
| {'v': 0.0}, | |
| {'v': 0.373134328358209}, | |
| {'v': 0.373134328358209}, | |
| {'v': 0.0}, | |
| {'v': 0.373134328358209}, | |
| {'v': 'HBM'}, | |
| {'v': 21.154}, | |
| {'v': 4.5978077555249155e-05}, | |
| {'v': 134.34626865671643}, | |
| {'v': 0.002111218299379754}, | |
| {'v': 5.566898904965773e-06}, | |
| {'v': 0.002111218299379754}, | |
| {'v': False}, | |
| {'v': '67'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:48:13\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:54:18\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:48</div>"}]}, | |
| {'c': [{'v': 'Total'}, | |
| {'v': 10.0}, | |
| {'v': 'loop fusion'}, | |
| {'v': 'wrapped_subtract'}, | |
| {'v': 20.0}, | |
| {'v': 21.152}, | |
| {'v': 1.0576}, | |
| {'v': 21.152}, | |
| {'v': 1.0576}, | |
| {'v': 4.597373056862202e-05}, | |
| {'v': 0.05270410258512861}, | |
| {'v': 0.283661119515885}, | |
| {'v': 0.283661119515885}, | |
| {'v': 1.056720016583372}, | |
| {'v': 1.056720016583372}, | |
| {'v': 0.0}, | |
| {'v': 0.25}, | |
| {'v': 0.25}, | |
| {'v': 0.0}, | |
| {'v': 0.25}, | |
| {'v': 'HBM'}, | |
| {'v': 21.152}, | |
| {'v': 4.597373056862202e-05}, | |
| {'v': 90.01200000000001}, | |
| {'v': 0.0031513700341719436}, | |
| {'v': 5.567425275890978e-06}, | |
| {'v': 0.0031513700341719436}, | |
| {'v': False}, | |
| {'v': '70'}, | |
| {'v': "<div class='source-info-cell' " | |
| "title='/home/blais/p/machine-learning/tpu/example.py:55:21\n" | |
| '/home/blais/p/machine-learning/tpu/example.py:77:12\n' | |
| '/home/blais/p/machine-learning/tpu/example.py:125:25\n' | |
| "'>/home/blais/p/machine-learning/tpu/example.py:55</div>"}]}]}, | |
| {'cols': [{'id': 'severity', 'label': 'Severity', 'type': 'string'}, | |
| {'id': 'message', 'label': 'Message', 'type': 'string'}], | |
| 'rows': [{'c': [{'v': 'WARNING'}, | |
| {'v': 'No step marker observed and hence the step time is ' | |
| 'unknown. This may happen if (1) training steps are ' | |
| 'not instrumented (e.g., if you are not using Keras) ' | |
| 'or (2) the profiling duration is shorter than the ' | |
| 'step time. For (1), you need to add step ' | |
| 'instrumentation; for (2), you may try to profile ' | |
| 'longer.'}]}]}] | |
| """ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment