Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions async/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -331,9 +331,9 @@ Executed instructions per fixed workload (`async/bench/icount/`), measured under
| `kernel_float` | 2,427,595,993 | 109,298,076 | 422,160,541 |
| `kernel_q15` | 1,123,119,218 | 192,431,957 | 187,429,187 |
| `kernel_q31` | 1,169,957,251 | 221,164,795 | 194,964,122 |
| `pipeline12_q15` | 1,498,750,507 | 398,227,192 | 463,498,599 |
| `pipeline12_q15` | 1,498,750,507 | 231,525,615 | 463,498,599 |
| `pipeline_float` | 2,391,686,215 | 102,590,477 | 419,186,490 |
| `pipeline_q15` | 1,020,281,310 | 137,792,386 | 204,476,476 |
| `pipeline_q15` | 1,020,281,310 | 109,235,651 | 204,476,476 |
| `pipeline_q31` | 1,102,554,828 | 173,088,119 | 205,223,931 |
<!-- ICOUNT:END -->

Expand Down
4 changes: 2 additions & 2 deletions async/bench/baselines.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,9 @@
"kernel_float": 109298076,
"kernel_q15": 192431957,
"kernel_q31": 221164795,
"pipeline12_q15": 398227192,
"pipeline12_q15": 231525615,
"pipeline_float": 102590477,
"pipeline_q15": 137792386,
"pipeline_q15": 109235651,
"pipeline_q31": 173088119
}
}
8 changes: 4 additions & 4 deletions bridge/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,13 +154,13 @@ Executed instructions per fixed workload (`bridge/bench/icount/`), measured unde
|---|---:|---:|---:|
| `down_float_eco` | 1,720,707,553 | 73,794,800 | 304,636,182 |
| `down_float_tr` | 5,473,297,976 | 214,977,684 | 944,365,072 |
| `down_q15_eco` | 173,755,176 | 57,208,782 | 45,676,947 |
| `down_q15_se` | 130,967,926 | 46,983,269 | 33,235,098 |
| `down_q15_eco` | 173,755,176 | 22,404,812 | 45,676,947 |
| `down_q15_se` | 130,967,926 | 17,749,381 | 33,235,098 |
| `down_q31_eco` | 244,985,862 | 96,697,327 | 45,622,550 |
| `up_float_eco` | 1,231,730,349 | 55,451,902 | 220,214,287 |
| `up_float_tr` | 3,110,380,470 | 126,303,581 | 533,810,335 |
| `up_q15_eco` | 133,914,472 | 44,556,679 | 35,990,378 |
| `up_q15_se` | 103,390,933 | 39,050,794 | 27,424,077 |
| `up_q15_eco` | 133,914,472 | 19,095,905 | 35,990,378 |
| `up_q15_se` | 103,390,933 | 17,493,186 | 27,424,077 |
| `up_q31_eco` | 184,954,171 | 72,647,042 | 36,007,820 |
<!-- ICOUNT:END -->

Expand Down
8 changes: 4 additions & 4 deletions bridge/bench/baselines.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@
"m55": {
"down_float_eco": 73794800,
"down_float_tr": 214977684,
"down_q15_eco": 57208782,
"down_q15_se": 46983269,
"down_q15_eco": 22404812,
"down_q15_se": 17749381,
"down_q31_eco": 96697327,
"up_float_eco": 55451902,
"up_float_tr": 126303581,
"up_q15_eco": 44556679,
"up_q15_se": 39050794,
"up_q15_eco": 19095905,
"up_q15_se": 17493186,
"up_q31_eco": 72647042
}
}
30 changes: 19 additions & 11 deletions rational/PLAN.md
Original file line number Diff line number Diff line change
Expand Up @@ -906,19 +906,27 @@ plugin, `bench/baselines.json`; the README carries the full table):
| Workload | Cortex-M33 | Cortex-M55 | Hexagon |
|---|---:|---:|---:|
| `down2_float_eco` | 366,459,700 | 24,577,869 | 72,734,422 |
| `down2_q15_eco` | 47,494,712 | 25,070,113 | 18,554,089 |
| `down2_q15_eco` | 47,494,712 | 19,806,582 | 18,554,089 |
| `up2_float_eco` | 732,658,864 | 43,442,565 | 137,930,738 |
| `up2_q15_eco` | 67,354,778 | 47,493,112 | 28,133,275 |
| `up2_q15_eco` | 67,354,778 | 34,150,590 | 28,133,275 |
| `up3_float_eco` | 1,407,620,075 | 75,330,937 | 254,903,952 |
| `up3_q15_eco` | 92,695,694 | 74,874,023 | 39,793,932 |
| `construct_q15_eco` | 774,741 | 33,682 | 183,854 |

