4 ms·
Apple Silicon (as you know) is AArch64. Given that OpenJDK already had AArch64 support (e.g. through years of Linux AArch64 support, but also OpenJDK for iOS) a
by danieldk 6y ago
Apple Silicon (as you know) is AArch64. Given that OpenJDK already had AArch64 support (e.g. through years of Linux AArch64 support, but also OpenJDK for iOS) and macOS support, I would bet that it is mostly a matter of making the build infrastructure aware of the macOS + AArch64 combo. It's not like JIT, AOT, etc. need full new ports to Apple Silicon (in fact, the Azul builds were available pretty much immediately after the release of M1).
- pjmlp 6y agoNot quite, it is almost AArch64, plus some additional goodies. Azul uses their own implementation anyway, so whatever they do isn't a reflection of what OpenJDK supports right now.
- rcoveson 6y agoOpenJDK does support AAarch64 for JDK 8 onwards[0]. Available as part of Ubuntu 18.04 as well[1]. I've used it quite a bit, and for the most part it's slightly faster than it was on x86_64 (though how much of this is due to JIT differences as opposed to core performance I can't say). 0. https://hg.openjdk.java.net/aarch64-port/jdk8/ https://hg.openjdk.java.net/aarch64-port/jdk8/ 1. https://packages.ubuntu.com/bionic/arm64/openjdk-8-jdk/filelist https://packages.ubuntu.com/bionic/arm64/openjdk-8-jdk/filel...
- pjmlp 6y agoExcept Apple Silicon is more than just AAarch64, hence Azul and Microsoft contributions. https://www.infoq.com/news/2020/09/microsoft-windows-mac-arm/ https://www.infoq.com/news/2020/09/microsoft-windows-mac-arm...
- danieldk 6y agoThat does not refute the point. M1 uses the AArch64 ISA, so for the initial port, the existing AArch64 support in OpenJDK can just be used. Sure, they can make optimizations now or in the future for ARMv8.6-A or the Neural Engine (if they are ok with going through Apple's framework). But M1 could pretty much use the existing AArch64 code from day 1 and have good performance. (See benchmarks that float around the net where OpenJDK on AWS Graviton is competitive with Intel CPUs.)
- pjmlp 6y agoIt is more than just the CPU. https://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/2020-June/040330.html https://mail.openjdk.java.net/pipermail/hotspot-runtime-dev/...
- rcoveson 6y agoI should have made it clearer; the section of the comment to which I was replying was: > ...so whatever they do isn't a reflection of what OpenJDK supports right now. I just wanted to point out that OpenJDK itself does support the architecture, and has for some time.
- danieldk 6y agoNot quite, it is almost AArch64, plus some additional goodies. It is AArch64, it's not like it's an incompatible ISA. The fact that it has extra platform features does not slow down the initial port. I am also not sure what 'additional goodies' you are referring to, for which specs are available (you can currently only use the neural engine through Apple's framework)? The fact that it's the first CPU (AFAIK) that is ARMv8.6-A?
- pjmlp 6y agoThese goodies, https://github.com/AdoptOpenJDK/openjdk-build/issues/1922 https://github.com/AdoptOpenJDK/openjdk-build/issues/1922