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".

Reply via email to