苹果去年底发布来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。
软件安装
收到机器后,自然是迫不及待地安装各种软件测试,为了测试机器学习有关的软件,我选择安装了下面软件。
- Conda
Conda是一个懒人安装工具,而且率先支持了M1芯片的cpu,因此要先安装,能够帮你跳过很多坑。
首先要安装Xcodexcode-select --install
然后到Miniforge的github下载安装
Github:https://github.com/conda-forge/miniforge
找到支持苹果Apple Silicon的链接
wget https://github.com/conda-forge/miniforge/releases/latest/download/Mambaforge-MacOSX-arm64.sh
bash Mambaforge-MacOSX-arm64.sh
-
Python 3.7
选择安装python 3.7是因为暂时3.7版本的python兼容性还是最好的conda install python=3.7
-
Jupyter Lab
因为Mini是放在办公室的,Jupyter是必不可少的远程开发工具,同样可以使用Conda来安装。conda install -c conda-forge jupyterlab
-
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
从安装脚本可以看出,苹果实际上是修改好一个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框架,这里还没时间测试暂时不献丑。
结论
- M1 Mac Mini的超高性价比实在令人惊叹,由于它是市场上唯一的5nm芯片商用产品,它当之无愧是市面上最强cpu,也是性能爆灯的。
- 但由于M1的开发环境生态还是很不完善,虽然很多开发工具已经ready,但还有很多开源软件的支持其实远远未能跟上。所以要现在转用苹果来做软件开发,还是要慎重考虑。