Use Toeplitz-dot-Hankel for very large dimensional transforms
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 38/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- julia
- Ambito
- performance
Direzione di ricerca
Inizia individuando le implementazioni delle trasformazioni cheb2leg e th_cheb2leg e confronta il loro comportamento per le dimensioni dei vettori segnalate. Esegui un benchmark di entrambi i percorsi con n=100, 1.000 e 10.000, quindi esegui il profiling del caso matriciale e delle FFTs menzionate nell’issue. Il lavoro è completato quando viene scelto il percorso più veloce per gli array molto grandi senza reintrodurre le regressioni segnalate o allocazioni eccessive.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Toeplitz-dot-Hankel has better complexity plans so should be the default when arrays are large: Eg for cheb2leg even n = 1000 sees a signifcant speedup:
julia> n = 100; x = randn(n); @time cheb2leg(x); @time th_cheb2leg(x);
0.000267 seconds (2 allocations: 944 bytes)
0.000654 seconds (98 allocations: 288.531 KiB)
julia> n = 1000; x = randn(n); @time cheb2leg(x); @time th_cheb2leg(x);
0.028686 seconds (2 allocations: 7.984 KiB)
0.006464 seconds (99 allocations: 10.559 MiB)
julia> n = 1000; x = randn(n); @time cheb2leg(x); @time th_cheb2leg(x);
0.028856 seconds (2 allocations: 7.984 KiB)
0.011597 seconds (99 allocations: 10.559 MiB)
julia> n = 10_000; x = randn(n); @time cheb2leg(x); @time th_cheb2leg(x);
0.778423 seconds (3 allocations: 78.219 KiB)
0.103821 seconds (108 allocations: 799.524 MiB)
This was prematurely changed but reverted as there were some regressions. But also the number of allocations in th_* is exorbitant, probably because it dates back to a port of Matlab code.
For matrices I'm not seeing much improvement in the th_*, even for a 40k x 10 transform, which is suspicious....but doing a profile all the time is in the FFTs
- Lingua principale
- Julia
- Stelle
- 282
- Fork
- 27
- Merge medio
- 53m
- PR unite (30g)
- 1
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
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 JuliaApproximation/FastTransforms.jl
-
Loading FastTransforms.jl can make FFTs via FFTW.jl 100x slower due to threading conflictsForse già presa @dlfivefifty l’ha presa 93 giorni fa. Aperta
JuliaApproximation/FastTransforms.jl#267 · 2 reazioni · 2 assegnatari ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 38/100
JuliaApproximation/FastTransforms.jl#266 · 1 commento ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
JuliaApproximation/FastTransforms.jl#263 · 2 commenti ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
JuliaApproximation/FastTransforms.jl#257 · 1 commento ·
-
Allocating lmul!Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
JuliaApproximation/FastTransforms.jl#253 · 7 commenti ·
Tutte le issue di JuliaApproximation/FastTransforms.jl
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
SciML/PETScDiffEq.jl#196 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 84/100
SciML/Catalyst.jl#1571 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
SciML/Optimization.jl#1414 ·
I maintainer di solito rispondono entro 1 giorno