role of hand-optimized assembly in multimedia encoders

By: none (none.delete@this.none.com), November 19, 2020 8:17 am
Room: Moderated Discussions
Dummond D. Slow (mental.delete@this.protozoa.us) on November 18, 2020 11:06 am wrote:
[...]
> I already said that elsewhere: autovectorization mostly fails on the kind of integer SIMD routines the
> encoders use. It is generally considered not remotely usable for encoders. One reason is that to get
> the performance, you usually can't just SIMDify naively, it needs some restructuring and transformation
> of the computation to get the kinds of speedups assembly does. It's probably not the only factor.
>
> Note that this is not from my head, this is based on information I'm getting from the people who do this kind
> of code in FFmpeg, Rav1e, Eve, Dav1d, x264, x265. Both x86 and ARM code. So pretty please, if you think this
> is not true merely based on your assumptions or knowledge from unrelated fields or general outlook of compilers
> and vectorization, stop right now and go ask people who do this code before you continue disputing this.
>
> Point at relevant state of the art video encoder or decoder codebase and I'm fairly
> sure it will rely on hand-written assembly. At worst, there will be compiler intrinsics,
> but those are already frowned upon and give inferior results.

I definitely agree with that. I would also add that beyond autovectorization, SIMD ISA tend
to have instructions that were specifically added for code typically found in that kind of
programs, and compilers are rarely (if ever?) able to generate them.

