ttnn-visualizer 0.69.0__py3-none-any.whl → 0.70.0__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.
Files changed (29) hide show
  1. ttnn_visualizer/csv_queries.py +2 -1
  2. ttnn_visualizer/models.py +0 -1
  3. ttnn_visualizer/queries.py +25 -2
  4. ttnn_visualizer/sftp_operations.py +0 -1
  5. ttnn_visualizer/static/assets/allPaths-DrpaDRaJ.js +1 -0
  6. ttnn_visualizer/static/assets/allPathsLoader-C78guN8s.js +2 -0
  7. ttnn_visualizer/static/assets/index-BVzPYDVR.css +1 -0
  8. ttnn_visualizer/static/assets/index-BmDjQHI0.js +1 -0
  9. ttnn_visualizer/static/assets/index-CzNKtOwn.js +1 -0
  10. ttnn_visualizer/static/assets/{index-C28SjqxA.js → index-SMzJpwbG.js} +338 -367
  11. ttnn_visualizer/static/assets/splitPathsBySizeLoader-Cg4d_fbJ.js +1 -0
  12. ttnn_visualizer/static/index.html +2 -2
  13. ttnn_visualizer/tests/test_queries.py +1 -2
  14. ttnn_visualizer/tests/test_serializers.py +4 -12
  15. ttnn_visualizer/utils.py +2 -6
  16. ttnn_visualizer/views.py +18 -20
  17. {ttnn_visualizer-0.69.0.dist-info → ttnn_visualizer-0.70.0.dist-info}/METADATA +1 -1
  18. {ttnn_visualizer-0.69.0.dist-info → ttnn_visualizer-0.70.0.dist-info}/RECORD +23 -23
  19. ttnn_visualizer/static/assets/allPaths-Clj2DdFL.js +0 -1
  20. ttnn_visualizer/static/assets/allPathsLoader-DisDEJDi.js +0 -2
  21. ttnn_visualizer/static/assets/index-BZITDwoa.js +0 -1
  22. ttnn_visualizer/static/assets/index-D_AHNWw3.css +0 -1
  23. ttnn_visualizer/static/assets/index-voJy5fZe.js +0 -1
  24. ttnn_visualizer/static/assets/splitPathsBySizeLoader-D98y4BkT.js +0 -1
  25. {ttnn_visualizer-0.69.0.dist-info → ttnn_visualizer-0.70.0.dist-info}/WHEEL +0 -0
  26. {ttnn_visualizer-0.69.0.dist-info → ttnn_visualizer-0.70.0.dist-info}/entry_points.txt +0 -0
  27. {ttnn_visualizer-0.69.0.dist-info → ttnn_visualizer-0.70.0.dist-info}/licenses/LICENSE +0 -0
  28. {ttnn_visualizer-0.69.0.dist-info → ttnn_visualizer-0.70.0.dist-info}/licenses/LICENSE_understanding.txt +0 -0
  29. {ttnn_visualizer-0.69.0.dist-info → ttnn_visualizer-0.70.0.dist-info}/top_level.txt +0 -0
@@ -476,6 +476,7 @@ class OpsPerformanceReportQueries:
476
476
  stack_by_in0 = kwargs.get("stack_by_in0", cls.DEFAULT_NO_STACK_BY_IN0)
477
477
  no_host_ops = kwargs.get("hide_host_ops", cls.DEFAULT_NO_HOST_OPS)
478
478
  merge_devices = kwargs.get("merge_devices", cls.DEFAULT_MERGE_DEVICES)
479
+ tracing_mode = kwargs.get("tracing_mode", cls.DEFAULT_TRACING_MODE)
479
480
 
480
481
  if start_signpost or end_signpost:
481
482
  ignore_signposts = False
@@ -495,7 +496,7 @@ class OpsPerformanceReportQueries:
495
496
  cls.DEFAULT_ID_RANGE,
496
497
  csv_output_file,
497
498
  cls.DEFAULT_NO_ADVICE,
498
- cls.DEFAULT_TRACING_MODE,
499
+ tracing_mode,
499
500
  cls.DEFAULT_RAW_OP_CODES,
500
501
  no_host_ops,
