Kevin
Kevin

目录

能用苹果M1 Mac Mini来机器学习吗?

苹果去年底发布来M1芯片的Mac Pro, Mac Air和Mac Mini,搭载M1芯片的Mac据说速度和功耗都比之前的系列有了大幅提升,其中最令我兴奋的是便宜的Mac Mini,因为它具备超高的性价比令人折服。网上有很多测评都对M1芯片的机器进行视频剪辑,多任务运行速度比较,我却更关心它是否能用于机器学习,有玩家声称用它来训练模型,性能能达到RTX2080差不多的水平。我也迅速入手一台,看看看看M1芯片有多厉害。

M1芯片简介

M1是首款用于个人电脑的5纳米芯片,苹果宣称该芯片在所有低功耗中央处理器产品中性能最佳,同时具有最佳的性能功耗比。该芯片内有四个高性能“Firestorm”核心和四个低功耗“Icestorm”核心,结构类似ARM的big.LITTLE和英特尔的“Lakefield”系列架构。这样的架构能实现以往苹果-英特尔架构无法达到的能效比优化。苹果宣称低功耗核心只需要高性能核心十分之一的电量。四个高性能核心均有192 KB指令缓存和128 KB数据缓存,并共享12 MB二级缓存;四个低功耗核心均有128 KB指令缓存和64 KB数据缓存,并共享4 MB二级缓存。“Icestorm”的“E集群”频率为0.6–2.064 GHz,最高功耗为1.3 W,而”Firestorm“的“P集群”的频率为0.6–3.204 GHz,最高功耗为13.8 W。M1芯片还包含苹果自己设计的8核(部分型号为7核)图形处理器(GPU)。苹果宣称它可以同时执行25,000个线程。芯片还有一个专用的16核神经网络引擎,可以每秒执行11兆次运算。芯片其他组成部分还包括图像处理器(ISP)、NVM存储、Thunderbolt 4控制器和Secure Enclave。
file

软件安装

收到机器后,自然是迫不及待地安装各种软件测试,为了测试机器学习有关的软件,我选择安装了下面软件。

  1. Conda
    Conda是一个懒人安装工具,而且率先支持了M1芯片的cpu,因此要先安装,能够帮你跳过很多坑。
    首先要安装Xcode

    xcode-select --install

    然后到Miniforge的github下载安装
    Github:https://github.com/conda-forge/miniforge

找到支持苹果Apple Silicon的链接
file

wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-arm64.sh
bash Mambaforge-MacOSX-arm64.sh
  1. Python 3.7
    选择安装python 3.7是因为暂时3.7版本的python兼容性还是最好的

    conda install python=3.7
  2. Jupyter Lab
    因为Mini是放在办公室的,Jupyter是必不可少的远程开发工具,同样可以使用Conda来安装。

    conda install -c conda-forge jupyterlab
  3. Tensorflow
    先创建一个tf的环境,

    python3 -m venv tf_env
    source my_env/bin/activate

    然后下载运行苹果提供的tensorflow版本。

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/apple/tensorflow_macos/master/scripts/download_and_install.sh)"

    这里要主要,如果网速不佳,可以直接到苹果的GitHub看看脚本内容,一步步运行。
    这是苹果tensorflow 脚本github:https://github.com/apple/tensorflow_macos
    file
    从安装脚本可以看出,苹果实际上是修改好一个tensorflow的版本和对应的依赖,下载到你的机器上。

安装好tensorflow后检查一下版本,可以发现,tf版本是2.4的

python -c "import tensorflow as tf; print(tf.__version__)" 
2.4.0-rc0

数据比较

经过一番折腾以后,终于完成来基本环境的构建。通过把一下旧项目迁移到M1上测试,并不顺利,因为tensorflow 版本过高,需要改进才能运行。我找到国外开发人员把同CPU和GPU进行横向比较,可见M1可以渠道RTX 2080 Super的水平,实在令人惊讶,然而最便宜的M1 Mac mini只要5千多块,比起RTX 2080 Super要划算太多。
但是,要使用到苹果的Neural Engine,就需要把模型转到苹果的Core ML框架,这里还没时间测试暂时不献丑。
file

结论

  • M1 Mac Mini的超高性价比实在令人惊叹,由于它是市场上唯一的5nm芯片商用产品,它当之无愧是市面上最强cpu,也是性能爆灯的。
  • 但由于M1的开发环境生态还是很不完善,虽然很多开发工具已经ready,但还有很多开源软件的支持其实远远未能跟上。所以要现在转用苹果来做软件开发,还是要慎重考虑。