Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

VORTEXM4 on Apple M5/M6: SME2 kernels and parameters are untested

Offen
#6,152 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

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
25/100
Issue-Typ
Feature
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
c
Bereich
backend, performance

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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_Q for 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's s2_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).

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

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus OpenMathLib/OpenBLAS

Alle Issues in OpenMathLib/OpenBLAS

Ähnliche Issues

Weitere Issues zu C

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.