Using ARM64 for non-GPU jobs

We will have access to an Ampere Altra Max server soon that we plan on using with relion. Looking through the CryoSPARC worker package, it seems like the only thing explicitly requiring x86_64 is anaconda, which has an ARM64 build available on their website. We will not be using the server for GPU jobs, only CPU.

Is it possible to install the CryoSPARC worker package on ARM64 by replacing the anaconda build?

I will add, Nvidia does make arm cuda libraries. On AWS, there are G5g instances that combine AWS Graviton2 processors with NVIDIA T4G gpus. I’m curious how easy it would be to port all of cryosparc to arm.

Notes for ARM64 use:

CTFFIND requires the modification of some old x86 assembly to pure C before it will build and run.

RELION otherwise has no issues.

I built and tested RELION 3 (and 3.1) ages ago on a little nVidia Jetson Nano SBC. Other than the box size being extremely limited due to the anemic GPU (and needing a large swapfile or it would run out of RAM) it had no issues beyond the CTFFIND quirk mentioned.

Yeah, Nvidia even provides a docker image of relion for ARM64, so we aren’t worried about that.

The main reason we’re exploring ARM64 is to lower our power consumption while (hopefully) increasing our compute capacity.

Due to the upcoming Grace SuperChip that Nvidia is building, all modern Nvidia GPUs now support ARM64, so you could use an H100 in an ARM64 server and still have compatibility

This will unfortunately not suffice because we currently distribute some CryoSPARC components as x86_64 binaries. We have not yet determined a release date for arm64 support.

IT is currently looking into Grace-Hopper for our next HPC cluster. Arm64 support in cryosparc would be very important to us.