VORTEXM4 on Apple M5/M6: SME2 kernels and parameters are untested
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
- 25/100
- Type d'issue
- Fonctionnalité
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- c
- Domaine
- backend, performance
Piste de recherche
With M5 or M6 hardware, first check SME2 correctness at a 512-bit streaming vector length via s2_usable(). Then measure the VORTEXM4 GEMM parameters in param.h, thread counts in common_thread.h and sme2_gemm_impl.h, and the small-problem and blocking constants in sme2_gemm_impl.h; compare results across chip variants. Done means the kernels are verified and tuned, thread counts agree, and the need for separate core types is resolved.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
The SME2 kernels and parameters for VORTEXM4 from #6074 were measured on an M4 Pro only. M5 and M6 (and their Pro/Max variants) also detect as VORTEXM4 (cpuid_arm64.c, and by FEAT_SME at run time), but their SME implementation differs and nothing was tuned or verified on them. Items for someone with that hardware:
- correctness: the kernels need SME2 with a 512-bit streaming vector length (
s2_usable()); with other values they fall back to plain loops; GEMM_P/GEMM_Qfor VORTEXM4 in param.h (fp32 1024/1024, fp64 512/512 on M4 Pro);- the level-3 thread cap
sme_level3_threads()in common_thread.h counts one SME unit per performance cluster (hw.perflevel0.physicalcpu / cpusperl2). The direct GEMM'ss2_units()in sme2_gemm_impl.h doubles that count on M5 Pro/Max ("Super" clusters, from a third-party measurement), so the two disagree there; - the small-problem limit (
S2_SMALL_WORK, 3000 multiply-adds) and the blocking-model constants in sme2_gemm_impl.h (S2_L2_BYTES,S2_TLB_ENTRIES); - whether a separate core type (with its own KERNEL file and parameters) is needed.
The only M5 numbers found so far are in #5841 (base M5: DGEMM at 64 GFLOPS before SME support, 480 with Accelerate).
- Langage dominant
- C
- Étoiles
- 7.6k
- Forks
- 1.7k
- Merge moyen
- 1 j 17 h
- PR mergées (30 j)
- 42
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 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 1 jour. 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é 5/5 Plus d'une semaine Accessibilité débutants 35/100
OpenMathLib/OpenBLAS#6149 ·
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é 2/5 1-3 heures Accessibilité débutants 74/100
libsdl-org/SDL#16577 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 66/100
Les mainteneurs répondent en général sous 1 jour
-
halt_error adds a trailing newline for non-string input, contrary to the manualPeut-être pris @Huang-404-Q l’a pris aujourd’hui. Ouverte
Difficulté 1/5 1-3 heures Accessibilité débutants 88/100
Les mainteneurs répondent en général sous 2 jours
-
GEODIFF_changesCount aborts the process on a truncated changeset (uncaught GeoDiffException)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
MerginMaps/geodiff#272 ·
-
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
open-quantum-safe/liboqs#2644 ·
Les mainteneurs répondent en général sous 1 jour