22

新的 macbook m1 适合数据科学吗?

数据科学 python 库(如 pandas、numpy、sklearn 等)是否可以在 macbook m1(Apple Silicon)芯片上运行,与上一代基于英特尔的 macbook 相比有多快?

4

1 回答 1

43

这个 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。
于 2020-12-01T17:43:43.920 回答