新的 macbook m1 适合数据科学吗?
数据科学 python 库(如 pandas、numpy、sklearn 等)是否可以在 macbook m1(Apple Silicon)芯片上运行,与上一代基于英特尔的 macbook 相比有多快?
新的 macbook m1 适合数据科学吗?
数据科学 python 库(如 pandas、numpy、sklearn 等)是否可以在 macbook m1(Apple Silicon)芯片上运行,与上一代基于英特尔的 macbook 相比有多快?
这个 GitHub 存储库有很多关于 Apple M1 芯片和 Python 数据科学的有用信息https://github.com/neurolabusc/AppleSiliconForNeuroimaging。我在下面包含了代表性的报价。该存储库专注于脑成像分析软件,但内容广泛。
更新于 2021 年 9 月 27 日。
TL;博士
除非您是开发人员,否则我强烈建议科学家不要在短期内购买 Apple Silicon 计算机。生产性工作将需要移植核心工具。从长远来看,这种架构可能会对科学产生深远的影响。特别是如果 Apple 开发的服务器能够利用其 CPU 的卓越能效(与 AWS Graviton 竞争)并利用 Metal 语言和 GPU 执行计算任务(与 NVidia 的 Tesla 产品和 CUDA 语言竞争)。
Apple Silicon 面临的局限性
科学家所依赖的基础设施尚不适用于此架构。以下是一些短期限制:
- Native R 可以使用不稳定的 R-devel 4.1。但是,RStudio 将需要 gdb。
- Julia 本身还不支持 Apple Silicon。
- Python 原生支持 Apple Silicon。但是,某些模块有问题或速度很慢。请参阅下面的 NiBabel 部分。
- Python、R 和 Julia 的科学模块需要 Fortran 编译器,该编译器目前仅以实验形式提供。
- 虽然 Apple 的 C Clang 编译器生成快速的本机代码,但许多科学工具需要等到 gcc 和 gFortran 编译器可用。
- VirtualBox、VMware Fusion、Boot Camp 和 Parallels 等工具尚不支持 Apple Silicon。许多用户依靠这些工具在他们的 macOS 计算机上使用 Windows 和 Linux 程序。
- Docker 可以支持 Apple Silicon。但是,尝试在 Apple Silicon 机器上运行基于 Intel 的容器可能会崩溃,因为 QEMU 有时无法运行容器。这些容器在许多神经成像工具中很受欢迎。
- Homebrew 3.0 支持 Apple Silicon。但是,许多自制组件不支持 Apple Silicon。许多科学工具都使用 MATLAB,包括 SPM。虽然 Matlab 在翻译中工作,但它本身还不可用(并且需要重新编译 mex 文件)。
- FSL 和 AFNI 本身还不支持这种架构。虽然代码可能在翻译中起作用,但创建一些本机工具必须等待编译器和库更新。这可能需要几个月的时间。
- 当前一代 M1 只有四个高性能内核。大多数神经成像管道结合了只需要一个核心(M1 擅长)的顺序任务以及并行任务。这些并行任务可以利用具有更多内核的 CPU(如下面的 pigz 和 niimath 测试所示)。请记住,这种串行和并行代码的混合面临阿姆达尔定律,额外内核的收益递减。
- 当前一代 M1 具有最大 16 Gb 的 RAM。神经影像数据集通常需要大量内存(尤其是多波段加速功能、静息状态和扩散数据集)。
- 一般来说,M1 和基于 Intel 的 Mac 具有相同的 OpenGL 兼容性,其中 M1 提供比以前的集成解决方案更好的性能。但是,有些极端情况可能会破坏 OpenGL 工具。在这里,我描述了四个限制。首先,不支持 OpenGL 几何着色器(没有等效的 Metal)。其次,新的 Retina 显示器支持 16 bitsPerSample 的宽颜色,这可能会导致假定 32 位 RGBA 纹理的代码出现问题(例如此 Apple 示例代码中的文本)。第三,可以不同地处理纹理。第四,使用 GL_INT_2_10_10_10_REV 数据类型会削弱性能(在 macOS 11.2 上测试)。这是不幸的,因为 Apple 曾一度提倡这种数据类型。在这种情况下,必须更改代码以使用 M1 GPU 原生支持的不太紧凑的 GL_HALF_FLOAT。