VORTEXM4: small SGEMM/DGEMM (n < 128) and GEMV-like shapes slower than other libraries
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Accessibilité débutants
- 35/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- c
- Domaine
- backend, performance
Piste de recherche
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.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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).
- Langage dominant
- C
- Étoiles
- 7.6k
- Forks
- 1.7k
- Merge moyen
- 1 j 18 h
- PR mergées (30 j)
- 46
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de OpenMathLib/OpenBLAS
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
OpenMathLib/OpenBLAS#6152 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 28/100
OpenMathLib/OpenBLAS#6151 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
VORTEXM4: s2_usable() runs RDSVL before the SME2 check (SIGILL without SME)Peut-être pris @tesch1 l’a pris il y a 2 jours. Ouverte
Difficulté 3/5 1-2 jours Accessibilité débutants 25/100
OpenMathLib/OpenBLAS#6150 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 43/100
OpenMathLib/OpenBLAS#6148 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 4/5 3-5 jours Accessibilité débutants 52/100
OpenMathLib/OpenBLAS#6147 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de OpenMathLib/OpenBLAS
Issues similaires
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 95/100
containers/crun#2415 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
zephyrproject-rtos/zephyr#123423 ·
Les mainteneurs répondent en général sous 2 jours
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
dspromote: /etc/exports uses -alldirs on non-mount-point directories, so mountd exports nothingOuvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
nextbsd/nextbsd-userland#434 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
Les mainteneurs répondent en général sous 1 jour