Slide 1

Slide 1 text

The state of ARM® A 64bit view of what does/doesn't work Andrew Wafaa [email protected]/[email protected]

Slide 2

Slide 2 text

2 I am ... • Senior Principal Engineer, Open Source

Slide 3

Slide 3 text

3 I am ... • Involved with openSUSE for a long time

Slide 4

Slide 4 text

4 I am ... • Known to have questionable fashion choices

Slide 5

Slide 5 text

5 I am ... • Known to have questionable fashion choices

Slide 6

Slide 6 text

6 I am ... • Known to have questionable fashion choices

Slide 7

Slide 7 text

7 I am ... • European

Slide 8

Slide 8 text

What am I going to talk about?

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

What is AArch64?

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

Software Status

Slide 13

Slide 13 text

13 Mostly Working • Almost everything builds

Slide 14

Slide 14 text

14 “If it builds, it’s done!” - Anonymous build engineer

Slide 15

Slide 15 text

15 AArch64 vs x86_64

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

17 Does it run? • If it has integrated unit tests, then it should run • Much has not been tested • It may not run optimally

Slide 18

Slide 18 text

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)

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

20 Ported but not Optimized • Lua, R, Rust, GoLang, Julia, Perl6, Pascal (fpc), Javascript (Spidermonkey/Ionmonkey), Mono, OpenCV, LibreOffice

Slide 21

Slide 21 text

21 “Removing is often better than ‘fixing’ ” - Wookey • 1000 bits of assembler: ‒ https://wiki.linaro.org/Platform/DevPlatform/ArmSoftwareLi st ‒ http://performance.linaro.org/

Slide 22

Slide 22 text

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

Slide 23

Slide 23 text

Hardware Status

Slide 24

Slide 24 text

24 No space, no problem • Runabove from OVH ‒ runabove.com using ThunderX • OBS ‒ Mix of Xgene1, Seattle A1100

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

26 How much for your blinky lights? • $10,000+ ‒ HP Moonshot

Slide 27

Slide 27 text

27 How much for your blinky lights? • $5,000+ ‒ Gigabyte H270

Slide 28

Slide 28 text

28 How much for your blinky lights? • $3,000 ‒ Gigabyte R270

Slide 29

Slide 29 text

29 How much for your blinky lights? • $2,500 ‒ SoftIron Overdrive 3000

Slide 30

Slide 30 text

30 How much for your blinky lights? • $2,500 ‒ Applied Micro XC1

Slide 31

Slide 31 text

31 How much for your blinky lights? • $2,500 ‒ Gigabyte R150

Slide 32

Slide 32 text

32 How much for your blinky lights? • $2,000 ‒ Gigabyte R120

Slide 33

Slide 33 text

33 How much for your blinky lights? • $1,000 ‒ Gigabyte MP30

Slide 34

Slide 34 text

34 How much for your blinky lights? • $600 ‒ SoftIron Overdrive 1000

Slide 35

Slide 35 text

35 How much for your blinky lights? • $300 ‒ 96Boards Cello

Slide 36

Slide 36 text

36 How much for your blinky lights? • $75 - $99 ‒ 96Boards HiKey (1G/2G)

Slide 37

Slide 37 text

37 How much for your blinky lights? • $75 ‒ 96Boards Dragonboard 410C

Slide 38

Slide 38 text

38 How much for your blinky lights? • $35 ‒ RaspberryPi 3

Slide 39

Slide 39 text

39 How much for your blinky lights? • $15 - $30 ‒ Pine64 (0.5G/1G)

Slide 40

Slide 40 text

Benchmarking

Slide 41

Slide 41 text

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!

Slide 42

Slide 42 text

Questions?

Slide 43

Slide 43 text

Thank you. Join the conversation, contribute & have a lot of fun! www.opensuse.org

Slide 44

Slide 44 text

44 Have a Lot of Fun, and Join Us At: www.opensuse.org

Slide 45

Slide 45 text

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/