[FFmpeg-devel] [PATCH 1/2] libavutil/cpu: Adds av_cpu_has_fast_gather to detect cpus with avx fast gather instruction

Alan Kelly alankelly at google.com
Thu Jun 24 16:30:10 EEST 2021


Hi,

Sorry for the late reply, busy oncall week. Thanks for your responses. I
have looked at the code for cpuflags and what you suggested makes sense. I
just have a question about naming. EXTERNAL_AVX2_FAST is already used in
many places - it checks whether the flag AV_CPU_FLAG_AVXSLOW is set so I
can't use this as it would change the meaning of it. Could I define a flag
like for AV_CPU_FLAG_CMOV? AV_CPU_FLAG_FAST_GATHER or similar? Or could you
please suggest a better solution.

Thanks

On Mon, Jun 14, 2021 at 2:17 PM James Almer <jamrial at gmail.com> wrote:

> On 6/14/2021 8:53 AM, Ronald S. Bultje wrote:
> > Hi Alan,
> >
> > On Mon, Jun 14, 2021 at 7:20 AM Alan Kelly <
> > alankelly-at-google.com at ffmpeg.org> wrote:
> >
> >> Broadwell and later have fast gather instructions.
> >> ---
> >>   This is so that the avx2 version of ff_hscale8to15X which uses gather
> >>   instructions is only selected on machines where it will actually be
> >>   faster.
> >>
> >
> > We've in the past typically done this with a bit in the cpuflags return
> > value. Can this be added there instead of being its own function?
> >
> > Also, what is the cycle count of ssse3/avx2 implementation for this
> > specific function on Haswell? It would be good to note that in the
> > respective patch so that we understand why the check was added.
>
> Between 9 and 12 on Haswell, 5 to 7 on Broadwell, and about 2 to 5 on
> Skylake and newer, acording to Agner's pdf if i'm reading it right. It's
> also slow on AMD before Zen 3.
>
> And yes, this should if anything be a new cpu flag and not a new function.
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>
> To unsubscribe, visit link above, or email
> ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".
>


More information about the ffmpeg-devel mailing list