AMD Zen with ARM front-end

By: Linus Torvalds (torvalds.delete@this.linux-foundation.org),
Room: Moderated Discussions
none (none.delete@this.none.com) on June 10, 2020 6:47 am wrote:
>
> Their performance is "low" because from the ISA point of view the differences cost a lot to
> translate.

No.

Been there, done that.

Their performance is low because outside of benchmarks, repeat rates are often in the tens or hundreds.

Making SW translation overhead ludicrously high, even when you don't any big ISA differences.

Your translation caches would need to be persistent and absolutely enormous to overcome that simple basic issue, and then you'd need cache lookup and coherency logic that is much more expensive than just doing the hardware.

You can't win.

You can't even break even.

The sad part is how SW JIT's generally don't look particularly great even in benchmarks. And see above about how those are the only situation where they could effectively work fairly well in the first place.

In the spirit of the times, "cold code matters".

A lot.

Amdahl hasn't gone away, and if you're 100x worse on cold code (because either JIT overhead or not translating it - doesn't matter), then even if only 1% of the code you run is cold...

So give it up, people.

A JIT is not a replacement for hardware. Never will be.

And btw, don't get me wrong. That statement doesn't make JIT's useless or evil. When I say "A JIT is not a replacement for hardware" I mean exactly that, and nothing else.

JITs are great, but they are complementary to great hardware, not replacements for it.

If you want to run legacy code or scripting languages or whatever, and performance isn't your primary issue, a JIT is absolutely the way to go.

So using a JIT to still run programs for another architecture is fine, as long as it's not the primary goal of the new hardware.

Because you shouldn't fool yourself. It will be relatively slow. A JIT is simply fundamentally not the way to beat HW, and it's not a way to beat statically compiled code.

A JIT is a way to get flexibility that may not be reasonable to do in hardware (or in compiled software, for that matter - some languages and problem sets simply have dynamic features that are not great for static compilations and run-time generation can be a great way to "fix" a dynamic problem with a particular solution).

But performance on a static problem - whether that problem be a fixed ISA or some static code base - is not their strong point.

And that's pretty darn fundamental.


Linus
< Previous Post in ThreadNext Post in Thread >
Thread (265 posts)
TopicPosted ByPosted
AMD Zen with ARM front-endPaul
  AMD Zen with ARM front-endAndrew Clough
    x86 vs ARM memory orderingAnon
      x86 vs ARM memory orderingBrendan
        x86 vs ARM memory orderingAnon
          x86 vs ARM memory orderingnone
            x86 vs ARM memory orderingBrett
        x86 vs ARM memory orderingFoo_
          x86 vs ARM memory orderingTravis Downs
            x86 vs ARM memory orderingMichael S
              x86 vs ARM memory orderinganon2
                x86 vs ARM memory orderingMichael S
                  x86 vs ARM memory orderingMaynard Handley
                    x86 vs ARM memory orderinganon2
                    x86 vs ARM memory orderingMichael S
                      x86 vs ARM memory orderingWilco
                        x86 vs ARM memory orderingMichael S
                          x86 vs ARM memory orderingWilco
                            x86 vs ARM memory orderinganon2
                              x86 vs ARM memory orderingAnon
                                x86 vs ARM memory orderingWilco
                                  x86 vs ARM memory orderingMichael S
                                    x86 vs ARM memory orderingnone
                                      x86 vs ARM memory orderingWilco
                                        x86 vs ARM memory orderingTravis Downs
                                      x86 vs ARM memory orderingTravis Downs
                                        x86 vs ARM memory orderingnone
                                          x86 vs ARM memory orderingTravis Downs
                                            x86 vs ARM memory orderingnone
                                              x86 vs ARM memory orderingTravis Downs
                                                x86 vs ARM memory orderingWilco Dijkstra
                                                  x86 vs ARM memory orderingTravis Downs
                                                    x86 vs ARM memory orderingWilco Dijkstra
                                                      x86 vs ARM memory orderingChester
                                                        x86 vs ARM memory orderingMaynard Handley
                                                          x86 vs ARM memory orderingnone
                                                            x86 vs ARM memory orderingMaynard Handley
                                                              x86 vs ARM memory orderingnone
                                                              x86 vs ARM memory orderingKonrad Schwarz
                                                      x86 vs ARM memory orderingTravis Downs
                                                        x86 vs ARM memory orderingWilco Dijkstra
                                                          Thanks, off-by-one error on my part (NT)Travis Downs
                                    x86 vs ARM memory orderingWilco
                                      x86 vs ARM memory orderingTravis Downs
                                    x86 vs ARM memory orderingTravis Downs
                                      x86 vs ARM memory orderingWilco
                                        x86 vs ARM memory orderinganon2
                                          x86 vs ARM memory orderingTravis Downs
                                            x86 vs ARM memory orderinganon2
                                              x86 vs ARM memory orderingTravis Downs
                                            x86 vs ARM memory orderingMichael S
                                              x86 vs ARM memory orderingTravis Downs
                                                x86 vs ARM memory orderingTravis Downs
                                                x86 vs ARM memory orderingMichael S
                                                  x86 vs ARM memory orderingTravis Downs
                                                    x86 vs ARM memory orderingMichael S
                                                      x86 vs ARM memory orderingTravis Downs
                                                        x86 vs ARM memory orderingWilco Dijkstra
                                                          Thanks! (NT)Travis Downs
                                                        x86 vs ARM memory orderingChester
                                                          x86 vs ARM memory orderingTravis Downs
                                                            x86 vs ARM memory orderingChester
                                                        x86 vs ARM memory orderingMichael S
                                                          x86 vs ARM memory orderingTravis Downs
                                                            x86 vs ARM memory orderingMichael S
                                                              x86 vs ARM memory orderingAnon
                                                                x86 vs ARM memory orderingJukka Larja
                                                                  x86 vs ARM memory orderingMichael S
                                                                    x86 vs ARM memory orderingMichael S
                                                                      x86 vs ARM memory orderingJukka Larja
                                                                        x86 vs ARM memory orderingMichael S
                                                              Coffee Lake resultsMichael S
                                                                Coffee Lake resultsTravis Downs
                                                                  nevermind, saw the SP and LP result files (NT)Travis Downs
                                                                Coffee Lake resultsTravis Downs
                                                                  Coffee Lake resultsMichael S
                                                                    Coffee Lake resultsTravis Downs
                                                x86 vs ARM memory orderingDavid Kanter
                                                  x86 vs ARM memory orderingTravis Downs
                                                    x86 vs ARM memory orderingTravis Downs
                                        x86 vs ARM memory orderingMichael S
                                        x86 vs ARM memory orderingTravis Downs
                                x86 vs ARM memory orderinganon2
                                  x86 vs ARM memory orderingEtienne
                                  x86 vs ARM memory orderinganon
                                    x86 vs ARM memory orderinganon2
                                  x86 vs ARM memory orderingTravis Downs
                        x86 vs ARM memory orderingEtienne
                          x86 vs ARM memory orderinganon
        x86 vs ARM memory orderingAndrew Clough
          x86 vs ARM memory orderingAnon
            x86 vs ARM memory orderingAndrew Clough
  AMD Zen with ARM front-endGroo
    You mean K12? (NT)Anon
      You mean K12?juanrga
  AMD Zen with ARM front-endUnmaskedUnderflow
    AMD Zen with ARM front-endnone
      AMD Zen with ARM front-endLinus Torvalds
        AMD Zen with ARM front-endEtienne
          AMD Zen with ARM front-endnone
            AMD Zen with ARM front-endMichael S
              AMD Zen with ARM front-endnone
          AMD Zen with ARM front-endMichael S
            AMD Zen with ARM front-endEtienne
              AMD Zen with ARM front-endnone
                AMD Zen with ARM front-endEtienne
                  AMD Zen with ARM front-endnone
                    AMD Zen with ARM front-endMaynard Handley
                      AMD Zen with ARM front-endnone
                  AMD Zen with ARM front-endDoug S
            AMD Zen with ARM front-endFoo_
            AMD Zen with ARM front-endMaynard Handley
          AMD Zen with ARM front-endMaynard Handley
            AMD Zen with ARM front-endLinus Torvalds
              AMD Zen with ARM front-endMaynard Handley
                AMD Zen with ARM front-endLinus B Torvalds
                  AMD Zen with ARM front-endKira
                  AMD Zen with ARM front-endRonald Maas
                    AMD Zen with ARM front-endDoug S
                    AMD Zen with ARM front-endJacob Marley
                  AMD Zen with ARM front-endFoo_
                  AMD Zen with ARM front-endMaynard Handley
                    AMD Zen with ARM front-endgallier2
                  ARM with x86 front end and JIT?wumpus
                    ARM custom instructions for (temporary) JIT support?Mark Roulo
                      ARM custom instructions for (temporary) JIT support?never_released
                        ARM custom instructions for (temporary) JIT support?anon
                        ARM custom instructions for (temporary) JIT support?Linus Torvalds
                          ARM custom instructions for (temporary) JIT support?Doug S
                            ARM custom instructions for (temporary) JIT support?pgerassi
                              ARM custom instructions for (temporary) JIT support?Doug S
                                ARM custom instructions for (temporary) JIT support?pgerassi
                                  ARM custom instructions for (temporary) JIT support?nobody in particular
                                    ARM custom instructions for (temporary) JIT support?pgerassi
                                      ARM custom instructions for (temporary) JIT support?nobody in particular
                                      ARM custom instructions for (temporary) JIT support?Maynard Handley
                                  ARM custom instructions for (temporary) JIT support?anon
                                    ARM custom instructions for (temporary) JIT support?browser
                            ARM custom instructions for (temporary) JIT support?incorrector
                          ARM custom instructions for (temporary) JIT support?NoSpammer
                            ARM custom instructions for (temporary) JIT support?Linus Torvalds
                              ARM custom instructions for (temporary) JIT support?sr
                                ARM custom instructions for (temporary) JIT support?Wilco Dijkstra
                                  ARM custom instructions for (temporary) JIT support?Chester
                                    Apple x86->ARM binary translation implementationDummond D. Slow
                                      Apple x86->ARM binary translation implementationAnon3
                                        Apple x86->ARM binary translation implementationDummond D. Slow
                                          Apple x86->ARM binary translation implementationMaynard Handley
                                            Apple x86->ARM binary translation implementationDummond D. Slow
                                    ARM custom instructions for (temporary) JIT support?Wilco Dijkstra
                                      ARM custom instructions for (temporary) JIT support?Chester
                              ARM custom instructions for (temporary) JIT support?Ronald Maas
                                ARM custom instructions for (temporary) JIT support?Anon
                              ARM custom instructions for (temporary) JIT support?John Yates
                                ARM custom instructions for (temporary) JIT support?anonymou5
                                ARM custom instructions for (temporary) JIT support?wumpus
                                  ARM custom instructions for (temporary) JIT support?Mark Roulo
                                    ARM custom instructions for (temporary) JIT support?Doug S
                                      ARM custom instructions for (temporary) JIT support?wumpus
                                        ARM custom instructions for (temporary) JIT support?Linus Torvalds
                                          developers are a big marketDavid Kanter
                                            developers are a big marketRichardC
                                              developers are a big marketMichael S
                                              developers are a big marketwumpus
                                                developers are a big marketDoug S
                                            creators are a big marketGeert Bosch
                                              creators are a big marketAnon
                                              creators are a big marketnone
                                                creators are a big marketWilco Dijkstra
                                              creators are a big marketDummond D. Slow
                                              creators are a big marketMichael S
                                                creators are a big marketwumpus
                                              creators are a big marketRichardC
                                              creators are a big marketDoug S
                                                "It's going to be slower!"nobody in particular
                                                  "It's going to be slower!"Doug S
                                                  "It's going to be slower!"nobody in particular
                                                  "It's going to be slower!"Linus Torvalds
                                                    "It's going to be slower!"Ronald Maas
                                                      "It's going to be slower!"Doug S
                                                    "It's going to be slower!"Dummond D. Slow
                                                creators are a big marketDummond D. Slow
                              ARM custom instructions for (temporary) JIT support?NoSpammer
                                ARM custom instructions for (temporary) JIT support?Doug S
                                  ARM custom instructions for (temporary) JIT support?Linus Torvalds
                                    ARM custom instructions for (temporary) JIT support?Doug S
                                    ARM custom instructions for (temporary) JIT support?sr
                                      ARM custom instructions for (temporary) JIT support?Dummond D. Slow
                                        BitcodeMark Roulo
                                      ARM custom instructions for (temporary) JIT support?Linus Torvalds
                                        ARM custom instructions for (temporary) JIT support?Doug S
                                          ARM custom instructions for (temporary) JIT support?anon2
                                            ARM custom instructions for (temporary) JIT support?Anon3
                                              ARM custom instructions for (temporary) JIT support?anon2
                                                User-mode BTDavid Kanter
                                                  User-mode BTAnon3
                                          ARM custom instructions for (temporary) JIT support?rwessel
                                        ARM custom instructions for (temporary) JIT support?random-bystander-with-a-mac
                                          ARM custom instructions for (temporary) JIT support?Doug S
                                            ARM custom instructions for (temporary) JIT support?Maynard Handley
                                              ARM custom instructions for (temporary) JIT support?anon2
                                          try "time find ~/ | wc -l"anonymous2
                                            try "time find ~/ | wc -l"Travis Downs
                                              try "time find ~/ | wc -l"Michael S
                                                try "time find ~/ | wc -l"Travis Downs
                                                  try "time find ~/ | wc -l"Jukka Larja
                    ARM with x86 front end and JIT?rwessel
                    ARM with x86 front end and JIT?rjs
                AMD Zen with ARM front-endDoug S
                AMD Zen with ARM front-endAnon
                  AMD Zen with ARM front-endJames
                    AMD Zen with ARM front-endDoug S
              AMD Zen with ARM front-endCharles
                AMD Zen with ARM front-endLinus Torvalds
                  AMD Zen with ARM front-endCharles
                    AMD Zen with ARM front-endWilco
                      AMD Zen with ARM front-endAnon
                      AMD Zen with ARM front-endLinus Torvalds
                        AMD Zen with ARM front-endMaynard Handley
                          AMD Zen with ARM front-endLinus Torvalds
                            Using threads complicated?Jouni Osmala
                              Using threads complicated?Foo_
                                Using threads complicated?Dan Fay
                                  Using threads complicated?Foo_
                                Using threads complicated?Maynard Handley
                                  Using threads complicated?Foo_
                                    Using threads complicated?Maynard Handley
                                      Using threads complicated?Foo_
                            AMD Zen with ARM front-endMaynard Handley
                              AMD Zen with ARM front-endDoug S
                              AMD Zen with ARM front-endAnon
                              AMD Zen with ARM front-endJukka Larja
                                AMD Zen with ARM front-endMaynard Handley
                                  AMD Zen with ARM front-endLinus Torvalds
                                    AMD Zen with ARM front-endanonymou5
                                      AMD Zen with ARM front-endLinus Torvalds
                                        AMD Zen with ARM front-endanonymou5
                                    AMD Zen with ARM front-endJukka Larja
                                      AMD Zen with ARM front-endMaynard Handley
                            AMD Zen with ARM front-endBjörn Ragnar Björnsson
                          AMD Zen with ARM front-endJS
                            AMD Zen with ARM front-endAnon
                              AMD Zen with ARM front-endDoug S
                                Unrelated concepts (NT)Anon
                            AMD Zen with ARM front-endDoug S
                              AMD Zen with ARM front-endSimon Farnsworth
                                AMD Zen with ARM front-endLinus Torvalds
                              AMD Zen with ARM front-endFoo_
                    AMD Zen with ARM front-endLinus Torvalds
          AMD Zen with ARM front-endDoug S
    AMD Zen with ARM front-endvvid
      AMD Zen with ARM front-endMichael S
        AMD Zen with ARM front-endnone
          AMD Zen with ARM front-endMichael S
      AMD Zen with ARM front-endAnon
        AMD Zen with ARM front-endvvid
    AMD Zen with ARM front-endDavid Kanter
      AMD Zen with ARM front-endUnmaskedUnderflow
        AMD Zen with ARM front-endAnon
          AMD Zen with ARM front-endDoug S
            AMD Zen with ARM front-endAnon
              AMD Zen with ARM front-endDoug S
    AMD Zen with ARM front-endIntelUser2000
      AMD Zen with ARM front-endanonymou5
        Sounds like you're making things up (NT)Michael S