# Is there anything users can do to help move Apple Silicon support from Tier 3 to Tier 1?

**URL:** <https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739>\
**Category:** Internals & Design\
**Tags:** mac-m1\
**Created:** [December 8, 2021, 2:04am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739 "2021-12-08T02:04:31Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Post date:** [December 8, 2021, 2:04am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/1 "2021-12-08T02:04:31Z")

</div>

Is there anything users can do to help move Apple Silicon support from Tier 3 to Tier 1? Given that most new Mac machines now have an M1 chip, it seems like there will be more and more Julia programmers wanting to use a Tier 1 Julia release on their shiny new Macs. 🙂

---

<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:** [December 8, 2021, 2:27am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/2 "2021-12-08T02:27:19Z")

</div>

Julia is in better shape than most competitors when it comes to \*native M1. Rosetta can always be used

---

<div class="post-metadata">

**Author:** ![Oscar\_Smith](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oscar_smith/32/25343_2.png) [@Oscar\_Smith](https://discourse.julialang.org/u/Oscar_Smith)\
**Post date:** [December 8, 2021, 3:31am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/3 "2021-12-08T03:31:16Z")

</div>

Report bugs (preferably with RR).

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [December 8, 2021, 9:36am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/4 "2021-12-08T09:36:13Z")

</div>

> [@Oscar\_Smith](#):
>
> preferably with RR

`rr` is Linux only AFAIK.

---

<div class="post-metadata">

**Author:** ![gbaraldi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gbaraldi/32/22101_2.png) [@gbaraldi](https://discourse.julialang.org/u/gbaraldi)\
**Post date:** [December 8, 2021, 11:22am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/5 "2021-12-08T11:22:10Z")

</div>

RR is x86 only (funnily enough keno was working on porting it to aarch64) and Linux only.

---

<div class="post-metadata">

**Author:** ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Post date:** [December 8, 2021, 3:19pm UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/6 "2021-12-08T15:19:51Z")

</div>

> [@jling](#):
>
> Rosetta can always be used

Yeah, it sounds like Julia works reasonably well on Rosetta. But I’m greedy—I hate the idea that I’m leaving some performance on the table.

---

<div class="post-metadata">

**Author:** ![ctkelley](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ctkelley/32/10684_2.png) [@ctkelley](https://discourse.julialang.org/u/ctkelley)\
**Post date:** [December 8, 2021, 4:22pm UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/7 "2021-12-08T16:22:38Z")

</div>

An Apple silicon version of MKL.jl would be great. My guess is that is not an easy thing to build and don’t expect it anytime soon.

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 8, 2021, 7:10pm UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/8 "2021-12-08T19:10:08Z")

</div>

> [@CameronBieganek](#):
>
> Is there anything users can do to help move Apple Silicon support from Tier 3 to Tier 1?

IMHO / As I see:  
one of the next steps is adding an “AppleSilicon” testing to the [Julia BuildBot/CI/CD](https://build.julialang.org/#/console) ( I can’t see AppleSilicon ; only MacOS64+X86\_64 )

- The [Hetzner.com](http://Hetzner.com) has an “Max mini M1” = 49.00 EUR/month + once-off setup: 49.00 EUR
  - [https://www.hetzner.com/dedicated-rootserver/matrix-apple?country=us](https://www.hetzner.com/dedicated-rootserver/matrix-apple?country=us) ( located in Germany )

So need some financial support in:

- Support Julia on AppleSilicon Buildbot/CI/CD testing ( Hetzner ? )
- “bug bounty” for some issues
- Monthly - (re)testing all Julia packages on AppleSilicon.
- Give (package/core) developers some remote access to debug issues on AppleSilicon ( another Hetzner M1?)
- …

→ [Sponsor @JuliaLang on GitHub Sponsors · GitHub](https://github.com/sponsors/julialang)

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 8, 2021, 8:20pm UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/9 "2021-12-08T20:20:01Z")

</div>

> [@ImreSamu](#):
>
> IMHO / As I see:  
> one of the next steps is adding an “AppleSilicon” testing to the [Julia BuildBot/CI/CD](https://build.julialang.org/#/console) ( I can’t see AppleSilicon ; only MacOS64+X86\_64 )

I don’t think that’s really useful before [https://github.com/JuliaLang/julia/issues/41440](https://github.com/JuliaLang/julia/issues/41440) is resolved. That’s the main stumbling block at the moment. _All_ tests jobs are going to segfault because of that, it isn’t incredibily useful to run jobs that systematically crash for a well known issue. The problem is that that’s not trivial to address.

Additionally, most (but not all?) Julia CI runs on on-premise hardware, I’m not sure renting overpriced cloud machines is the best option money-wise. M1 boxes may already be in the availability of the developers, but until someone takes the time to solve [https://github.com/JuliaLang/julia/issues/41440](https://github.com/JuliaLang/julia/issues/41440) there is not much need to use them.

That said, also on-premise CI has a non-zero cost, so supporting the project is a good idea anyway.

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 8, 2021, 8:37pm UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/10 "2021-12-08T20:37:10Z")

</div>

> [@giordano](#):
>
> M1 boxes may already be in the availability of the developers,

I had no information about this.  
It is free? Where can this be accessed?  
( I am on Linux … and I don’t want to invest to applesilicon hardware yet )

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 9, 2021, 2:01am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/11 "2021-12-09T02:01:41Z")

</div>

I was talking about the fact Julia core developers already have access to those machines, not that M1 boxes are given away for free to anyone.

---

<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:** [December 9, 2021, 2:41am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/12 "2021-12-09T02:41:29Z")

</div>

I suggest taking this approach:

> [@Apple M1 GPU from Julia?](https://discourse.julialang.org/t/apple-m1-gpu-from-julia/69563/5):
>
> Since my use-case is a bit different, I created a new package, [SetBlasInt](https://github.com/perrutquist/SetBlasInt.jl), based on the idea in AppleAccelerateLinAlgWrapper, but which just replaces Julia’s BLAS methods instead of keeping the Int32 versions separate. This way, it is possible to switch to Accelerate without modifying existing code. This is just a hack, but it does what I need it to do, for now. Example: using LinearAlgebra, BenchmarkTools, SetBlasInt BLAS.lbt\_forward("/System/Library/Frameworks/Accelerate.framework/Versions/…

I’d add that to your `startup.jl`, probably behind a check to make sure you’re on the native version instead of Rosetta (i.e., check `Sys.ARCH`).

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 9, 2021, 3:19am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/13 "2021-12-09T03:19:34Z")

</div>

> [@giordano](#):
>
> I was talking about the fact Julia core developers already have access to those machines, not that M1 boxes are given away for free to anyone.

it is good news.  
on the other hand I am thinking in a bigger ecosystem:

- the [Julia project](https://github.com/JuliaLang/julia) has 1,216 contributors
- the Julia ecosystem has \> 4931 unique contributors ( [2021 summer survey](https://julialang.org/blog/2021/08/general-survey/) )

> [@giordano](#):
>
> Additionally, most (but not all?) Julia CI runs on on-premise hardware,

the ecosystem is different:  
[based on the survey](https://julialang.org/blog/2021/08/general-survey/#continuous_integration):  
_" Julia users seem to love [continuous integration](https://en.wikipedia.org/wiki/Continuous_integration) (CI)! A staggering 95% of packages in the ecosystem are set up to use any continuous integration service, with GitHub Action being the most popular service (80%), followed by Travis (42%) and AppVeyor (13%)."_

And now Github Actions is not yet supporting Apple M1 VMs (AppleSilicon)

- [https://github.com/actions/virtual-environments/issues/2187](https://github.com/actions/virtual-environments/issues/2187)

IMHO:  
an ecosystem of healthy packages (pre tested on AppleSilicon machines! ) is essential to support Tier1  
Because the [Julia Release Process](https://julialang.org/blog/2019/08/release-process/) contains testing the package ecosystem.

- _“[PkgEval](https://github.com/JuliaCI/PkgEval.jl) is a tool for running the test suites of all Julia packages, which helps us make sure that we haven’t inadvertently broken anything. Each failure is examined when a release is made: we verify that the failure isn’t due to a violation of SemVer and try to make pull requests to fix packages, regardless of the cause of the failure.”_

> [@giordano](#):
>
> … M1 boxes are given away for free to anyone.

Limited remote access for trusted package developers will be useful.  
and I am “thinking in the ecosystem” and not just “in the core developers”.

---

<div class="post-metadata">

**Author:** ![ericphanson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ericphanson/32/215186_2.png) [@ericphanson](https://discourse.julialang.org/u/ericphanson)\
**Post date:** [December 9, 2021, 3:30am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/14 "2021-12-09T03:30:36Z")

</div>

In case you don’t know, Mosè is an author of that survey so he is definitely aware of those stats!

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [December 9, 2021, 4:44am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/15 "2021-12-09T04:44:33Z")

</div>

> [@ericphanson](#):
>
> In case you don’t know, Mosè is an author of that survey so he is definitely aware of those stats!

We both have different perspectives on the problem. ( or different pain points )

- He is a core developer with access to the AppleSilicon hardware
- I am part of the ecosystem without AppleSilicon testing possibilities.

There is free/cheap X86\_64 testing for the Julia ecosystem …  
but I don’t know of a similar cheap AppleSilicon testing facility.

---

<div class="post-metadata">

**Author:** ![nilshg](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/nilshg/32/2283_2.png) [@nilshg](https://discourse.julialang.org/u/nilshg)\
**Post date:** [December 9, 2021, 5:53am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/16 "2021-12-09T05:53:14Z")

</div>

It seems unnecessary to provide free cloud computing time on very expensive hardware which is Tier 3 and on which most non trivial workloads currently seem to segfault as Mose says?

---

<div class="post-metadata">

**Author:** ![CameronBieganek](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/cameronbieganek/32/6915_2.png) [@CameronBieganek](https://discourse.julialang.org/u/CameronBieganek)\
**Post date:** [December 9, 2021, 8:43am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/17 "2021-12-09T08:43:40Z")

</div>

> [@nilshg](#):
>
> It seems unnecessary to provide free cloud computing time on very expensive hardware which is Tier 3

Setting aside the segfault issues, this seems like a catch-22:

- “We don’t need CI for Apple Silicon because Apple Silicon is Tier 3.”
- “Apple Silicon is Tier 3 because we don’t have CI.”

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [December 9, 2021, 8:50am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/18 "2021-12-09T08:50:10Z")

</div>

> [@CameronBieganek](#):
>
> “Apple Silicon is Tier 3 because we don’t have CI.”

Well, I just wouldn’t agree with that point 🙂

Would it be great to have free Apple Silicon CI available for the entire ecosystem? Sure.  
Will we have it at some point? Maybe.  
Is this the reason why Julia is Tier 3? Absolutely not.

The way I see it, the Tier levels have hardly anything to do with the (general) ecosystem. They make a statement about Julia itself.

---

<div class="post-metadata">

**Author:** ![fingolfin](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fingolfin/32/6033_2.png) [@fingolfin](https://discourse.julialang.org/u/fingolfin)\
**Post date:** [December 9, 2021, 9:10am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/19 "2021-12-09T09:10:42Z")

</div>

I think this discussion got a bit off track: When we are talking about CI on M1, and renting it in the cloud, or buying some etc. then I think this can _only_ applies to making that CI hardware available to the CI of the Julia project itself, and thus in the end core devs.

I do not think the Julia project itself can afford to provide M1 CI instances to arbitrary packages. Do you expect them to create an alternative to GitHub Actions, Travis, AppVeyor, CircleCI, etc. ??? No, if you want arbitrary packages to have M1 CI, you’ll have to hope that some of those providers will eventually offer them.

Thus, when it comes to making M1 Tier 2 or even Tier 1, while of course having consistent CI _for Julia itself_ is kinda essential for that, first the already known serious problems ought to be resolved; there is no point setting up a CI for something that will just crash all the time. Once these fix are in place, I am sure there’ll be a way to get M1 builders for the Julia CI. But providing this for the wider package ecosystem is not something the Julia team can take care of.

On the upside, waiting increases the chance that e.g. GitHub Actions will just make something like this available. However, AFAIK GitHub Actions are on Microsoft Azure and I have no idea when, if ever, they will provide M1 support. On the upside, [AWS EC2 M1 Mac instances are in preview](https://aws.amazon.com/ec2/instance-types/mac/); once they are generally available, I am hopeful some CI providers using AWS will eventually offer M1 instances.

---

<div class="post-metadata">

**Author:** ![giordano](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/giordano/32/2166_2.png) [@giordano](https://discourse.julialang.org/u/giordano)\
**Post date:** [December 9, 2021, 9:21am UTC](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739/20 "2021-12-09T09:21:03Z")

</div>

> [@CameronBieganek](#):
>
> Setting aside the segfault issues, this seems like a catch-22:

It’s not: to unblock the situation, already known issues have to be fixed. CI is really a minor problem at this point. Also, I had already pointed out a side approach to make more likely packages will work on the M1: [test them on aarch64 Linux](https://discourse.julialang.org/t/julia-on-m1-macs/55448/13). It’s clearly _not_ the same thing, but helps a lot for catching _architecture_-related issues, and I’ve personally caught some this way. It doesn’t help much with _platform_-specific issues (like the well known segfault).

[Next page](https://discourse.julialang.org/t/is-there-anything-users-can-do-to-help-move-apple-silicon-support-from-tier-3-to-tier-1/72739.md?page=2)
