General Code Compile - Who's it For?

As I had mentioned, one big advantage of having an Arm system like this is the fact that it enables your native software development, without having to worry about cross-compiling code and all of the kerfuffle that that entrails.

For me personally, one issue had been the fact that we need to compile our SPEC test suite for Arm architectures, which isn’t all that evident when you don’t have a native machine to test things on.

Still, I had been able to configure a proper cross-compile setup- in this case GCC9 on an x86 machine (AMD Ryzen 3700X) cross-compiling for an AArch64 target, versus natively compiling the same target with the same compiler on the eMAG workstation.

Native vs Cross-Compile (Andrei's SPEC setup)

The first thing I noted when compiling things on the eMAG system, is that it took quite an enormous amount of time for linking together the libraries and executables. Unfortunately, this isn’t something that can be parallelised, and it ends up being a mostly single-thread performance bottlenecked part of software development.

Although the eMAG system does have more processing power than your average consumer system, it’s unlikely for this to actually materialise in the average development environment due to the massive singe-threaded performance disadvantage of the system.

In my case, my personal desktop machine outperformed the eMAG system in this one use-case by a factor of >2x.

My personal view on this is that if I were to be trying to port a piece of software to Arm, assuming that the act of cross-compiling itself isn’t an inherent issue, then I would probably prefer to simply cross-compile things on my regular x86 machine and deploy and test it on a lower-end embedded Arm board.

The only real audience who could rationalise the system performance deficit for its architectural flexibility would be developers who actually work on hardware enablement – using the SBSA system to its fullest for things like Arm driver development and making full use of the peripherals and PCIe capabilities of the system.

SPEC2017: OK-ish MT Performance Conclusion - All Eyes on an Altra System
Comments Locked

35 Comments

View All Comments

  • vFunct - Friday, May 22, 2020 - link

    They really need ARM systems that are a little higher than Raspberry-PI but a little lower than x86, perhaps in the $100-$200 price range, for personal network appliances.
  • Death666Angel - Friday, May 22, 2020 - link

    I'd be interested in what you would use that one for? And why exactly those specs? Lower power than x86 at "good enough" performance levels? If that is the base, why not do an undervolted / down clocked x86 build? Ryzen can get to some pretty great voltage/frequency levels. :D Or is it the ATX form factor as well? That one is a bit trickier, either go with a 12/19V native motherboard or get a nice pico PSU with ATX cables and a 12/19V input. :) Unless I'm way off base in my assumptions. :D
  • lmcd - Friday, May 22, 2020 - link

    I haven't used an RPi 4 yet but I'd be willing to bet the 4GB variant would meet vFunct's needs.
  • vFunct - Friday, May 22, 2020 - link

    Network file server with ZFS, Or, a mail server.

    Need storage & memory, but don't need intense CPU
  • vFunct - Friday, May 22, 2020 - link

    Network file server with ZFS, Or, a mail server.

    Need storage & memory, but don't need intense CPU.
  • Wilco1 - Friday, May 22, 2020 - link

    It's worth pointing out for future reviews that GCC 10 is out and shows a 10.5% performance gain on Neoverse N1: https://community.arm.com/developer/tools-software...
  • SarahKerrigan - Friday, May 22, 2020 - link

    Doesn't mean much for eMag, though.
  • Wilco1 - Saturday, May 23, 2020 - link

    Indeed, eMag is quite old, so it won't benefit nearly as much as the latest microarchitectures.
  • GreenReaper - Sunday, May 24, 2020 - link

    The graph at the end suggests that 10.0 was a significant regression for many tests, though, so that should probably be taken with a pinch of salt. <^_^>

    There are some tests (mostly vectorization-related) where it's really helped, though.
  • mrvco - Friday, May 22, 2020 - link

    Out of curiosity, how would the performance of the eMag compare to a typical single-board ARM computer? My reference point would be the RPi3 or 4, but there seem to be a variety of others ranging up to a couple hundred dollars with (allegedly) 'better' performance than the RPi.

Log in

Don't have an account? Sign up now