JuliaMath / JuliaMath/FFTW.jl

FFTW performance regression on large data

Open
#224 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
300
Forks
61
PR merge metrics
No merged PRs in 30d

Description

I've checked four versions v1.1.1, v1.2.4, v1.3.2 and v1.4.5. It turns out that v1.2.4 is the first version among these that I find such regression.

```julia
Julia Version 1.7.0-rc2
Commit f23fc0d27a (2021-10-20 12:45 UTC)
Platform Info:
OS: macOS (x86_64-apple-darwin19.5.0)
CPU: Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-12.0.1 (ORCJIT, skylake)
Environment:
JULIA_NUM_THREADS = 8
```

```julia
using FFTW
using BenchmarkTools
using ProgressMeter

records = Dict{DataType, Vector{Float64}}()
type_list = (ComplexF32, ComplexF64, Float32, Float64)
size_list = (32, 64, 128, 256, 512, 1024)
p = Progress(length(type_list)*length(size_list))
for T in type_list
records[T] = Float64[]
for sz in size_list
@info "benchmark" T size=sz
X = rand(T, sz, sz)
push!(records[T], @belapsed fft($X))
ProgressMeter.next!(p)
end
end
```

![FFTW_regression](https://user-images.githubusercontent.com/8684355/140614073-10025cb2-5678-4265-8502-fc6e661fae54.png)

![slowdown](https://user-images.githubusercontent.com/8684355/140614199-d9b2b051-405a-408b-b122-1192a1a042fb.png)

full data

```julia
version,eltype,size,time (s)
1.4.5,ComplexF32,32,2.0006e-5
1.4.5,ComplexF32,64,2.6791e-5
1.4.5,ComplexF32,128,8.3809e-5
1.4.5,ComplexF32,256,0.000846211
1.4.5,ComplexF32,512,0.00369063
1.4.5,ComplexF32,1024,0.0155797
1.4.5,ComplexF64,32,2.1886e-5
1.4.5,ComplexF64,64,4.1119e-5
1.4.5,ComplexF64,128,0.000149766
1.4.5,ComplexF64,256,0.000798304
1.4.5,ComplexF64,512,0.00385186
1.4.5,ComplexF64,1024,0.0174638
1.4.5,Float64,32,2.3493e-5
1.4.5,Float64,64,5.0737e-5
1.4.5,Float64,128,0.000184953
1.4.5,Float64,256,0.00100407
1.4.5,Float64,512,0.00418498
1.4.5,Float64,1024,0.0195511
1.4.5,Float32,32,2.0973e-5
1.4.5,Float32,64,3.2219e-5
1.4.5,Float32,128,0.000107794
1.4.5,Float32,256,0.000895317
1.4.5,Float32,512,0.00401913
1.4.5,Float32,1024,0.0183689

```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.