One finding, recorded for the codegen levers: on the M55, Q15 is not yet
faster than float (↓2 25.07 M against 24.58 M, ↑2 47.49 M against
43.44 M), where on the M33 it executes 7.7–15× fewer instructions and on Hexagon
3.9–6.4× fewer (the ↓2, ↑2 and ↑3 pairs).
The Q15 dot is the generic scalar kernel; an MVE dual-MAC Q15 kernel is a
lever after M6, with the sparse rows and the symmetry-halved table, each
| `up3_q15_eco` | 92,695,694 | 51,156,121 | 39,793,932 |
| `construct_q15_eco` | 774,741 | 33,098 | 183,854 |

One finding, recorded for the codegen levers, and the first lever it
pulled: at M6, Q15 on the M55 was no faster than float (↓2 25.07 M against
24.58 M, ↑2 47.49 M against 43.44 M), where on the M33 it executes 7.7–15×
fewer instructions and on Hexagon 3.9–6.4× fewer (the ↓2, ↑2 and ↑3
pairs). The cause was the substrate's Q15 dot: arm-none-eabi-gcc 13 left it
one scalar SMLALBB per tap on Helium. DspTap's Helium Q15 kernel
(tap/DspTap#53: eight lanes per VMLALDAVA, bit-exact) took the M55 Q15 rows
above to the counts shown — ↓2 −21 %, ↑2 −28 %, ↑3 −32 %, the by-4 chain
−48 % — with every output bit, every float and Q31 count and every M33 and
Hexagon count unchanged (bridge's Q15 workloads fell 55–62 % and async's
Q15 pipelines 21–42 % on the same pin). Q15 is now 19 % (↓2) to 32 % (↑3)
under float on the M55; what remains per output is the stage's own
bookkeeping around the dot. The sparse rows, the symmetry-halved table and
the Q15 decimators' per-branch quantization are the levers still open, each
measured against these baselines.

**Order and gating.** M0 lands in DspTap and the family bumps its pin
Expand Down
12 changes: 6 additions & 6 deletions rational/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -172,16 +172,16 @@ Executed instructions per fixed workload (`rational/bench/icount/`), measured un

| Workload | Cortex-M33 | Cortex-M55 | Hexagon |
|---|---:|---:|---:|
| `construct_q15_eco` | 774,741 | 33,682 | 183,854 |
| `down2_down2_q15_eco` | 62,508,360 | 54,506,280 | 22,251,668 |
| `construct_q15_eco` | 774,741 | 33,098 | 183,854 |
| `down2_down2_q15_eco` | 62,508,360 | 28,178,778 | 22,251,668 |
| `down2_float_eco` | 366,459,700 | 24,577,869 | 72,734,422 |
| `down2_float_tr` | 955,278,690 | 47,997,517 | 174,664,319 |
| `down2_q15_eco` | 47,494,712 | 25,070,113 | 18,554,089 |
| `down2_q15_eco` | 47,494,712 | 19,806,582 | 18,554,089 |
| `down3_float_eco` | 476,573,580 | 31,908,454 | 90,345,997 |
| `down3_q15_eco` | 51,977,458 | 28,017,447 | 19,350,211 |
| `down3_q15_eco` | 51,977,458 | 21,227,446 | 19,350,211 |
| `up2_float_eco` | 732,658,864 | 43,442,565 | 137,930,738 |
| `up2_float_tr` | 1,961,674,119 | 89,901,988 | 340,655,706 |
| `up2_q15_eco` | 67,354,778 | 47,493,112 | 28,133,275 |
| `up2_q15_eco` | 67,354,778 | 34,150,590 | 28,133,275 |
| `up3_float_eco` | 1,407,620,075 | 75,330,937 | 254,903,952 |
| `up3_q15_eco` | 92,695,694 | 74,874,023 | 39,793,932 |
| `up3_q15_eco` | 92,695,694 | 51,156,121 | 39,793,932 |
<!-- ICOUNT:END -->
12 changes: 6 additions & 6 deletions rational/bench/baselines.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,17 @@
"up3_q15_eco": 92695694
},
"m55": {
"construct_q15_eco": 33682,
"down2_down2_q15_eco": 54506280,
"construct_q15_eco": 33098,
"down2_down2_q15_eco": 28178778,
"down2_float_eco": 24577869,
"down2_float_tr": 47997517,
"down2_q15_eco": 25070113,
"down2_q15_eco": 19806582,
"down3_float_eco": 31908454,
"down3_q15_eco": 28017447,
"down3_q15_eco": 21227446,
"up2_float_eco": 43442565,
"up2_float_tr": 89901988,
"up2_q15_eco": 47493112,
"up2_q15_eco": 34150590,
"up3_float_eco": 75330937,
"up3_q15_eco": 74874023
"up3_q15_eco": 51156121
}
}
2 changes: 1 addition & 1 deletion submodules/dsptap
Loading