501
502
  cls.DEFAULT_NO_STACKED_REPORT,
ttnn_visualizer/models.py CHANGED
@@ -50,7 +50,6 @@ class Device(SerializeableDataclass):
50
50
  address_at_first_l1_cb_buffer: int
51
51
  num_banks_per_storage_core: int
52
52
  num_compute_cores: int
53
- num_storage_cores: int
54
53
  total_l1_memory: int
55
54
  total_l1_for_tensors: int
56
55
  total_l1_for_interleaved_buffers: int
@@ -2,6 +2,7 @@
2
2
  #
3
3
  # SPDX-FileCopyrightText: © 2025 Tenstorrent AI ULC
4
4
 
5
+ import dataclasses
5
6
  import sqlite3
6
7
  from pathlib import Path
7
8
  from typing import Any, Dict, Generator, List, Optional, Union
@@ -88,14 +89,24 @@ class DatabaseQueries:
88
89
 
89
90
  return bool(rows)
90
91
 
92
+ def _get_table_columns(self, table_name: str) -> List[str]:
93
+ """
94
+ Gets the list of column names for a table.
95
+ """
96
+ query = f"PRAGMA table_info({table_name})"
97
+ rows = self.query_runner.execute_query(query)
98
+ return [row[1] for row in rows] # row[1] is the column name
99
+
91
100
  def _query_table(
92
101
  self,
93
102
  table_name: str,
94
103
  filters: Optional[Dict[str, Union[Any, List[Any]]]] = None,
95
104
  additional_conditions: Optional[str] = None,
96
105
  additional_params: Optional[List[Any]] = None,
106
+ columns: Optional[List[str]] = None,
97
107
  ) -> List[Any]:
98
- query = f"SELECT * FROM {table_name} WHERE 1=1"
108
+ columns_str = ", ".join(columns) if columns else "*"
109
+ query = f"SELECT {columns_str} FROM {table_name} WHERE 1=1"
99
110
  params = []
100
111
 
101
112
  if filters:
@@ -285,7 +296,19 @@ class DatabaseQueries:
285
296
  def query_devices(
286
297
  self, filters: Optional[Dict[str, Any]] = None
287
298
  ) -> Generator[Device, None, None]:
288
- rows = self._query_table("devices", filters)
299
+ # Get the expected Device model field names in order
300
+ device_fields = [field.name for field in dataclasses.fields(Device)]
301
+
302
+ # Get all columns from the devices table
303
+ all_columns = self._get_table_columns("devices")
304
+
305
+ # Filter out num_storage_cores if it exists (for backwards compatibility)
306
+ # and ensure columns are in the order expected by the Device model
307
+ available_columns = set(all_columns) - {"num_storage_cores"}
308
+ columns = [col for col in device_fields if col in available_columns]
309
+
310
+ rows = self._query_table("devices", filters, columns=columns)
311
+
289
312
  for row in rows:
290
313
  yield Device(*row)
291
314
 
@@ -7,7 +7,6 @@ import logging
7
7
  import subprocess
8
8
  import time
9
9
  from pathlib import Path
10
- from stat import S_ISDIR
11
10
  from threading import Thread
12
11
  from typing import List, Optional
13
12
 
@@ -0,0 +1 @@
1
+ import{I as s}from"./index-BmDjQHI0.js";import{I as r}from"./index-CzNKtOwn.js";import{p as n,I as c}from"./index-SMzJpwbG.js";function p(t,a){const o=n(t);return a===c.STANDARD?s[o]:r[o]}export{s as IconSvgPaths16,r as IconSvgPaths20,p as getIconPaths};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/allPaths-DrpaDRaJ.js","assets/index-BmDjQHI0.js","assets/index-CzNKtOwn.js","assets/index-SMzJpwbG.js","assets/index-BVzPYDVR.css"])))=>i.map(i=>d[i]);
2
+ import{_ as e}from"./index-SMzJpwbG.js";const s=async(t,a)=>{const{getIconPaths:o}=await e(async()=>{const{getIconPaths:r}=await import("./allPaths-DrpaDRaJ.js");return{getIconPaths:r}},__vite__mapDeps([0,1,2,3,4]));return o(t,a)};export{s as allPathsLoader};