# The future is ARM's?

**URL:** <https://discourse.julialang.org/t/the-future-is-arms/41893>\
**Category:** Internals & Design\
**Created:** [June 22, 2020, 9:01pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893 "2020-06-22T21:01:49Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [June 22, 2020, 9:01pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/1 "2020-06-22T21:01:49Z")

</div>

> **[Apple is switching Macs to its own processors starting later this year](https://www.theverge.com/2020/6/22/21295475/apple-mac-processors-arm-silicon-chips-wwdc-2020)**
>
> Apple’s first ARM-based Mac will be available later this year

we all knew this would be coming more or less but Apple is jumping to ARM fully this time, which potentially means in \< 5 years most macOS devices will be running ARM; according to the tier of support, ARMv8 is tier 1 does that mean everything pure-Julia would run out of the box and does not need special treatment from author’s side is that correct?

I personally don’t have an ARMv8 device so it would be great to hear from the community who use / work on ARM everyday about the experience (and the lack of).

---

<div class="post-metadata">

**Author:** ![Keno](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/keno/32/285_2.png) [@Keno](https://discourse.julialang.org/u/Keno)\
**Post date:** [June 22, 2020, 9:05pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/2 "2020-06-22T21:05:01Z")

</div>

Julia works well on AArch64, but there’ll likely be macOS specific changes needed to make everything work. We’re looking into getting one of the devkits.

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [June 22, 2020, 10:07pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/3 "2020-06-22T22:07:04Z")

</div>

Do we have Julia builds that run natively on the Surface Pro X, the Microsoft machine that uses their own custom ARM chip? Would be nice to get native Julia builds for that platform as well. VS Code is going to ship with a native build very soon, so if we had Julia as well, it might also make for a nice dev machine.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [June 27, 2020, 10:43am UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/4 "2020-06-27T10:43:07Z")

</div>

I really hope that they pull this off smoothly, demonstrating (again) that one can just switch CPU architectures with no major problems. That should open up a new era of competition, benefiting all consumers and invigorating the industry.

Hopefully the future is generally favorable to RISC CPUs, not necessarily exclusively (but of course including) ARM. Specifically, RISC-V is something to keep an eye on.

---

<div class="post-metadata">

**Author:** ![virtualgraham](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/virtualgraham/32/15200_2.png) [@virtualgraham](https://discourse.julialang.org/u/virtualgraham)\
**Post date:** [June 27, 2020, 11:46am UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/5 "2020-06-27T11:46:04Z")

</div>

Ive been using Julia on AWS Graviton processors for a while. I have not had any issues. Very happy.

---

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [June 27, 2020, 1:51pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/6 "2020-06-27T13:51:57Z")

</div>

ARM is top of the Top500. It would be awesome to run Julia on there…

> **[Fugaku (supercomputer)](https://en.wikipedia.org/wiki/Fugaku_(supercomputer))**
>
> Fugaku (Japanese: 富岳) is a petascale supercomputer at the Riken Center for Computational Science in Kobe, Japan. It started development in 2014 as the successor to the K computer and made its debut in 2020. It is named after an alternative name for Mount Fuji. 
> It became the fastest supercomputer in the world in the June 2020 TOP500 list as well as becoming the first ARM architecture-based computer to achieve this. At this time it also achieved 1.42 exaFLOPS using the mixed fp16/fp64 precision H...

---

<div class="post-metadata">

**Author:** ![jling](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jling/32/212909_2.png) [@jling](https://discourse.julialang.org/u/jling)\
**Post date:** [June 27, 2020, 2:37pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/7 "2020-06-27T14:37:09Z")

</div>

it would be beautiful to run free software on a free OS that runs on top of an open source CPU

---

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [June 28, 2020, 11:46am UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/8 "2020-06-28T11:46:02Z")

</div>

A kind answer from Prof Matsuoka.  
We have a challenge here!

> <https://twitter.com/ProfMatsuoka/status/1277175862199115777>
>
> @HPCJohn@mast.hpc.social @HpcJohn

---

<div class="post-metadata">

**Author:** ![Elrod](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/elrod/32/22461_2.png) [@Elrod](https://discourse.julialang.org/u/Elrod)\
**Post date:** [June 28, 2020, 2:00pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/9 "2020-06-28T14:00:55Z")

</div>

> [@johnh](#):
>
> It would be awesome to run Julia on there…

Those CPUs sound incredible. I’d love to get my hands on something like it for the desktop.

SVE2 (scalable vector extensions 2) features 32 vector registers (allowed to be 128-2048 bits; that super compute has 512-bit vectors), no penalty for unaligned loads, faster gathers than AVX512 when loaded elements belong to the same 128-bit segments, bit masks/predicates to mask operations…

I haven’t been able to play around with them at all, but it sounds even better for SIMD-lovers than AVX512.

I guess

```julia
using LLVM
features = split(unsafe_string(LLVM.API.LLVMGetHostCPUFeatures()), ',')

```

would be the best way to query an ARM CPU for features.

---

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [June 28, 2020, 6:09pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/10 "2020-06-28T18:09:23Z")

</div>

Regarding querying for features try archspec

[https://github.com/archspec/archspec](https://github.com/archspec/archspec)

---

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [June 28, 2020, 6:27pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/11 "2020-06-28T18:27:44Z")

</div>

Sorry - your method is elegant and is native Julia.  
I just wanted to point out this interesting package.

---

<div class="post-metadata">

**Author:** ![yuyichao](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yuyichao/32/20_2.png) [@yuyichao](https://discourse.julialang.org/u/yuyichao)\
**Post date:** [June 29, 2020, 2:59am UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/12 "2020-06-29T02:59:37Z")

</div>

BTW, a64fx have SVE, not SVE2. The max vector length is 1024bit, though I don’t know what the hardware implements.

---

<div class="post-metadata">

**Author:** ![robsmith11](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/robsmith11/32/29641_2.png) [@robsmith11](https://discourse.julialang.org/u/robsmith11)\
**Post date:** [June 29, 2020, 4:40am UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/13 "2020-06-29T04:40:40Z")

</div>

A 2U form factor on sale for $40K:

> **[HPC Systems Special Offer: Two A64FX Nodes in a 2U for $40k](https://www.anandtech.com/show/15885/hpc-systems-special-offer-two-a64fx-nodes-in-a-2u-for-40k)**

---

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [June 30, 2020, 8:12am UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/14 "2020-06-30T08:12:35Z")

</div>

Ooooh… that does look interesting…

---

<div class="post-metadata">

**Author:** ![ozmaden](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ozmaden/32/14438_2.png) [@ozmaden](https://discourse.julialang.org/u/ozmaden)\
**Post date:** [June 30, 2020, 9:01am UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/15 "2020-06-30T09:01:36Z")

</div>

I am developing tools for GNSS Signal Processing on the Nvidia Jetson plattform. These devices usually have some kind of a Nvidia Tegra CPU (ARMv8).

I must say that most things work well right out of the package. The headaches begin when the code has been written to use performance enhancing expressions/macros. These usually take advantage of some low-level instructions that simply don’t exist on ARM or are defined in some other way. So get ready to see your terminal filled with errors 🙂

In the long term I am interested too see how modules and packages get translated into this new world of ARM and Intel/AMD coexistence.

---

<div class="post-metadata">

**Author:** ![avik](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/avik/32/17_2.png) [@avik](https://discourse.julialang.org/u/avik)\
**Post date:** [June 30, 2020, 9:05am UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/16 "2020-06-30T09:05:10Z")

</div>

This is interesting. I’m sure many package authors would be interested in fixing these, so please do file issues. Most developers do not use these architectures, so it’s very useful to see issues. May not be fixed immediately, but still important to file.

---

<div class="post-metadata">

**Author:** ![matthieu](https://avatars.discourse-cdn.com/v4/letter/m/da6949/32.png) [@matthieu](https://discourse.julialang.org/u/matthieu)\
**Post date:** [November 18, 2020, 3:42pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/17 "2020-11-18T15:42:24Z")

</div>

Cool. So does Julia now work on the newly released Apple laptops?

---

<div class="post-metadata">

**Author:** ![viralbshah](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/viralbshah/32/54_2.png) [@viralbshah](https://discourse.julialang.org/u/viralbshah)\
**Post date:** [November 18, 2020, 3:56pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/18 "2020-11-18T15:56:30Z")

</div>

Works through Rosetta but not natively just yet.

[https://github.com/JuliaLang/julia/issues/36617](https://github.com/JuliaLang/julia/issues/36617)

---

<div class="post-metadata">

**Author:** ![cadojo](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cadojo/32/25328_2.png) [@cadojo](https://discourse.julialang.org/u/cadojo)\
**Post date:** [March 30, 2021, 5:53pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/19 "2021-03-30T17:53:26Z")

</div>

I’m not sure where I could / should post this, so I’m adding it here.

Reading through [#36617](https://github.com/JuliaLang/julia/issues/36617), the current method for installing Julia on Arm (M1) Macs is to **build Julia from source**.

I made a Homebrew Formula, which builds Julia’s `master` branch from source and installs Julia through Homebrew as usual. Definitely not ideal, since `brew upgrade` will trigger a complete re-build every time (if there are new commits to `master`), but it might be useful for anyone like me who prefers to keep all packages installed with HomeBrew! 😄

The Formula, and instructions for using it, is available here! [https://github.com/cadojo/homebrew-julia-master](https://github.com/cadojo/homebrew-julia-master)

---

<div class="post-metadata">

**Author:** ![tbeason](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tbeason/32/15898_2.png) [@tbeason](https://discourse.julialang.org/u/tbeason)\
**Post date:** [March 30, 2021, 6:20pm UTC](https://discourse.julialang.org/t/the-future-is-arms/41893/20 "2021-03-30T18:20:15Z")

</div>

Seems like you could get around some of those issues by pointing to a release branch instead of master branch, if you wanted.

[Next page](https://discourse.julialang.org/t/the-future-is-arms/41893.md?page=2)
