[Utils] Update model-inspect to show segment data layout
authorDongju Chae <dongju.chae@samsung.com>
Tue, 27 Jul 2021 06:14:35 +0000 (15:14 +0900)
committer채동주/On-Device Lab(SR)/Staff Engineer/삼성전자 <dongju.chae@samsung.com>
Wed, 28 Jul 2021 08:01:38 +0000 (17:01 +0900)
This patch updates model-inspect to show segment data layout.

Signed-off-by: Dongju Chae <dongju.chae@samsung.com>
utils/model_inspect/model_inspect.cc

index 2c3238f..325c7a6 100644 (file)
@@ -137,8 +137,7 @@ void
 Inspector::show_common () {
   std::ios_base::fmtflags f (std::cout.flags ());
 
-  std::cout << "[common] "
-            << "\n";
+  std::cout << "[common]\n";
   std::cout << "  model format: " << NPUBIN_VERSION (meta_->magiccode) << "\n";
   std::cout << "  model size: " << meta_->size << "\n";
   std::cout << "  - metadata size: " << getNPUmodel_metasize (meta_) << "\n";
@@ -165,8 +164,7 @@ Inspector::show_v1 () {
 
   std::ios_base::fmtflags f (std::cout.flags ());
 
-  std::cout << "[npubinfmt v1] "
-            << "\n";
+  std::cout << "[npubinfmt v1]\n";
   std::cout << std::dec;
   std::cout << "  buffer_size: " << meta_->buffer_size << "\n";
   std::cout << "  input_offset: " << meta_->input_offset << "\n";
@@ -183,49 +181,51 @@ Inspector::show_v2 () {
 
   std::ios_base::fmtflags f (std::cout.flags ());
 
-  std::cout << "[npubinfmt v2] "
-            << "\n";
+  std::cout << "[npubinfmt v2]\n";
   std::cout << std::dec;
   std::cout << "  input_num: " << meta_->input_num << "\n";
   for (uint32_t i = 0; i < meta_->input_num; i++) {
     std::cout << std::dec;
-    std::cout << "  input_offsets[" << i << "]: " << meta_->input_offsets[i]
-              << "\n";
-    std::cout << "  input_elem_size[" << i << "]: " << meta_->input_elem_size[i]
-              << "\n";
-    for (uint32_t j = 0; j < MAX_RANK; j++)
-      std::cout << "  input_dims[" << i << "][" << j
-                << "]: " << meta_->input_dims[i][j] << "\n";
-    std::cout << "  input_emod_y[" << i << "]: " << meta_->input_emod_y[i]
-              << "\n";
-    std::cout << "  input_emod_z[" << i << "]: " << meta_->input_emod_z[i]
-              << "\n";
-    std::cout << "  input_quant_z[" << i << "]: " << meta_->input_quant_z[i]
-              << "\n";
+    std::cout << "  input_offsets[" << i << "]: ";
+    std::cout << meta_->input_offsets[i] << "\n";
+    std::cout << "  input_elem_size[" << i << "]: ";
+    std::cout << meta_->input_elem_size[i] << "\n";
+    for (uint32_t j = 0; j < MAX_RANK; j++) {
+      std::cout << "  input_dims[" << i << "][" << j << "]: ";
+      std::cout << meta_->input_dims[i][j] << "\n";
+    }
+    std::cout << "  input_emod_y[" << i << "]: ";
+    std::cout << meta_->input_emod_y[i] << "\n";
+    std::cout << "  input_emod_z[" << i << "]: ";
+    std::cout << meta_->input_emod_z[i] << "\n";
+    std::cout << "  input_quant_z[" << i << "]: ";
+    std::cout << meta_->input_quant_z[i] << "\n";
     std::cout << std::fixed;
-    std::cout << "  input_quant_s[" << i << "]: " << meta_->input_quant_s[i]
-              << "\n";
+    std::cout << "  input_quant_s[" << i << "]: ";
+    std::cout << meta_->input_quant_s[i] << "\n";
   }
   std::cout << std::dec << "\n";
+
   std::cout << "  output_num: " << meta_->output_num << "\n";
   for (uint32_t i = 0; i < meta_->output_num; i++) {
     std::cout << std::dec;
-    std::cout << "  output_offsets[" << i << "]: " << meta_->output_offsets[i]
-              << "\n";
-    std::cout << "  output_elem_size[" << i
-              << "]: " << meta_->output_elem_size[i] << "\n";
-    for (uint32_t j = 0; j < MAX_RANK; j++)
-      std::cout << "  output_dims[" << i << "][" << j
-                << "]: " << meta_->output_dims[i][j] << "\n";
-    std::cout << "  output_emod_y[" << i << "]: " << meta_->output_emod_y[i]
-              << "\n";
-    std::cout << "  output_emod_z[" << i << "]: " << meta_->output_emod_z[i]
-              << "\n";
-    std::cout << "  output_quant_z[" << i << "]: " << meta_->output_quant_z[i]
-              << "\n";
+    std::cout << "  output_offsets[" << i << "]: ";
+    std::cout << meta_->output_offsets[i] << "\n";
+    std::cout << "  output_elem_size[" << i << "]: ";
+    std::cout << meta_->output_elem_size[i] << "\n";
+    for (uint32_t j = 0; j < MAX_RANK; j++) {
+      std::cout << "  output_dims[" << i << "][" << j << "]: ";
+      std::cout << meta_->output_dims[i][j] << "\n";
+    }
+    std::cout << "  output_emod_y[" << i << "]: ";
+    std::cout << meta_->output_emod_y[i] << "\n";
+    std::cout << "  output_emod_z[" << i << "]: ";
+    std::cout << meta_->output_emod_z[i] << "\n";
+    std::cout << "  output_quant_z[" << i << "]: ";
+    std::cout << meta_->output_quant_z[i] << "\n";
     std::cout << std::fixed;
-    std::cout << "  output_quant_s[" << i << "]: " << meta_->output_quant_s[i]
-              << "\n";
+    std::cout << "  output_quant_s[" << i << "]: ";
+    std::cout << meta_->output_quant_s[i] << "\n";
   }
 
   std::cout.flags (f);
@@ -237,61 +237,71 @@ Inspector::show_v3 () {
 
   std::ios_base::fmtflags f (std::cout.flags ());
 
-  std::cout << "[npubinfmt v3] "
-            << "\n";
+  std::cout << "[npubinfmt v3]\n";
   std::cout << std::dec;
   std::cout << "  segment_num: " << meta_->segment_num << "\n";
   for (uint32_t i = 0; i < meta_->segment_num; i++) {
-    std::cout << "  segment_size[" << i << "]: " << meta_->segment_size[i]
-              << "\n";
+    std::cout << "  segment_size[" << i << "]: ";
+    std::cout << meta_->segment_size[i] << "\n";
   }
   std::cout << "\n";
-  std::cout << "  weight_seg_idx: " << meta_->weight_seg_idx << "\n";
-  std::cout << "\n";
+  std::cout << "  weight_seg_idx: ";
+  std::cout << (meta_->weight_seg_idx < meta_->segment_num
+                    ? std::to_string (meta_->weight_seg_idx)
+                    : "N/A");
+  std::cout << "\n\n";
   std::cout << "  input_seg_num: " << meta_->input_seg_num << "\n";
   for (uint32_t i = 0; i < meta_->input_seg_num; i++) {
     std::cout << std::dec;
-    std::cout << "  input_seg_idx[" << i << "]: " << meta_->input_seg_idx[i]
-              << "\n";
-    std::cout << "  input_seg_off[" << i << "]: " << meta_->input_seg_off[i]
-              << "\n";
-    for (uint32_t j = 0; j < MAX_RANK; j++)
-      std::cout << "  input_seg_dims[" << i << "][" << j
-                << "]: " << meta_->input_seg_dims[i][j] << "\n";
-    std::cout << "  input_seg_emod_y[" << i
-              << "]: " << meta_->input_seg_emod_y[i] << "\n";
-    std::cout << "  input_seg_emod_z[" << i
-              << "]: " << meta_->input_seg_emod_z[i] << "\n";
-    std::cout << "  input_seg_quant_type[" << i
-              << "]: " << meta_->input_seg_quant_type[i] << "\n";
-    std::cout << "  input_seg_quant_z[" << i
-              << "]: " << meta_->input_seg_quant_z[i] << "\n";
+    std::cout << "  input_seg_idx[" << i << "]: ";
+    std::cout << meta_->input_seg_idx[i] << "\n";
+    std::cout << "  input_seg_off[" << i << "]: ";
+    std::cout << meta_->input_seg_off[i] << "\n";
+    for (uint32_t j = 0; j < MAX_RANK; j++) {
+      std::cout << "  input_seg_dims[" << i << "][" << j << "]: ";
+      std::cout << meta_->input_seg_dims[i][j] << "\n";
+    }
+    std::cout << "  input_seg_emod_y[" << i << "]: ";
+    std::cout << meta_->input_seg_emod_y[i] << "\n";
+    std::cout << "  input_seg_emod_z[" << i << "]: ";
+    std::cout << meta_->input_seg_emod_z[i] << "\n";
+    std::cout << "  input_seg_quant_type[" << i << "]: ";
+    std::cout << meta_->input_seg_quant_type[i] << "\n";
+    std::cout << "  input_seg_quant_z[" << i << "]: ";
+    std::cout << meta_->input_seg_quant_z[i] << "\n";
     std::cout << std::fixed;
-    std::cout << "  input_seg_quant_s[" << i
-              << "]: " << meta_->input_seg_quant_s[i] << "\n";
+    std::cout << "  input_seg_quant_s[" << i << "]: ";
+    std::cout << meta_->input_seg_quant_s[i] << "\n";
+    std::cout << std::dec;
+    std::cout << "  input_seg_layout[" << i << "]: ";
+    std::cout << meta_->input_seg_layout[i] << "\n";
   }
   std::cout << std::dec << "\n";
   std::cout << "  output_seg_num: " << meta_->output_seg_num << "\n";
   for (uint32_t i = 0; i < meta_->output_seg_num; i++) {
     std::cout << std::dec;
-    std::cout << "  output_seg_idx[" << i << "]: " << meta_->output_seg_idx[i]
-              << "\n";
-    std::cout << "  output_seg_off[" << i << "]: " << meta_->output_seg_off[i]
-              << "\n";
-    for (uint32_t j = 0; j < MAX_RANK; j++)
-      std::cout << "  output_seg_dims[" << i << "][" << j
-                << "]: " << meta_->output_seg_dims[i][j] << "\n";
-    std::cout << "  output_seg_emod_y[" << i
-              << "]: " << meta_->output_seg_emod_y[i] << "\n";
-    std::cout << "  output_seg_emod_z[" << i
-              << "]: " << meta_->output_seg_emod_z[i] << "\n";
-    std::cout << "  output_seg_quant_type[" << i
-              << "]: " << meta_->output_seg_quant_type[i] << "\n";
-    std::cout << "  output_seg_quant_z[" << i
-              << "]: " << meta_->output_seg_quant_z[i] << "\n";
+    std::cout << "  output_seg_idx[" << i << "]: ";
+    std::cout << meta_->output_seg_idx[i] << "\n";
+    std::cout << "  output_seg_off[" << i << "]: ";
+    std::cout << meta_->output_seg_off[i] << "\n";
+    for (uint32_t j = 0; j < MAX_RANK; j++) {
+      std::cout << "  output_seg_dims[" << i << "][" << j << "]: ";
+      std::cout << meta_->output_seg_dims[i][j] << "\n";
+    }
+    std::cout << "  output_seg_emod_y[" << i << "]: ";
+    std::cout << meta_->output_seg_emod_y[i] << "\n";
+    std::cout << "  output_seg_emod_z[" << i << "]: ";
+    std::cout << meta_->output_seg_emod_z[i] << "\n";
+    std::cout << "  output_seg_quant_type[" << i << "]: ";
+    std::cout << meta_->output_seg_quant_type[i] << "\n";
+    std::cout << "  output_seg_quant_z[" << i << "]: ";
+    std::cout << meta_->output_seg_quant_z[i] << "\n";
     std::cout << std::fixed;
-    std::cout << "  output_seg_quant_s[" << i
-              << "]: " << meta_->output_seg_quant_s[i] << "\n";
+    std::cout << "  output_seg_quant_s[" << i << "]: ";
+    std::cout << meta_->output_seg_quant_s[i] << "\n";
+    std::cout << std::dec;
+    std::cout << "  output_seg_layout[" << i << "]: ";
+    std::cout << meta_->output_seg_layout[i] << "\n";
   }
 
   std::cout << std::dec << "\n";