locks in fftw is limiting cpu efficiency when multi-threading · 21/11/2019 · locks in fftw is...
TRANSCRIPT
![Page 1: Locks in FFTW is limiting CPU efficiency when multi-threading · 21/11/2019 · Locks in FFTW is limiting CPU efficiency when multi-threading 11/21/19 Haiwang Yu 1 ... A lot of creating](https://reader033.vdocument.in/reader033/viewer/2022050511/5f9c1cf0b51cb61ea0637c25/html5/thumbnails/1.jpg)
Locks in FFTW is limiting CPU efficiency when multi-threading
11/21/19 Haiwang Yu 1
Noise filtering with sticky code mitigation (SCM)https://github.com/WireCell/wire-cell-toolkit/pull/8
NF SP
http://www.fftw.org/fftw3_doc/Thread-safety.html
Protodune::StickyCodeMitig::apply()
FFT in SCM
![Page 2: Locks in FFTW is limiting CPU efficiency when multi-threading · 21/11/2019 · Locks in FFTW is limiting CPU efficiency when multi-threading 11/21/19 Haiwang Yu 1 ... A lot of creating](https://reader033.vdocument.in/reader033/viewer/2022050511/5f9c1cf0b51cb61ea0637c25/html5/thumbnails/2.jpg)
Reading Eigen FFT code
11/21/19 Haiwang Yu 2
https://eigen.tuxfamily.org/dox/unsupported/ei__fftw__impl_8h_source.html
Plan caching
Thread unsafe
Eigen FFTW implementation has this plan caching feature!
![Page 3: Locks in FFTW is limiting CPU efficiency when multi-threading · 21/11/2019 · Locks in FFTW is limiting CPU efficiency when multi-threading 11/21/19 Haiwang Yu 1 ... A lot of creating](https://reader033.vdocument.in/reader033/viewer/2022050511/5f9c1cf0b51cb61ea0637c25/html5/thumbnails/3.jpg)
Waveform::dft ⟹ Waveform::FFT::dft
11/21/19 Haiwang Yu 3
Plan cache destroyed in ‘Eigen::FFT’ dtor
Could create an ‘FFT’ instance for each INode using FFT. Then Plan cache could live the whole running period.Not many chances to hit the planner call locks
In the SCM code, FFT was performed 4 times per channel!A lot of creating new plans.
![Page 4: Locks in FFTW is limiting CPU efficiency when multi-threading · 21/11/2019 · Locks in FFTW is limiting CPU efficiency when multi-threading 11/21/19 Haiwang Yu 1 ... A lot of creating](https://reader033.vdocument.in/reader033/viewer/2022050511/5f9c1cf0b51cb61ea0637c25/html5/thumbnails/4.jpg)
Plan caching FFT in MT mode
11/21/19 Haiwang Yu 4
![Page 5: Locks in FFTW is limiting CPU efficiency when multi-threading · 21/11/2019 · Locks in FFTW is limiting CPU efficiency when multi-threading 11/21/19 Haiwang Yu 1 ... A lot of creating](https://reader033.vdocument.in/reader033/viewer/2022050511/5f9c1cf0b51cb61ea0637c25/html5/thumbnails/5.jpg)
SCM with Pgrapher - ST
11/21/19 Haiwang Yu 5
![Page 6: Locks in FFTW is limiting CPU efficiency when multi-threading · 21/11/2019 · Locks in FFTW is limiting CPU efficiency when multi-threading 11/21/19 Haiwang Yu 1 ... A lot of creating](https://reader033.vdocument.in/reader033/viewer/2022050511/5f9c1cf0b51cb61ea0637c25/html5/thumbnails/6.jpg)
Next: mbCoherentNoiseSub
11/21/19 Haiwang Yu 6
updated with plan caching FFT:pdStickyCodeMitigpdOneChannelNoisepdRelGainCalib – no fft used
next:mbCoherentNoiseSub
![Page 7: Locks in FFTW is limiting CPU efficiency when multi-threading · 21/11/2019 · Locks in FFTW is limiting CPU efficiency when multi-threading 11/21/19 Haiwang Yu 1 ... A lot of creating](https://reader033.vdocument.in/reader033/viewer/2022050511/5f9c1cf0b51cb61ea0637c25/html5/thumbnails/7.jpg)
SCM with Pgrapher - ST
11/21/19 Haiwang Yu 7
no fft
w/ fft no plan caching
w/ fft plan caching