VORTEXM4 on Apple M5/M6: SME2 kernels and parameters are untested
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_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).
- 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
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de OpenMathLib/OpenBLAS
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 28/100
OpenMathLib/OpenBLAS#6151 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
VORTEXM4: s2_usable() runs RDSVL before the SME2 check (SIGILL without SME)Talvez já em andamento @tesch1 assumiu há 1 dia. Aberta
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
OpenMathLib/OpenBLAS#6150 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
OpenMathLib/OpenBLAS#6149 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 43/100
OpenMathLib/OpenBLAS#6148 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
OpenMathLib/OpenBLAS#6147 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de OpenMathLib/OpenBLAS
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
espressif/esp-adf-libs#89 · 1 comentário ·
-
TLS: a stale OpenSSL error makes non-blocking reads fail with "Resource temporarily unavailable"Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
enhancement severity: low
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
luainkernel/lunatik#2091 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 82/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 84/100
bigtreetech/BIGTREETECH-TouchScreenFirmware#3056 ·
Mantenedores costumam responder em até 1 dia