VORTEXM4: small SGEMM/DGEMM (n < 128) and GEMV-like shapes slower than other libraries
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Feature
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- c
- Bereich
- backend, performance
Rechercherichtung
Start with kernel/arm64/sme2_gemm_impl.h and inspect the s2_gemm path for small multiply counts, then trace GEMM_GEMV_FORWARD for GEMV-like shapes. The issue lists three possible optimization directions but does not identify tests or a single target behavior; first reproduce the VORTEXM4 benchmarks from tesch1/mtgemm-a. Done means benchmark results improve for the cited small shapes while larger cases remain competitive.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
SGEMM/DGEMM on VORTEXM4 for small problems (M4 Pro, one thread, from the tesch1/mtgemm-a benchmarks against OpenBLAS develop 5137bb6):
| case | OpenBLAS | best other |
|---|---|---|
| SGEMM col-major n = 4 / 8 / 12 / 16 | 2 / 7 / 19 / 39 GFLOPS | Eigen 5 / 32 / 59 / 73 |
| SGEMM col-major n = 32 / 64 | 227 / 887 | MTGEMM-A 315 / 1089 |
| DGEMM col-major n = 24 / 48 | 64 / 177 | Accelerate 88 / 291 |
| GEMM with one side = 1 (GEMV-like) | 26 | Accelerate 74 |
| 8 x 8 x 4096, 16 x 16 x 4096 (fp32) | 95 / 353 | Eigen 149 / 592 |
From n = 128 up OpenBLAS is at 0.94-0.99x of the best.
Background: below 3000 multiply-adds s2_gemm (kernel/arm64/sme2_gemm_impl.h) runs plain C loops; above, each call enters streaming mode (about 28 ns) and packs both operands. Possible work:
- a register-blocked NEON micro-kernel without packing for the plain-loop range;
- less per-call overhead on the SME2 path from 14^3 to 96^3 (MTGEMM-A is up to 1.8x faster per call there);
- for the GEMV-like shapes, a faster GEMV on VORTEXM4 (the GEMM_GEMV_FORWARD path).
- Vorherrschende Sprache
- C
- Sterne
- 7.6k
- Forks
- 1.7k
- Ø Merge
- 1 T. 18 Std.
- Gemergte PRs (30 T.)
- 46
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus OpenMathLib/OpenBLAS
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
OpenMathLib/OpenBLAS#6152 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 28/100
OpenMathLib/OpenBLAS#6151 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
VORTEXM4: s2_usable() runs RDSVL before the SME2 check (SIGILL without SME)Evtl. vergeben @tesch1 hat das vor 2 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 25/100
OpenMathLib/OpenBLAS#6150 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 43/100
OpenMathLib/OpenBLAS#6148 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
OpenMathLib/OpenBLAS#6147 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in OpenMathLib/OpenBLAS
Ähnliche Issues
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 95/100
containers/crun#2415 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
zephyrproject-rtos/zephyr#123423 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
Maintainer antworten meist innerhalb von 1 Tag
-
dspromote: /etc/exports uses -alldirs on non-mount-point directories, so mountd exports nothingOffenbug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
nextbsd/nextbsd-userland#434 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 77/100
Maintainer antworten meist innerhalb von 1 Tag