On 8/17/2021 4:24 PM, James Almer wrote:
On 8/17/2021 12:25 PM, Ronald S. Bultje wrote:
Hi,
On Tue, Aug 17, 2021 at 2:33 AM Hendrik Leppkes <h.lepp...@gmail.com>
wrote:
On Tue, Aug 17, 2021 at 8:30 AM Wu Jianhua <jianhua...@intel.com> wrote:
Based on IceLake-AVX512 and newer architecture, a broad
range of the subsets of AVX512 could be supported.
[..]
- enabled avx512 && check_x86asm avx512_external "vmovdqa32
[eax]{k1}{z}, zmm0"
+ # Only IceLake and newer architectures could enable AVX512
+ #
F/CD/BW/DQ/VL/VNNI/IFMA/VBMI/VBMI2/VPOPCNTDQ/BITALG/GFNI/VAES/VPCLMULQDQ
+ enabled avx512 && check_x86asm avx512_external "vpdpwssds
zmm31{k1}{z}, zmm29, zmm28"
enabled avx2 && check_x86asm avx2_external "vextracti128
xmm0, ymm0, 0"
enabled xop && check_x86asm xop_external "vpmacsdd
xmm0,
xmm1, xmm2, xmm3"
enabled fma4 && check_x86asm fma4_external "vfmaddps
ymm0,
ymm1, ymm2, ymm3"
Note that you are just checking the functionality of the assembler
here, not having a runtime impact.
What you would likely want is to update avutil/x86/cpu.c as well to
only enable the AVX512 flag on those CPUs.
[After IRC discussion] you want runtime checks for the
variants/combinations-of-subsets that we want to support. Right now,
avx512
means skylake, so you may want to rename that flag to "avx512skl", and
add
a new runtime flag + check for the icelake subset called "avx512icl".
Then
in your implementations, you use the appropriate flag, and code
components
can individually choose to use skylake- and/or icelake-optimized ax512
functions.
Does it really mean Skylake-X? Afaik the flag checks in cpu.c currently
look for AVX-512 Foundation and ZMM support, so it means Knights Landing
or newer.
Nevermind, just noticed the comment in cpu.c that mentions the Skylake-X
extensions.
What about just making the existing AVX512 flag mean F+VL+DQ+BW, so
Skylake-X (Anything older just lacks useful instructions for
multimedia), and if needed for this new code add a new avx512icl flag
that also looks for something like GFNI.
Assuming making Ice Lake the minimum supported SKU is not acceptable,
then your suggestion is fine (Sans the renaming, since it's a breaking
change).
Ronald
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".