Upgrade to Pro — share decks privately, control downloads, hide ads and more …

The state of ARM - a 64bit view of what does/do...

The state of ARM - a 64bit view of what does/doesn't work State of the Union on ARM - the software, the hardware and anything in between

The AArch64 port is now in pretty good shape with most things ported and built. However we know that there is plenty of software that is not optimised and some may not actually work at all. Please come along and moan about anything you have found which doesn't work as well on AArch64 as it does on x86. We (Linaro, ARM and openSUSE) want your feedback on where to direct effort next.

This talk will cover the current status of the port with both and upstream and openSUSE specific view, and crucially hardware availability. Only a few things are completely missing, but we know that a lot of software is using the basic 'fallback support' where other architectures have specific optimisations. Some stuff is probably building, but not actually working right. We are keen to fix things that are actively getting in the way of using AArch64 in real systems, but to do that we need feedback from users on what to look at next as we move from mostly enablement to mostly optimisation. GCC, OpenJDK, & LLVM are known to be in good shape, but there is a pile of other stuff that probably isn't. It's very hard to test 'all the software in the world', so please tell us about stuff you've noticed not working well, or incredibly slowly, or that you suspect might be a problem and need work.

Andrew Wafaa

June 24, 2016
Tweet

More Decks by Andrew Wafaa

Other Decks in Technology

Transcript

  1. 9 Topics • What is AArch64? ‒ AKA ARM64 •

    Software Status ‒ What’s built, known to work, optimized, broken, missing • Hardware Status ‒ What can you run your software on • How well does it all work ‒ Benchmarking • Next Steps
  2. 11 What is AArch64 • Known in some parts of

    the world as ARM64 • Part of the ARMv8 architecture • Designed from the ground up • Cortex-A53/57/72
  3. 16 Mostly done • The obvious things people care about

    are done • Number of things that need porting are much smaller ‒ Those that need porting are harder to port
  4. 17 Does it run? • If it has integrated unit

    tests, then it should run • Much has not been tested • It may not run optimally
  5. 18 What’s been optimized? • Languages ‒ C, C++, Java

    (OpenJDK 8 & 9), Python, Perl, PHP6, Ocaml, Javascript (v8), Haskell (ghc), Lisp, • Compilers ‒ GCC & LLVM • Kernel ‒ Raid6, crypto • Applications ‒ OpenSSL, Ceph, Hadoop, Xen (much smaller codebase)
  6. 19 What’s the difference between optimized and non-optimized? • Simple

    example from our friends at Debian using ‘botch’ • Generic ocaml – 4hrs 52m • Native ocaml – 1hr 15m • X86_64 – 37m
  7. 20 Ported but not Optimized • Lua, R, Rust, GoLang,

    Julia, Perl6, Pascal (fpc), Javascript (Spidermonkey/Ionmonkey), Mono, OpenCV, LibreOffice
  8. 21 “Removing is often better than ‘fixing’ ” - Wookey

    • 1000 bits of assembler: ‒ https://wiki.linaro.org/Platform/DevPlatform/ArmSoftwareLi st ‒ http://performance.linaro.org/
  9. 22 What’s missing? • LuaJit to be ported – being

    worked on ‒ Linaro working with upstream • GoLang SSA backend – being worked on ‒ Expected in GoLang 1.8 • Mono has been ported but not packaged ‒ Most of the unresolvable list are Mono packages
  10. 24 No space, no problem • Runabove from OVH ‒

    runabove.com using ThunderX • OBS ‒ Mix of Xgene1, Seattle A1100
  11. 25 I have space and I like blinky lights •

    HP Moonshot • ARM Juno • APM C1 • SoftIron Overdrive 1000, 3000 • Gigabyte MP30, D120, H270, R120, R150, R270 • 96 Boards, HiKey, Dragonboard, Cello • Pine64 • RaspberryPi 3
  12. 36 How much for your blinky lights? • $75 -

    $99 ‒ 96Boards HiKey (1G/2G)
  13. 41 Benchmarking is difficult • Too easy to game •

    Need roughly equivalent platforms • Need to look for changes over a period of time • Need to pick a real & common metric • If you know of good benchmarks let me know!
  14. General Disclaimer This document is not to be construed as

    a promise by any participating organisation to develop, deliver, or market a product. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. openSUSE makes no representations or warranties with respect to the contents of this document, and specifically disclaims any express or implied warranties of merchantability or fitness for any particular purpose. The development, release, and timing of features or functionality described for openSUSE products remains at the sole discretion of openSUSE. Further, openSUSE reserves the right to revise this document and to make changes to its content, at any time, without obligation to notify any person or entity of such revisions or changes. All openSUSE marks referenced in this presentation are trademarks or registered trademarks of SUSE LLC, in the United States and other countries. All third-party trademarks are the property of their respective owners. License This slide deck is licensed under the Creative Commons Attribution-ShareAlike 4.0 International license. It can be shared and adapted for any purpose (even commercially) as long as Attribution is given and any derivative work is distributed under the same license. Details can be found at https://creativecommons.org/licenses/by-sa/4.0/ Credits Template Richard Brown [email protected] Design & Inspiration openSUSE Design Team http://opensuse.github.io/branding- guidelines/