-
Notifications
You must be signed in to change notification settings - Fork 800
Intel additional AVX optimizations #1439
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
fhannebi
commented
Sep 30, 2025
- vif_avx512.c : vif_statistic_8_avx512() optimized with new avx512 intrinsics code
- integer_motion.c and motion_avx*.c : new avx2 and avx512 optimized functions which replace the corresponding C functions.
- integer_adm.c and adm_avx*.c : new avx2 and avx512 optimized functions which replace the corresponding C functions.
- Possibility to have further speedups by activating code in adm_avx512.c by setting the macros CALC_ANGLE1 and CALC_ANGLE2 at compilation.
- All these modifications have passed the unittest test cases.
|
Do you have benchmarks to share? |
libvmaf/src/feature/integer_adm.c
Outdated
| adm_decouple(buf, w, h, buf_stride, adm_enhn_gain_limit); | ||
| #if HAVE_AVX512 | ||
| if (flags & VMAF_X86_CPU_FLAG_AVX512) | ||
| adm_decouple_avx512(buf, w, h, buf_stride, adm_enhn_gain_limit, div_lookup); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Here and elsewhere. Please check the CPU flags during init and set optimized path via function pointer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is done with a new version of integer_adm.c provided in the commit 91942c5
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good, thank you.
|
In e6ae1d0 commit: Modified the way picture.h is included in motion_avx512.c and motion_avx2.c to avoid errors of path finding in some configurations; |