That being said recent versions of gcc have improved in their autovectorization of parts of
SPEC x264. Of course not enough to reach the speed of hand-written assembly language code.
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
1st round of M1 GPU benchmarksMaynard Handley2020/11/16 01:46 PM
  1st round of M1 GPU benchmarksAdrian2020/11/16 02:02 PM
    1st round of M1 GPU benchmarksI_vs2020/11/17 02:18 AM
  1st round of M1 GPU benchmarksRType2020/11/16 02:06 PM
    1st round of M1 GPU benchmarksMaynard Handley2020/11/16 02:45 PM
      And the NZ'ers are first to deliver cinebench scoresMaynard Handley2020/11/16 03:58 PM
        And the NZ'ers are first to deliver cinebench scoresWill2020/11/16 04:30 PM
          re: "scaling"Dummond D. Slow2020/11/16 05:06 PM
            re: "scaling"Maynard Handley2020/11/16 05:29 PM
              re: "scaling"Dummond D. Slow2020/11/16 05:51 PM
                re: "scaling"Maynard Handley2020/11/16 06:51 PM
                  re: "scaling"Dummond D. Slow2020/11/16 07:22 PM
                    re: "scaling"Maynard Handley2020/11/16 07:23 PM
                      re: "scaling"Maynard Handley2020/11/16 07:27 PM
                        re: "scaling"Dummond D. Slow2020/11/16 07:37 PM
                          re: "scaling"Chester2020/11/16 09:25 PM
                          Actual power consumption values.Dummond D. Slow2020/11/17 08:05 AM
                    re: "scaling"Doug S2020/11/17 11:25 AM
                      Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/17 12:18 PM
                        Apple loses a lot by not having turbo and SMTDoug S2020/11/17 01:21 PM
                          Apple loses a lot by not having turbo and SMTblaine2020/11/19 06:18 PM
                            Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/19 06:31 PM
                        Apple loses a lot by not having turbo and SMTTJ2020/11/18 02:10 AM
                          Cinebench is NOT a representation of average workloadsAndrei F2020/11/18 06:21 AM
                            SPEC is NOT a representation of average workloadsChester2020/11/18 08:02 AM
                              SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 08:17 AM
                                SPEC is NOT a representation of average workloadsnone2020/11/18 09:18 AM
                                  x264 without SIMD is nonsenseDummond D. Slow2020/11/18 09:31 AM
                                  SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 10:13 AM
                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 10:21 AM
                                      SPEC is NOT a representation of average workloadsWilco2020/11/18 10:42 AM
                                        role of hand-optimized assembly in multimedia encodersDummond D. Slow2020/11/18 12:06 PM
                                          role of hand-optimized assembly in multimedia encodersdifferent anon2020/11/18 02:27 PM
                                            role of hand-optimized assembly in multimedia encodersDummond D. Slow2020/11/18 03:47 PM
                                              role of hand-optimized assembly in multimedia encodersDummond D. Slow2021/05/18 01:29 PM
                                          role of hand-optimized assembly in multimedia encodersRichardC2020/11/18 04:42 PM
                                          role of hand-optimized assembly in multimedia encodersnone2020/11/19 08:17 AM
                                      SPEC is NOT a representation of average workloadsnone2020/11/18 11:14 AM
                                        SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 12:17 PM
                                      SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 12:03 PM
                                        SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 12:25 PM
                                          SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 01:03 PM
                                            SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 03:57 PM
                                              SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 05:36 PM
                                                SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 05:50 PM
                                                  SPEC is NOT a representation of average workloadsDoug S2020/11/19 10:13 AM
                                                    SPEC is NOT a representation of average workloads-.-2020/11/19 03:34 PM
                                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/19 03:35 PM
                                              SPEC is NOT a representation of average workloadsEtienne Lorrain2020/11/19 05:04 AM
                                                SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/19 06:58 AM
                                SPEC is NOT a representation of average workloadsChester2020/11/18 03:06 PM
                                  about bitratesDummond D. Slow2020/11/18 04:04 PM
                                    about bitratesChester2020/11/19 03:45 PM
                                  SPEC is NOT a representation of average workloadsOok2020/11/18 04:05 PM
                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 04:21 PM
                                  SPEC is NOT a representation of average workloadsNoSpammer2020/11/19 07:48 AM
                              SPEC is NOT a representation of average workloadsAndrei F2020/11/18 08:44 AM
                                SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 08:48 AM
                                  SPEC is NOT a representation of average workloadsAdrian2020/11/18 09:15 AM
                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 09:41 AM
                                      SPEC is NOT a representation of average workloadsAdrian2020/11/18 10:04 AM
                                        SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 10:32 AM
                                          SPEC is NOT a representation of average workloadsAdrian2020/11/18 11:26 AM
                                    SPEC is NOT a representation of average workloadsMaynard Handley2020/11/18 10:22 AM
                                      SPEC is NOT a representation of average workloadsAdrian2020/11/18 11:28 AM
                                  SPEC is NOT a representation of average workloadsAndrei F2020/11/18 09:34 AM
                                    SPEC is NOT a representation of average workloadsDummond D. Slow2020/11/18 10:00 AM
                                    SPEC is NOT a representation of average workloadsChester2020/11/18 03:18 PM
                                    SPEC is NOT a representation of average workloadsJukka Larja2020/11/20 09:03 AM
                                SPEC is NOT a representation of average workloadsChester2020/11/18 03:13 PM
                              SPEC is NOT a representation of average workloadsnone2020/11/18 09:07 AM
                                SPEC is NOT a representation of average workloadsMichael S2020/11/18 02:33 PM
                                  Interesting, thanks! (NT)none2020/11/19 08:03 AM
                            Cinebench is NOT a representation of average workloadsrwessel2020/11/18 08:03 AM
                              Cinebench is NOT a representation of average workloadsDoug S2020/11/18 08:44 AM
                                Cinebench is NOT a representation of average workloadsDummond D. Slow2020/11/18 08:52 AM
                                  Cinebench is NOT a representation of average workloadsDoug S2020/11/18 03:59 PM
                                    Cinebench is NOT a representation of average workloadsDummond D. Slow2020/11/18 04:12 PM
                                      Cinebench is NOT a representation of average workloadsDoug S2020/11/19 10:19 AM
                                        Cinebench is NOT a representation of average workloadsDummond D. Slow2020/11/19 04:03 PM
                                          Cinebench is NOT a representation of average workloadsUngo2020/11/19 09:12 PM
                                            Cinebench is NOT a representation of average workloadsDummond D. Slow2020/11/20 09:45 AM
                                It's not really SMT or adding small coresDummond D. Slow2020/11/18 08:58 AM
                                  It's not really SMT or adding small coresDoug S2020/11/18 04:02 PM
                                    It's not really SMT or adding small coresDummond D. Slow2020/11/18 04:27 PM
                                Cinebench is NOT a representation of average workloadsxyz2020/11/18 01:14 PM
                                  Cinebench is NOT a representation of average workloadsMaynard Handley2020/11/18 01:54 PM
                                    Cinebench is NOT a representation of average workloadsGabriele Svelto2020/11/18 02:41 PM
                                      Cinebench is NOT a representation of average workloadsMaynard Handley2020/11/18 02:52 PM
                                        Cinebench is NOT a representation of average workloadsGabriele Svelto2020/11/18 03:05 PM
                            Cinebench is NOT a representation of average workloadsTJ2020/11/18 12:46 PM
                            SMT shines in IO heavy & commercial DB workloadsxyz2020/11/18 01:05 PM
                            "Average workloads" don't exist (NT)Foo_2020/11/19 03:55 AM
                          Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/18 08:02 AM
                            Apple loses a lot by not having turbo and SMTMaynard Handley2020/11/18 09:37 AM
                              Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/18 09:55 AM
                              Apple loses a lot by not having turbo and SMTDavid Hess2020/11/18 01:12 PM
                                Apple loses a lot by not having turbo and SMTMaynard Handley2020/11/18 02:12 PM
                                  Apple loses a lot by not having turbo and SMTJörn Engel2020/11/18 05:04 PM
                                    Apple loses a lot by not having turbo and SMTanonymou52020/11/18 05:37 PM
                                      Apple loses a lot by not having turbo and SMTJörn Engel2020/11/19 04:28 AM
                                  Apple loses a lot by not having turbo and SMTDavid Hess'2020/11/19 07:25 PM
                          Apple loses a lot by not having turbo and SMTAdrian2020/11/18 08:23 AM
                            Apple loses a lot by not having turbo and SMTgallier22020/11/19 12:21 AM
                              Apple loses a lot by not having turbo and SMTJames2020/11/19 02:22 AM
                                Apple loses a lot by not having turbo and SMTWilco2020/11/19 05:06 AM
                              Apple loses a lot by not having turbo and SMTanonymou52020/11/19 02:34 AM
                                Apple loses a lot by not having turbo and SMTgallier22020/11/19 09:04 AM
                                  big.LITTLE with different ISAsJames2020/11/19 09:41 AM
                                    big.LITTLE with different ISAsgallier22020/11/20 03:36 AM
                                    big.LITTLE with different ISAsanon2020/11/20 01:31 PM
                              Apple loses a lot by not having turbo and SMTAdrian2020/11/19 02:56 AM
                        Apple loses a lot by not having turbo and SMTJon Masters2020/11/18 12:46 PM
                          Apple loses a lot by not having turbo and SMTanonymou52020/11/18 03:41 PM
                          Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/18 04:17 PM
                            Apple loses a lot by not having turbo and SMTMaynard Handley2020/11/18 05:46 PM
                              Apple loses a lot by not having turbo and SMTJon Masters2020/11/19 12:31 AM
                                Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/19 07:01 AM
                              Apple loses a lot by not having turbo and SMTAdrian2020/11/19 02:50 AM
                                Apple loses a lot by not having turbo and SMTAdrian2020/11/19 03:10 AM
                                Apple loses a lot by not having turbo and SMTMaynard Handley2020/11/19 10:13 AM
                                  Apple loses a lot by not having turbo and SMTDummond D. Slow2020/11/19 04:10 PM
                        Apple loses a lot by not having turbo and SMTjuanrga2020/11/19 02:49 AM
                    re: "scaling"sr2020/11/17 12:39 PM
                      re: "scaling"Adrian2020/11/17 01:41 PM
                        re: "scaling"Adrian2020/11/17 01:52 PM
                          re: "scaling"Chester2020/11/17 06:29 PM
                  re: "scaling"anonymou52020/11/16 08:18 PM
                    re: "scaling"Maynard Handley2020/11/16 08:44 PM
        And the NZ'ers are first to deliver cinebench scoresDummond D. Slow2020/11/16 05:12 PM
          And the NZ'ers are first to deliver cinebench scoresMaynard Handley2020/11/16 05:31 PM
            And the NZ'ers are first to deliver cinebench scoresDummond D. Slow2020/11/16 05:46 PM
        And the NZ'ers are first to deliver cinebench scoresMaynard Handley2020/11/16 07:04 PM
          And the NZ'ers are first to deliver cinebench scoresDummond D. Slow2020/11/16 07:28 PM
  1st round of M1 GPU benchmarksRayla2020/11/16 04:16 PM
    1st round of M1 GPU benchmarksChester2020/11/16 09:17 PM
  Phoronix Mac mini M1 benchanon52020/11/20 11:51 AM
    Phoronix Mac mini M1 benchPer Hesselgren2020/11/24 10:04 AM
      Phoronix Mac mini M1 benchPaul2020/11/25 03:08 AM
        Phoronix Mac mini M1 benchPaul2020/11/25 03:12 AM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?