Comments (3)
OK, I checked the sources and you are right, the ordering in the results of pffft[d]_transform
of course depends on SIMD packet size. If performance is paramount for your use case, you could reverse engineer the code of pffft[d]_zreorder
and write a function with the signature pffft[d]_extract(SETUP_STRUCT *setup, const float *in, int index, float *out, pffft_direction_t direction);
which extracts the i'th value of pffft[d]_transform
's results.
from pffft.
Yes, I can confirm your results on Apple M1. @hayguen can you see anything obviously wrong here?
Without SIMD:
% clang -Ilib pffft/pf*.c test.cpp -o test && ./test
result=3443.696594
Success.
With SIMD:
% clang -Ilib pffft/pf*.c test.cpp -o test -DPFFFT_ENABLE_NEON=1 && ./test
result=3793.724228
Success.
from pffft.
Got it!
I changed all three pffftd_transform
to pffftd_transform_ordered
. Now the results are exactly the same.
If I measure yin_pitch with gcc using the provided code without compiler optimizations (-Ox) I get:
SIMD disabled: ~3600 μs
SIMD enabled: ~2400 μs
But with -O3 the results are roughly the same at around ~1000 μs. Anyways, it's all really fast and your library works great.
Thanks for taking the time to verify the issue.
from pffft.
Related Issues (20)
- Missing September 2016 commit HOT 5
- add OOURA FFT to benchmarks? HOT 5
- github's about text HOT 1
- apple support HOT 10
- benchmarking with cmake HOT 1
- ARM compiler options are wrong HOT 3
- Question about real forward transform output size HOT 1
- Build fails on powerpc64le HOT 4
- Support for 2D? HOT 5
- Comparison with KissFFT HOT 1
- add 'convolution' and/or 'fast-convolution' to topics list below About
- Automatic Build with Travis
- Maybe give another name to the library?
- clang-cl (windows) confused by std::complex
- confusion about memory alignment. HOT 1
- Building on M1 computer failed: CMake warning: unsupported CMAKE_SYSTEM_PROCESSOR 'arm64'
- Where is the pffft_nearest_transform_size and pffft_is_valid_size implementation? HOT 1
- dsp code taken from csdr without attribution HOT 1
- Algorithm verification
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pffft.