Skip to content

Default to clang++ on aarch64 for faster phase imputation#296

Open
tfenne wants to merge 1 commit into
odelaneau:masterfrom
tfenne:tf_aarch64_clang
Open

Default to clang++ on aarch64 for faster phase imputation#296
tfenne wants to merge 1 commit into
odelaneau:masterfrom
tfenne:tf_aarch64_clang

Conversation

@tfenne

@tfenne tfenne commented Jun 18, 2026

Copy link
Copy Markdown
Contributor

I finally got around to doing some benchmarking of GLIMPSE2_phase on AWS's aarch64/graviton instances. Unlike on mac where we get clang by default, I was generating builds initially with gcc and seeing vastly worse performance. After some digging around and trial and error, it turns out it's all gcc vs. clang. So this PR simply changes the default compiler on all aarch64 platforms to clang, with fallback to gcc.

The phase kernels are x86 AVX2 intrinsics that SIMDe lowers to NEON on ARM, and clang generates far better NEON than gcc (~1.5-2.5x faster phase kernels on AWS Graviton, bit-identical output). common.mk now defaults CXX to clang++ on aarch64 (falling back to g++ when clang++ is absent) and g++ elsewhere; the Dockerfile installs clang so the aarch64 image picks it up. Installation docs updated accordingly.

The phase kernels are x86 AVX2 intrinsics that SIMDe lowers to NEON on ARM, and clang generates far better NEON than gcc (~2.5x faster phase kernels on AWS Graviton, bit-identical output). common.mk now defaults CXX to clang++ on aarch64 (falling back to g++ when clang++ is absent) and g++ elsewhere; the Dockerfile installs clang so the aarch64 image picks it up. Installation docs updated accordingly.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant