Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

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

Aberta
#6,152 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
5/5
Tempo estimado
Mais de uma semana
Facilidade para iniciantes
25/100
Tipo de issue
Funcionalidade
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
c
Domínio
backend, performance

Direção de pesquisa

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.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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).

Linguagem predominante
C
Estrelas
7.6k
Forks
1.7k
Merge médio
1d 17h
PRs com merge (30d)
42

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de OpenMathLib/OpenBLAS

Todas as issues de OpenMathLib/OpenBLAS

Issues semelhantes

Mais issues de C

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.