James Almer W rote: > 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/VA > ES/VPCLMU > >>> LQDQ > >>>> + 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). > Hi,
The reason why we set the icelake-avx512 as the minimum baseline is that we don't want FFmpeg run on a processor downclocking heavily, hence, keep the current flag and add a new AVX512ICL make no sense. I was supposed to add a cpuid check for F/CD/BW/DQ/VL/VNNI/IFMA/VBMI/ VBMI2/VPOPCNTDQ/BITALG/GFNI/VAES/VPCLMULQDQ in cpu.c in v2 patch and no need to change flags. Jianhua _______________________________________________ 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".