[Proposal] Optimization for AoS with SIMD
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 20/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- wasm
- Ambito
- compilers, performance
Direzione di ricerca
Non sono identificati file, test o punti di ingresso. Inizia determinando se la trasformazione appartiene al compilatore, a Binaryen o al runtime della VM, quindi definisci input AoS rappresentativi e un benchmark SIMD. Il lavoro è completato quando è stato scelto un livello, è stata implementata una trasformazione da AoS a SoA o AoSoA che preservi la semantica ed è stata dimostrata l’autovettorizzazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Not sure where this should be best done - at the compiler level, at the binaryen level, or at the VM runtime level.
As the GC proposal adds structures and arrays, we technically have the ability to turn AoS into SoA or AoSoA (with fixed SIMD proposal).
Like (pseudocode):
class Vec3 {
f32 x;
f32 y;
f32 z;
};
const vels = Vec3[100];
f32 getVelX(i32 i) {
return vels[i].x;
}
into:
class Vec3 {
f32 x[4];
f32 y[4];
f32 z[4];
};
const vels = Vec3[(100 + 3) / 4];
f32 getVelX(i32 i) {
return vels[i / 4].x[i & 3];
}
And apply SIMD auto-vectorisation afterwards.
- Lingua principale
- WebAssembly
- Stelle
- 8.6k
- Fork
- 885
- Merge medio
- 2g 4h
- PR unite (30g)
- 77
Guida per i contributori
Apri 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 WebAssembly/binaryen
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
WebAssembly/binaryen#9135 · 1 commento ·
-
Difficoltà 2/5 Mezza giornata Idoneità per principianti 76/100
WebAssembly/binaryen#9018 · 3 commenti ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
WebAssembly/binaryen#9133 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
WebAssembly/binaryen#9123 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
WebAssembly/binaryen#9122 ·
Tutte le issue di WebAssembly/binaryen
Issue simili
-
flang:fir-hlfir
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
llvm/llvm-project#225935 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
objectionary/eo#8923 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
-
Coarray integration tests carry no LABELS, so run_tests.py silently skips them under every backend Apertacoarray
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100