Artem Plastinkin commited on
Commit
41edfa0
·
1 Parent(s): aeea7fa

Add model

Browse files
README.md CHANGED
@@ -15,8 +15,6 @@ tags:
15
 
16
  # DeepLabV3Plus-R50 (ONNX) – Renesas X5H
17
 
18
- > ⏳ **Model file not yet uploaded.** Benchmark results on this page were published ahead of the model weights — see **Provided Artifacts** below. Download/deployment steps will not work until the file is added to this repository.
19
-
20
  > **⚠️ Partial-model caveat.** The source checkpoint name ends in
21
  > `custom_seg_split_4_split_2` — this artifact is **one segment of a 4-way split network**, not
22
  > the full end-to-end DeepLabV3+ model. The latency below reflects only that segment; do not
@@ -41,7 +39,7 @@ The FP32 ONNX model is auto-cast to **INT8** by the Renesas MWMX toolchain at co
41
  separate quantization step is required.
42
 
43
  ```
44
- deeplabv3plus_..._split_2.onnx (FP32)
45
  │
46
  └─▶ MWMX Runtime ──▶ INT8 auto-cast ──▶ NPX6 NPU
47
  ```
@@ -50,7 +48,7 @@ deeplabv3plus_..._split_2.onnx (FP32)
50
 
51
  | Artifact | Status | Notes |
52
  |----------|--------|-------|
53
- | **FP32 (ONNX)** | ⏳ Not yet uploaded | Benchmark numbers below exist; the model file has not been published to this repo yet |
54
 
55
  ## Performance
56
 
