sph methods slow?
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 25/100
- Type d'issue
- Bug
- Clarté
- À clarifier
- Activité
- À l'abandon
- Stack technique
- julia
- Domaine
- performance
Piste de recherche
Reproduisez les temps d’exécution signalés à l’aide de plan_sph2fourier, plan_sph_synthesis, lmul! et des comparaisons avec FFTW dans l’issue. Commencez par localiser ces points d’entrée des transformations sphériques et profiler à la fois les cas avec de grands tableaux et ceux avec de petits tableaux. Le travail serait considéré comme terminé s’il permettait d’identifier et de corriger le ralentissement ou les allocations signalés, mais l’issue ne définit ni objectif ni test spécifique.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Maybe this is totally expected, but:
- A lot slower than FFT. It has been a while, but I seem to recall (going back to 2018) that the first version was much more comparable to FFT
- Allocations that don't go away with in-place (hard to make an efficient time evolution algorithm in this case)
- Which method is the bottleneck depends on size
using FastTransforms
using FFTW
using LinearAlgebra
n,m = 1024,2047
x = randn(ComplexF64,n,m)
# FFTW
@time fft(x);
0.033259 seconds (259 allocations: 32.001 MiB)
P! = plan_fft!(x);
@time P!*x;
0.035154 seconds (232 allocations: 14.969 KiB)
# Spherical
P = plan_sph2fourier(x)
PS = plan_sph_synthesis(x)
@time PS*(P*x);
0.235185 seconds (549 allocations: 127.972 MiB, 1.57% gc time)
@time P*x; # slow
0.145820 seconds (8 allocations: 63.969 MiB, 1.85% gc time)
@time PS*x;
0.051036 seconds (545 allocations: 64.003 MiB)
@time lmul!(P,x); # slow
0.139856 seconds (4 allocations: 31.984 MiB, 0.91% gc time)
@time lmul!(PS,x);
0.047418 seconds (539 allocations: 32.018 MiB)
## small array
n,m = 60,121
x = randn(ComplexF64,n,m);
# FFTW
@time fft(x);
0.000560 seconds (242 allocations: 129.836 KiB)
P! = plan_fft!(x);
@time P!*x;
0.000411 seconds (218 allocations: 14.492 KiB)
# Spherical
P = plan_sph2fourier(x);
PS = plan_sph_synthesis(x);
@time PS*(P*x);
0.101827 seconds (19.31 k allocations: 1.626 MiB)
@time P*x;
0.000266 seconds (8 allocations: 227.406 KiB)
@time PS*x; # slow
0.031964 seconds (20.48 k allocations: 1.440 MiB)
@time lmul!(P,x);
0.000364 seconds (4 allocations: 113.594 KiB)
@time lmul!(PS,x); # slow
0.037324 seconds (20.38 k allocations: 1.326 MiB)
- Langage dominant
- Julia
- Étoiles
- 282
- Forks
- 27
- Merge moyen
- 53 min
- PR mergées (30 j)
- 1
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de JuliaApproximation/FastTransforms.jl
-
Loading FastTransforms.jl can make FFTs via FFTW.jl 100x slower due to threading conflictsPeut-être pris @dlfivefifty l’a pris il y a 90 jours. Ouverte
JuliaApproximation/FastTransforms.jl#267 · 2 réactions · 2 personnes assignées ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 38/100
JuliaApproximation/FastTransforms.jl#266 · 1 commentaire ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 42/100
JuliaApproximation/FastTransforms.jl#263 · 2 commentaires ·
-
Difficulté 4/5 3-5 jours Accessibilité débutants 35/100
JuliaApproximation/FastTransforms.jl#257 · 1 commentaire ·
-
Allocating lmul!Ouverte
Difficulté 4/5 3-5 jours Accessibilité débutants 25/100
JuliaApproximation/FastTransforms.jl#253 · 7 commentaires ·
Toutes les issues de JuliaApproximation/FastTransforms.jl
Issues similaires
-
Broken links in the docsOuverte
Difficulté 1/5 Moins d'une heure Accessibilité débutants 88/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
oxfordcontrol/COSMO.jl#211 ·
-
documentation
Difficulté 2/5 Une demi-journée Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 6 jours
-
Out-of-place JLArray/GPU problem with VectorContinuousCallback scalar-indexes (callback cache built with CPU zeros)Peut-être pris @ChrisRackauckas-Claude l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
SciML/OrdinaryDiffEq.jl#4813 ·
Les mainteneurs répondent en général sous 1 jour
-
ARKODE: callbacks that modify `u` throw MethodError on reinitPeut-être pris @devmotion l’a pris il y a 1 jour. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 79/100
SciML/Sundials.jl#575 ·