M1 chip and FSL

Summary of what happened:

When running FSL, whether it’s GLM or ICA, etc, my MacBookPro M1 only uses the slower Intel chip. Is there an easy way to make it use the faster M1 Apple chips?

afaik it’s probably using rosetta2 to translate between fsl and the m1; you don’t have both intel and m1 chips. fsl needs to build / compile for the m1 to take full advantage of its speed.

This is a great resource:

  • FSL does not yet natively support this architecture. While code may work in translation, creating some native tools must wait for compilers and libraries to be updated. This will likely require months.
1 Like

@stebo85 thanks for nudging me - I have updated that web page to note that FSL now does natively support M1 and M2 CPUs.

@jtownsend Do make sure you have the release and use the file option to see if your installation is native (arm64) or emulated (x86_64):

$ file ~/fsl/bin/melodic                  
/Users/chris/fsl/bin/melodic: Mach-O 64-bit executable arm64
$ file ~/fsl/bin/flameo
/Users/chris/fsl/bin/flameo: Mach-O 64-bit executable arm64

Both the ICA (melodic) and GLM (flameo) can demand a lot of RAM, and so performance will be slow if you exceed this. In general, FSL is designed for robust computation and not high performance, with the typical FSL approach of doing as much computation as possible independently for each person and for each person’s data to be processed on an individual thread. This model works well for computing large datasets using a supercomputer cluster.

As an aside, the M1 does have specialized hardware that could speed up these functions, but that would require hand tuning the code or using the Apple-specific libraries. Most of the tools our field relies on were designed by scientists who are focused on solving problems, and are not experts in optimizing the tools for optimal performance.