ermig1979 / Simd

C++ image processing and machine learning library with using of SIMD: SSE, AVX, AVX-512, AMX for x86/x64, NEON for ARM.
http://ermig1979.github.io/Simd
MIT License
2.06k stars 412 forks source link

What does "Simd" column mean in the performance report? #157

Closed ngzhian closed 3 years ago

ngzhian commented 3 years ago

For example:

----------------------------------------------
| Function                   |   Simd   Base |
----------------------------------------------
| Common, ms                 | 11.474 12.001 |
----------------------------------------------
| AbsDifference              |  4.810  5.941 |
| AbsDifferenceSum           |  2.632  2.641 |
| AbsDifferenceSumMasked     | 10.000 10.000 |
| AbsDifferenceSums3x3       | 45.333 45.333 |
| AbsDifferenceSums3x3Masked | 34.667 35.000 |
----------------------------------------------

I have no Simd enabled, SIMD_TEST_FLAGS is 0, I just would like to see base performance. Where do the "Simd" numbers come from?

ermig1979 commented 3 years ago

Simd - it means call of API function of Simd Library (for example SimdAbsDifference). I agree that is not the most understandable designation. Can you give any better suggestion to designate itone?

ngzhian commented 3 years ago

Okay, so it means the call into the API function, which will use the highest supported extension. For SimdAbsDifference it will be AVX2 if enabled, otherwise Base. I guess I was confused because the Simd and Base numbers in the results had quite a large difference for AbsDifference, so I thought it was doing something different.

I think Simd is a good name, maybe SimdLib, or API, or "Selected"? Or a documentation in the readme in the test section describing the various headers, like B/S1 and P/S1 will be sufficient. Thank you for clearing this up!

ermig1979 commented 3 years ago

Ок. I will update documentation as you recommended.