ttnn-visualizer 0.64.0__py3-none-any.whl → 0.65.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- ttnn_visualizer/csv_queries.py +32 -7
- ttnn_visualizer/static/assets/{allPaths-DWjqav_8.js → allPaths-CJK6D3fH.js} +1 -1
- ttnn_visualizer/static/assets/allPathsLoader-Dl_TkX-J.js +2 -0
- ttnn_visualizer/static/assets/{index-BE2R-cuu.css → index-C7m_PE7l.css} +1 -1
- ttnn_visualizer/static/assets/{index-DDrUX09k.js → index-DWdLC6fW.js} +200 -211
- ttnn_visualizer/static/assets/{splitPathsBySizeLoader-_GpmIkFm.js → splitPathsBySizeLoader-BIhIffTT.js} +1 -1
- ttnn_visualizer/static/index.html +2 -2
- ttnn_visualizer/views.py +52 -0
- {ttnn_visualizer-0.64.0.dist-info → ttnn_visualizer-0.65.1.dist-info}/METADATA +2 -2
- {ttnn_visualizer-0.64.0.dist-info → ttnn_visualizer-0.65.1.dist-info}/RECORD +15 -15
- {ttnn_visualizer-0.64.0.dist-info → ttnn_visualizer-0.65.1.dist-info}/licenses/LICENSE +0 -2
- ttnn_visualizer/static/assets/allPathsLoader-B0eRT9aL.js +0 -2
- {ttnn_visualizer-0.64.0.dist-info → ttnn_visualizer-0.65.1.dist-info}/WHEEL +0 -0
- {ttnn_visualizer-0.64.0.dist-info → ttnn_visualizer-0.65.1.dist-info}/entry_points.txt +0 -0
- {ttnn_visualizer-0.64.0.dist-info → ttnn_visualizer-0.65.1.dist-info}/licenses/LICENSE_understanding.txt +0 -0
- {ttnn_visualizer-0.64.0.dist-info → ttnn_visualizer-0.65.1.dist-info}/top_level.txt +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as r,I as s,_ as a}from"./index-
|
|
1
|
+
import{p as r,I as s,_ as a}from"./index-DWdLC6fW.js";const n=async(o,_)=>{const i=r(o);let t;return _===s.STANDARD?t=await a(()=>import("./index-voJy5fZe.js").then(e=>e.I),[]):t=await a(()=>import("./index-BZITDwoa.js").then(e=>e.I),[]),t[i]};export{n as splitPathsBySizeLoader};
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
/* SERVER_CONFIG */
|
|
35
35
|
</script>
|
|
36
36
|
|
|
37
|
-
<script type="module" crossorigin src="/static/assets/index-
|
|
38
|
-
<link rel="stylesheet" crossorigin href="/static/assets/index-
|
|
37
|
+
<script type="module" crossorigin src="/static/assets/index-DWdLC6fW.js"></script>
|
|
38
|
+
<link rel="stylesheet" crossorigin href="/static/assets/index-C7m_PE7l.css">
|
|
39
39
|
</head>
|
|
40
40
|
<body>
|
|
41
41
|
|
ttnn_visualizer/views.py
CHANGED
|
@@ -729,8 +729,10 @@ def get_performance_results_report(instance: Instance):
|
|
|
729
729
|
name = request.args.get("name", None)
|
|
730
730
|
start_signpost = request.args.get("start_signpost", None)
|
|
731
731
|
end_signpost = request.args.get("end_signpost", None)
|
|
732
|
+
print_signposts = str_to_bool(request.args.get("print_signposts", "true"))
|
|
732
733
|
stack_by_in0 = str_to_bool(request.args.get("stack_by_in0", "true"))
|
|
733
734
|
hide_host_ops = str_to_bool(request.args.get("hide_host_ops", "true"))
|
|
735
|
+
merge_devices = str_to_bool(request.args.get("merge_devices", "true"))
|
|
734
736
|
|
|
735
737
|
if name and not current_app.config["SERVER_MODE"]:
|
|
736
738
|
performance_path = Path(instance.performance_path).parent / name
|
|
@@ -742,8 +744,10 @@ def get_performance_results_report(instance: Instance):
|
|
|
742
744
|
instance,
|
|
743
745
|
stack_by_in0=stack_by_in0,
|
|
744
746
|
start_signpost=start_signpost,
|
|
747
|
+
print_signposts=print_signposts,
|
|
745
748
|
end_signpost=end_signpost,
|
|
746
749
|
hide_host_ops=hide_host_ops,
|
|
750
|
+
merge_devices=merge_devices,
|
|
747
751
|
)
|
|
748
752
|
except DataFormatError:
|
|
749
753
|
return Response(status=HTTPStatus.UNPROCESSABLE_ENTITY)
|
|
@@ -751,6 +755,7 @@ def get_performance_results_report(instance: Instance):
|
|
|
751
755
|
return Response(orjson.dumps(report), mimetype="application/json")
|
|
752
756
|
|
|
753
757
|
|
|
758
|
+
# this is no longer used atm. keeping for now until confirmed "not needed"
|
|
754
759
|
@api.route("/performance/device-log/raw", methods=["GET"])
|
|
755
760
|
@with_instance
|
|
756
761
|
def get_performance_data_raw(instance: Instance):
|
|
@@ -773,6 +778,53 @@ def get_performance_data_raw(instance: Instance):
|
|
|
773
778
|
)
|
|
774
779
|
|
|
775
780
|
|
|
781
|
+
@api.route("/performance/device-log/meta", methods=["GET"])
|
|
782
|
+
@with_instance
|
|
783
|
+
def get_performance_device_meta(instance: Instance):
|
|
784
|
+
def get_first_line(file_path: Path) -> str:
|
|
785
|
+
with open(file_path, "r", encoding="utf-8", errors="ignore") as f:
|
|
786
|
+
return f.readline().strip()
|
|
787
|
+
|
|
788
|
+
def parse_arch_and_freq(line: str):
|
|
789
|
+
arch_match = re.search(r"ARCH:\s*([\w\d_]+)", line)
|
|
790
|
+
freq_match = re.search(r"CHIP_FREQ\[MHz\]:\s*(\d+)", line)
|
|
791
|
+
|
|
792
|
+
architecture = arch_match.group(1) if arch_match else None
|
|
793
|
+
frequency = int(freq_match.group(1)) if freq_match else None
|
|
794
|
+
|
|
795
|
+
return {
|
|
796
|
+
"architecture": architecture,
|
|
797
|
+
"frequency": frequency,
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
name = request.args.get("name", None)
|
|
801
|
+
|
|
802
|
+
if not instance.performance_path:
|
|
803
|
+
return Response(status=HTTPStatus.NOT_FOUND)
|
|
804
|
+
|
|
805
|
+
if name and not current_app.config["SERVER_MODE"]:
|
|
806
|
+
performance_path = Path(instance.performance_path).parent / name
|
|
807
|
+
instance.performance_path = str(performance_path)
|
|
808
|
+
logger.info(f"************ Performance path set to {instance.performance_path}")
|
|
809
|
+
|
|
810
|
+
file_path = Path(
|
|
811
|
+
instance.performance_path,
|
|
812
|
+
DeviceLogProfilerQueries.DEVICE_LOG_FILE,
|
|
813
|
+
)
|
|
814
|
+
|
|
815
|
+
if not file_path.exists():
|
|
816
|
+
return Response(status=HTTPStatus.NOT_FOUND)
|
|
817
|
+
|
|
818
|
+
try:
|
|
819
|
+
first_line = get_first_line(file_path)
|
|
820
|
+
meta = parse_arch_and_freq(first_line)
|
|
821
|
+
return jsonify(meta)
|
|
822
|
+
|
|
823
|
+
except Exception as e:
|
|
824
|
+
logger.exception("Failed to parse device meta")
|
|
825
|
+
return Response(str(e), status=HTTPStatus.INTERNAL_SERVER_ERROR)
|
|
826
|
+
|
|
827
|
+
|
|
776
828
|
@api.route("/performance/npe/manifest", methods=["GET"])
|
|
777
829
|
@with_instance
|
|
778
830
|
def get_npe_manifest(instance: Instance):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ttnn_visualizer
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.65.1
|
|
4
4
|
Summary: TT-NN Visualizer
|
|
5
5
|
Classifier: Programming Language :: Python :: 3
|
|
6
6
|
Classifier: License :: OSI Approved :: MIT License
|
|
@@ -23,7 +23,7 @@ Requires-Dist: pydantic_core==2.27.1
|
|
|
23
23
|
Requires-Dist: pydantic==2.10.3
|
|
24
24
|
Requires-Dist: python-dotenv==1.0.1
|
|
25
25
|
Requires-Dist: PyYAML==6.0.2
|
|
26
|
-
Requires-Dist: tt-perf-report==1.1.
|
|
26
|
+
Requires-Dist: tt-perf-report==1.1.14
|
|
27
27
|
Requires-Dist: uvicorn==0.30.1
|
|
28
28
|
Requires-Dist: zstd==1.5.7.0
|
|
29
29
|
Provides-Extra: dev
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
ttnn_visualizer/__init__.py,sha256=FCQeTWnXsf-Wx-fay53-lQsm0y5-GcPMUmzhE5upDx0,93
|
|
2
2
|
ttnn_visualizer/app.py,sha256=M7kXzWjfMekaIfskFwa0YtKSFJIj5C7mqe1N-cda8TU,12565
|
|
3
|
-
ttnn_visualizer/csv_queries.py,sha256=
|
|
3
|
+
ttnn_visualizer/csv_queries.py,sha256=9wlkYNnwA5eKgCp4hA5Q-RLT_ZYaBl2oZWAdIzXtSAc,20422
|
|
4
4
|
ttnn_visualizer/decorators.py,sha256=6xBg2J6kJrwc01fcHepLbFJoUhcEKBL410gfaR8YZuM,5383
|
|
5
5
|
ttnn_visualizer/enums.py,sha256=SEIqp1tlc_zw2vQ8nHH9YTaV0m3Cb8fjn_goqz5wurE,203
|
|
6
6
|
ttnn_visualizer/exceptions.py,sha256=KVZzb7YaWbq51DNMKPBcJHwG74RMYj_29WTSYOlXXeU,2096
|
|
@@ -16,16 +16,16 @@ ttnn_visualizer/sftp_operations.py,sha256=9HwbPJPSO1UUQ98d5zeWAkEwR0zFPryUakcI68
|
|
|
16
16
|
ttnn_visualizer/sockets.py,sha256=_Hdne33r4FrB2tg58Vw87FWLbgQ_ikICVp4o1Mkv2mo,4789
|
|
17
17
|
ttnn_visualizer/ssh_client.py,sha256=x-BUUnsaKGReuOrSpHdcIaoH6RdGiQQYWx2_pOkGzJ0,13410
|
|
18
18
|
ttnn_visualizer/utils.py,sha256=rYQuPXdIYj5O2_U9_rqoPkU7croyXcAomdr6sOYHmgA,18291
|
|
19
|
-
ttnn_visualizer/views.py,sha256=
|
|
20
|
-
ttnn_visualizer/static/index.html,sha256=
|
|
21
|
-
ttnn_visualizer/static/assets/allPaths-
|
|
22
|
-
ttnn_visualizer/static/assets/allPathsLoader-
|
|
23
|
-
ttnn_visualizer/static/assets/index-BE2R-cuu.css,sha256=sRIyVGj6fHjhBZALw7r25cstDfth2d5HIWG1oEp0C4A,630398
|
|
19
|
+
ttnn_visualizer/views.py,sha256=tq887jrIPREOnFftEVL789N-0C1o5HNnQ7KoQq2zhR0,50267
|
|
20
|
+
ttnn_visualizer/static/index.html,sha256=T4Ti5RmqlyBsNwQ7t2YIvfCZ5V4pyipXBOlTecUyo7g,1135
|
|
21
|
+
ttnn_visualizer/static/assets/allPaths-CJK6D3fH.js,sha256=fkjS929Dpsqjb4yptlA9GjFgpHXCg4S1WmRgMJCTB1s,255
|
|
22
|
+
ttnn_visualizer/static/assets/allPathsLoader-Dl_TkX-J.js,sha256=13g4Rm0xoDJfa_iHh_DJ_RiKJD2qR5RmiSSBQoIjXL8,477
|
|
24
23
|
ttnn_visualizer/static/assets/index-BZITDwoa.js,sha256=ax1pY3gjtvqTUiQSBZ6ZN9M6P9VJ4-eXzZ-C9F46Ozg,303183
|
|
25
|
-
ttnn_visualizer/static/assets/index-
|
|
24
|
+
ttnn_visualizer/static/assets/index-C7m_PE7l.css,sha256=ZJCWCItLuUZxYxnj45YIq4b2X0xBSnCVaXY-BHVZeKo,630529
|
|
25
|
+
ttnn_visualizer/static/assets/index-DWdLC6fW.js,sha256=eXn3ZiV_ez2pJsXC6oAdk3M07cgj7GbEVbkvPRG9Ev4,7899786
|
|
26
26
|
ttnn_visualizer/static/assets/index-voJy5fZe.js,sha256=4MEkPCpdjZkMgT0Kmxfdh5DCtJWMf-TAVQ3rc28BtEQ,293910
|
|
27
27
|
ttnn_visualizer/static/assets/site-BTBrvHC5.webmanifest,sha256=Uy_XmnGuYFVf-OZuma2NvgEPdrCrevb3HZvaxSIHoA0,456
|
|
28
|
-
ttnn_visualizer/static/assets/splitPathsBySizeLoader-
|
|
28
|
+
ttnn_visualizer/static/assets/splitPathsBySizeLoader-BIhIffTT.js,sha256=5ahYDAl8HjyUFhGNZGWOzFXwpNfra6YkfA0qealB_1Y,281
|
|
29
29
|
ttnn_visualizer/static/favicon/android-chrome-192x192.png,sha256=BZWA09Zxaa3fXbaeS6nhWo2e-DUSjm9ElzNQ_xTB5XU,6220
|
|
30
30
|
ttnn_visualizer/static/favicon/android-chrome-512x512.png,sha256=HBiJSZyguB3o8fMJuqIGcpeBy_9JOdImme3wD02UYCw,62626
|
|
31
31
|
ttnn_visualizer/static/favicon/favicon-32x32.png,sha256=Zw201qUsczQv1UvoQvJf5smQ2ss10xaTeWxmQNYCGtY,480
|
|
@@ -35,10 +35,10 @@ ttnn_visualizer/tests/__init__.py,sha256=FCQeTWnXsf-Wx-fay53-lQsm0y5-GcPMUmzhE5u
|
|
|
35
35
|
ttnn_visualizer/tests/test_queries.py,sha256=HqaDXwudZpXiigJdHkdJP8oiUc-PtHASbpLnQQpbD7A,13792
|
|
36
36
|
ttnn_visualizer/tests/test_serializers.py,sha256=xwWaiH-uQN-yiEkOScCsF-JEmQliQ62eKTURijdDPBo,18820
|
|
37
37
|
ttnn_visualizer/tests/test_utils.py,sha256=9vUuCNg1mwhtB5RZKdJf-vo0lt9M5niHwkSezFwmklk,11186
|
|
38
|
-
ttnn_visualizer-0.
|
|
39
|
-
ttnn_visualizer-0.
|
|
40
|
-
ttnn_visualizer-0.
|
|
41
|
-
ttnn_visualizer-0.
|
|
42
|
-
ttnn_visualizer-0.
|
|
43
|
-
ttnn_visualizer-0.
|
|
44
|
-
ttnn_visualizer-0.
|
|
38
|
+
ttnn_visualizer-0.65.1.dist-info/licenses/LICENSE,sha256=73btFSS9sVfj4HGhNlBx6nYo4rkKnOlWOi8H1MpDoSE,20286
|
|
39
|
+
ttnn_visualizer-0.65.1.dist-info/licenses/LICENSE_understanding.txt,sha256=pymi-yb_RvYM9p2ZA4iSNsImcvhDBBxlGuJCY9dTq7M,233
|
|
40
|
+
ttnn_visualizer-0.65.1.dist-info/METADATA,sha256=8oB1n_qdoaoAy1EHJCuu_vUW1-4LB0br55p4M_qset8,8912
|
|
41
|
+
ttnn_visualizer-0.65.1.dist-info/WHEEL,sha256=lTU6B6eIfYoiQJTZNc-fyaR6BpL6ehTzU3xGYxn2n8k,91
|
|
42
|
+
ttnn_visualizer-0.65.1.dist-info/entry_points.txt,sha256=QpuUpkmQ_mEHJTMqOBdU0MH2Z4WF_9iFsGACeyyAO1E,61
|
|
43
|
+
ttnn_visualizer-0.65.1.dist-info/top_level.txt,sha256=M1EGkvDOuIfbhDbcUdz2-TSdmCtDoQ2Uyag9k5JLDSY,16
|
|
44
|
+
ttnn_visualizer-0.65.1.dist-info/RECORD,,
|
|
@@ -91,7 +91,6 @@ The following separate and independent dependencies are utilized by this project
|
|
|
91
91
|
- @testing-library/dom - MIT - https://github.com/testing-library/dom-testing-library/blob/main/LICENSE
|
|
92
92
|
- @testing-library/jest-dom - MIT - https://github.com/testing-library/jest-dom/blob/main/LICENSE
|
|
93
93
|
- @testing-library/react - MIT - https://github.com/testing-library/react-testing-library/blob/main/LICENSE
|
|
94
|
-
- @types/papaparse - MIT - https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/LICENSE
|
|
95
94
|
- @types/react - MIT - https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/LICENSE
|
|
96
95
|
- @types/react-dom - MIT - https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/LICENSE
|
|
97
96
|
- @types/react-plotly.js - MIT - https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/LICENSE
|
|
@@ -130,7 +129,6 @@ The following separate and independent dependencies are utilized by this project
|
|
|
130
129
|
- mini-svg-data-uri - MIT - https://github.com/tigt/mini-svg-data-uri/blob/master/LICENSE
|
|
131
130
|
- normalize.css - MIT - https://github.com/necolas/normalize.css/blob/master/LICENSE.md
|
|
132
131
|
- only-allow - MIT - https://github.com/pnpm/only-allow/blob/master/LICENSE
|
|
133
|
-
- papaparse - MIT - https://github.com/mholt/PapaParse/blob/master/LICENSE
|
|
134
132
|
- plotly.js - MIT - https://github.com/plotly/plotly.js/blob/master/LICENSE
|
|
135
133
|
- prettier - MIT - https://github.com/prettier/eslint-config-prettier/blob/main/LICENSE
|
|
136
134
|
- react - MIT - https://github.com/facebook/react/blob/main/LICENSE
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/allPaths-DWjqav_8.js","assets/index-voJy5fZe.js","assets/index-BZITDwoa.js","assets/index-DDrUX09k.js","assets/index-BE2R-cuu.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{_ as e}from"./index-DDrUX09k.js";const s=async(t,a)=>{const{getIconPaths:o}=await e(async()=>{const{getIconPaths:r}=await import("./allPaths-DWjqav_8.js");return{getIconPaths:r}},__vite__mapDeps([0,1,2,3,4]));return o(t,a)};export{s as allPathsLoader};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|