@@ -65,6 +63,8 @@ Measured on **Renesas R-Car X5H** via the MWMX runtime (APM80 ship-performance C
65
  |---------|-----------|--------|---------------|------|
66
  | MWMX Runtime | INT8 (auto) | X5H · 1× NPU · 12 Cores · 850 MHz | 38.104 | Measured |
67
 
 
 
68
  ### Accuracy (mIoU)
69
 
70
  TBD — not yet measured/published for this repo.
@@ -88,11 +88,13 @@ To run inference on Renesas R-Car X5H, you need:
88
 
89
  1. **Renesas R-Car X5H board** with NPX6 NPU
90
  2. **Renesas MWMX Runtime**
91
- 3. **Hugging Face CLI** to download the model (once the model file is published)
92
 
93
  ## Download
94
 
95
- TBD — model file not yet published to this repository.
 
 
96
 
97
  ---
98
 
 
15
 
16
  # DeepLabV3Plus-R50 (ONNX) – Renesas X5H
17
 
 
 
18
  > **⚠️ Partial-model caveat.** The source checkpoint name ends in
19
  > `custom_seg_split_4_split_2` — this artifact is **one segment of a 4-way split network**, not
20
  > the full end-to-end DeepLabV3+ model. The latency below reflects only that segment; do not
 
39
  separate quantization step is required.
40
 
41
  ```
42
+ deeplabv3plus_r50_oss_sim_inf.onnx (FP32, split_2 segment)
43
  │
44
  └─▶ MWMX Runtime ──▶ INT8 auto-cast ──▶ NPX6 NPU
45
  ```
 
48
 
49
  | Artifact | Status | Notes |
50
  |----------|--------|-------|
51
+ | **FP32 (ONNX)** | ✅ Published | `fp32/deeplabv3plus_r50_oss_sim_inf.onnx` — segment `split_2` of 4; auto-cast to INT8 by the MWMX toolchain at compile time (see Deployment Flow above); no separate INT8 file is shipped |
52
 
53
  ## Performance
54
 
 
63
  |---------|-----------|--------|---------------|------|
64
  | MWMX Runtime | INT8 (auto) | X5H · 1× NPU · 12 Cores · 850 MHz | 38.104 | Measured |
65
 
66
+ > Reconfirmed: 1-core compile still fails as of the 2026-09-16 benchmark run.
67
+
68
  ### Accuracy (mIoU)
69
 
70
  TBD — not yet measured/published for this repo.
 
88
 
89
  1. **Renesas R-Car X5H board** with NPX6 NPU
90
  2. **Renesas MWMX Runtime**
91
+ 3. **Hugging Face CLI** to download the model
92
 
93
  ## Download
94
 
95
+ ```bash
96
+ hf download Renesas/DeepLabV3Plus-R50-ONNX --repo-type=model --include "fp32/*"
97
+ ```
98
 
99
  ---
100
 
compile_config/l2_seg_48k_add_split_4_split_2.json ADDED
@@ -0,0 +1,233 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "segments": [
3
+ {
4
+ "name": "Segment",
5
+ "inputs": [
6
+ "input"
7
+ ],
8
+ "outputs": [
9
+ "/backbone/maxpool/MaxPool_output_0"
10
+ ],
11
+ "n_buffer": 2
12
+ },
13
+ {
14
+ "name": "Segment_0",
15
+ "inputs": [
16
+ "/backbone/maxpool/MaxPool_output_0"
17
+ ],
18
+ "outputs": [
19
+ "/backbone/layer1/layer1.2/relu_2/Relu_output_0"
20
+ ],
21
+ "n_buffer": 2
22
+ },
23
+ {
24
+ "name": "Segment_layer2.{0,1,2,3}",
25
+ "inputs": [
26
+ "/backbone/layer1/layer1.2/relu_2/Relu_output_0"
27
+ ],
28
+ "outputs": [
29
+ "/backbone/layer2/layer2.3/relu_2/Relu_output_0"
30
+ ],
31
+ "n_buffer": 2
32
+ },
33
+ {
34
+ "name": "Segment_layer3.{0,1,2}",
35
+ "inputs": [
36
+ "/backbone/layer2/layer2.3/relu_2/Relu_output_0"
37
+ ],
38
+ "outputs": [
39
+ "/backbone/layer3/layer3.2/relu_2/Relu_output_0"
40
+ ],
41
+ "n_buffer": 2
42
+ },
43
+ {
44
+ "name": "Segment_layer3.{3,4,5}",
45
+ "inputs": [
46
+ "/backbone/layer3/layer3.2/relu_2/Relu_output_0"
47
+ ],
48
+ "outputs": [
49
+ "/backbone/layer3/layer3.5/relu_2/Relu_output_0"
50
+ ],
51
+ "n_buffer": 2
52
+ },
53
+ {
54
+ "name": "Segment_layer4.0",
55
+ "inputs": [
56
+ "/backbone/layer3/layer3.5/relu_2/Relu_output_0"
57
+ ],
58
+ "outputs": [
59
+ "/backbone/layer4/layer4.0/relu_2/Relu_output_0"
60
+ ],
61
+ "n_buffer": 2
62
+ },
63
+ {
64
+ "name": "Segment_aspp_modules.1",
65
+ "inputs": [
66
+ "/backbone/layer4/layer4.2/relu_2/Relu_output_0"
67
+ ],
68
+ "outputs": [
69
+ "/aspp_modules/aspp_modules.1/depthwise_conv/activate/Relu_output_0"
70
+ ],
71
+ "n_buffer": 1
72
+ },
73
+ {
74
+ "name": "Segment_aspp_modules.2",
75
+ "inputs": [
76
+ "/backbone/layer4/layer4.2/relu_2/Relu_output_0"
77
+ ],
78
+ "outputs": [
79
+ "/aspp_modules/aspp_modules.2/depthwise_conv/activate/Relu_output_0"
80
+ ],
81
+ "n_buffer": 1
82
+ },
83
+ {
84
+ "name": "Segment_bottleneck_0",
85
+ "inputs": [
86
+ "/Concat_1_output_0_2",
87
+ "/bottleneck/conv/Conv_output_0_1"
88
+ ],
89
+ "outputs": [
90
+ "/bottleneck/activate/Relu_output_0"
91
+ ],
92
+ "n_buffer": 1
93
+ },
94
+ {
95
+ "name": "Segment_bottleneck_1",
96
+ "inputs": [
97
+ "/Concat_1_output_0_1"
98
+ ],
99
+ "outputs": [
100
+ "/bottleneck/conv/Conv_output_0_1"
101
+ ],
102
+ "n_buffer": 1
103
+ },
104
+ {
105
+ "name": "Segment_output",
106
+ "inputs": [
107
+ "/Concat_3_output_0"
108
+ ],
109
+ "outputs": [
110
+ "/conv_seg/Conv_output_0"
111
+ ],
112
+ "n_buffer": 2
113
+ },
114
+ {
115
+ "name": "seg_11",
116
+ "inputs": [
117
+ "/backbone/layer1/layer1.2/relu_2/Relu_output_0"
118
+ ],
119
+ "outputs": [
120
+ "/c1_bottleneck/activate/Relu_output_0"
121
+ ],
122
+ "n_buffer": 1
123
+ },
124
+ {
125
+ "name": "seg_12",
126
+ "inputs": [
127
+ "/backbone/layer4/layer4.0/relu_2/Relu_output_0"
128
+ ],
129
+ "outputs": [
130
+ "/backbone/layer4/layer4.2/relu_2/Relu_output_0"
131
+ ],
132
+ "n_buffer": 1
133
+ },
134
+ {
135
+ "name": "seg_14",
136
+ "inputs": [
137
+ "/image_pool/image_pool.0/GlobalAveragePool_output_0"
138
+ ],
139
+ "outputs": [
140
+ "/image_pool/image_pool.1/activate/Relu_output_0"
141
+ ],
142
+ "n_buffer": 1
143
+ },
144
+ {
145
+ "name": "seg_16",
146
+ "inputs": [
147
+ "/backbone/layer4/layer4.2/relu_2/Relu_output_0"
148
+ ],
149
+ "outputs": [
150
+ "/aspp_modules/aspp_modules.0/activate/Relu_output_0"
151
+ ],
152
+ "n_buffer": 1
153
+ },
154
+ {
155
+ "name": "seg_17",
156
+ "inputs": [
157
+ "/aspp_modules/aspp_modules.1/depthwise_conv/activate/Relu_output_0"
158
+ ],
159
+ "outputs": [
160
+ "/aspp_modules/aspp_modules.1/pointwise_conv/activate/Relu_output_0"
161
+ ],
162
+ "n_buffer": 1
163
+ },
164
+ {
165
+ "name": "seg_19",
166
+ "inputs": [
167
+ "/aspp_modules/aspp_modules.2/depthwise_conv/activate/Relu_output_0"
168
+ ],
169
+ "outputs": [
170
+ "/aspp_modules/aspp_modules.2/pointwise_conv/activate/Relu_output_0"
171
+ ],
172
+ "n_buffer": 2
173
+ },
174
+ {
175
+ "name": "seg_18",
176
+ "inputs": [
177
+ "/aspp_modules/aspp_modules.3/depthwise_conv/activate/Relu_output_0"
178
+ ],
179
+ "outputs": [
180
+ "/aspp_modules/aspp_modules.3/pointwise_conv/activate/Relu_output_0"
181
+ ],
182
+ "n_buffer": 2
183
+ },
184
+ {
185
+ "name": "Segment_27",
186
+ "inputs": [
187
+ "/backbone/layer4/layer4.2/relu_2/Relu_output_0_slice_1"
188
+ ],
189
+ "outputs": [
190
+ "/aspp_modules/aspp_modules.3/depthwise_conv/activate/Relu_1_out"
191
+ ],
192
+ "n_buffer": 1
193
+ },
194
+ {
195
+ "name": "Segment_29",
196
+ "inputs": [
197
+ "/backbone/layer4/layer4.2/relu_2/Relu_output_0_slice_2"
198
+ ],
199
+ "outputs": [
200
+ "/aspp_modules/aspp_modules.3/depthwise_conv/activate/Relu_2_out"
201
+ ],
202
+ "n_buffer": 1
203
+ },
204
+ {
205
+ "name": "Segment_31",
206
+ "inputs": [
207
+ "/backbone/layer4/layer4.2/relu_2/Relu_output_0_slice_3"
208
+ ],
209
+ "outputs": [
210
+ "/aspp_modules/aspp_modules.3/depthwise_conv/activate/Relu_3_out"
211
+ ],
212
+ "n_buffer": 1
213
+ },
214
+ {
215
+ "name": "Segment_33",
216
+ "inputs": [
217
+ "/backbone/layer4/layer4.2/relu_2/Relu_output_0_slice_4"
218
+ ],
219
+ "outputs": [
220
+ "/aspp_modules/aspp_modules.3/depthwise_conv/activate/Relu_4_out"
221
+ ],
222
+ "n_buffer": 1
223
+ }
224
+ ],
225
+ "tiling_info": {
226
+ "/Resize_1_output_0": {
227
+ "l1_tile_shape" : [1,16,64,128]
228
+ },
229
+ "/Resize_2_output_0": {
230
+ "l1_tile_shape" : [1,32,172,19]
231
+ }
232
+ }
233
+ }
fp32/.metadata.yaml ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ variant:
2
+ id: onnx_fp32
3
+ format: onnx
4
+ precision: fp32
5
+ method: onnx_export # exported from the OpenMMLab checkpoint, no quantization
fp32/deeplabv3plus_r50_oss_sim_inf.onnx ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bc33270e904d85a8ddcd85d8c4603f577f68255d272a1b8635a0e783c4499f81
3
+ size 165154945
int8/benchmarks/x5h_mwmx_npu_apm80_12core.yaml CHANGED
@@ -42,3 +42,46 @@ memory:
42
 
