Add ARM64 SIMD support for sparse CPU math
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 35/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- csharp
- Ambito
- machine-learning, performance
Direzione di ricerca
Start in src/Microsoft.ML.CpuMath/CpuMathUtils.netcoreapp.cs at DotProductSparse (lines 397-425) and indexed AddScale (lines 197-225), then inspect the existing x86 optimized paths and scalar fallback. Investigate ARM64 SIMD options and benchmark different entry counts and index layouts, including tails. Done means beneficial ARM64 paths preserve other paths and fallback behavior, with correctness, intrinsics-disabled, L-BFGS, save/load, and prediction validation.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Is your feature request related to a problem? Please describe.
CpuMathUtils.DotProductSparse and indexed AddScale currently use scalar loops on ARM64. Their optimized paths depend on SSE/AVX. These operations are used in sparse L-BFGS training and linear-model prediction.
Describe the solution you'd like
Investigate ARM64 SIMD implementations for these two operations. Preserve the existing x86 paths and scalar fallback. Enable the new paths only where benchmarks show a benefit.
Validation should cover:
- Different stored-entry counts and index layouts, including short inputs and scalar tails.
- Correctness against scalar reference results, with hardware intrinsics enabled and disabled.
- L-BFGS training, model save/load, and prediction.
Describe alternatives you've considered
Retain scalar loops where SIMD does not improve performance, especially for short inputs. Dense TensorPrimitives operations are not a direct replacement for indexed sparse math.
Additional context
Related: #6875 migrated dense operations to TensorPrimitives but left these sparse operations unchanged.
Relevant source: DotProductSparse and indexed AddScale.
- Lingua principale
- C#
- Stelle
- 9.4k
- Fork
- 2k
- Merge medio
- 2g 18h
- PR unite (30g)
- 64
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di dotnet/machinelearning
-
area-Native untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
dotnet/machinelearning#7837 ·
I maintainer di solito rispondono entro 1 giorno
-
area-TensorFlow untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
dotnet/machinelearning#7836 ·
I maintainer di solito rispondono entro 1 giorno
-
ToArrowRecordBatches accumulates arrays from previous batches, producing invalid record batchesApertaarea-DataFrame bug untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
dotnet/machinelearning#7799 ·
I maintainer di solito rispondono entro 1 giorno
-
LlamaTokenizer encodes some runs of repeated characters differently from SentencePieceForse già presa @Laurianti l’ha presa 42 giorni fa. Apertaarea-Tokenizers untriaged
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
dotnet/machinelearning#7751 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
BertTokenizer merges words separated only by `\n`, `\t` or `\r`Forse già presa @Laurianti l’ha presa 23 giorni fa. Apertaarea-Tokenizers green
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
dotnet/machinelearning#7724 · 3 commenti ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di dotnet/machinelearning
Issue simili
-
bug emitter:client:csharp
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
microsoft/typespec#12572 · 1 commento · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
needs-area-label
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 2 giorni
-
AWS Lambda: KeyNotFoundException drops HTTP-triggered transactions when allowAllHeaders is disabledApertabug
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
newrelic/newrelic-dotnet-agent#3949 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
area-networking
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
dotnet/aspnetcore#70545 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 87/100
I maintainer di solito rispondono entro 1 giorno