43
  power:
44
  avg_w: null
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
 
43
  power:
44
  avg_w: null
45
+
46
+ # Exact commands verified against the NNAC "Getting Started" chapter. Rendered
47
+ # by the AI-Dashboard in place of the generic placeholder flow — see
48
+ # downloadRunHTML() / parse_reproduce() in AI-Dashboard/app.js.
49
+ # CAVEAT: this artifact is segment "split_2" of a 4-way split network (see
50
+ # README) — these steps reproduce only this segment's latency, not an
51
+ # end-to-end DeepLabV3+ result. The 1-AI-core config also fails to compile
52
+ # for this artifact, so no 1-core reproduce block exists.
53
+ reproduce:
54
+ steps:
55
+ - title: Download the ONNX model and compile config
56
+ command: hf download Renesas/DeepLabV3Plus-R50-ONNX --repo-type=model --include "fp32/*" --include "compile_config/*"
57
+ - title: Configure the network for the 12-core build (required — this model has no working 1-core config)
58
+ command: |
59
+ cat >> ${WORKDIR}/nnac_config/config.yaml << 'EOF'
60
+ network_configuration:
61
+ deeplabv3plus_r50_oss_sim_inf:
62
+ optimization_options:
63
+ - -segmentation_json ./compile_config/l2_seg_48k_add_split_4_split_2.json
64
+ - -enable_dma_fusion
65
+ - -enable_stu_multi_channel
66
+ - -stu_multi_channel_config 0x15212420
67
+ - -stu_weight
68
+ - -distributed_coef_stu
69
+ EOF
70
+ # If config.yaml already has a network_configuration: key (e.g. from a
71
+ # previous model), merge this block into it instead of appending a duplicate key.
72
+ - title: Compile with the NNAC toolchain (INT8 auto-cast from the FP32 graph)
73
+ command: |
74
+ python3 nnac_frontend/legalize.py -d binary/nnx ./fp32/deeplabv3plus_r50_oss_sim_inf.onnx
75
+ - title: Set up the R-Car X5H board
76
+ command: Configure the board per the AI Compiler (NNAC) "Getting Started" guide, section 3.4 (host TFTP/NFS setup, bootloader flashing, U-Boot, Linux boot, login) -- exact steps depend on your board/network setup.
77
+ - title: Copy the compiled artifact to the board
78
+ command: Copy ${WORKDIR}/binary/nnx to the board -- method may vary (NFS mount, scp, USB, etc.).
79
+ - title: Run on R-Car X5H (single NPU cluster, 12 AI cores)
80
+ command: |
81
+ cd binary
82
+ ./host_app ./arc_prog_npus ./nnx/deeplabv3plus_r50_oss_sim_inf
83
+ notes: >-
84
+ hash[n] = 0x...(OK) means the run's output matches the reference hash in
85
+ hash.txt; latency is the NPX execution time reported in cycles and ms.
86
+ This is one segment (split_2 of 4) of the full segmentation pipeline —
87
+ not whole-model latency.