Metal优化M系列Mac芯片机器学习(Tensorflow)
Intro
早就听说M卡自带的GPU跑机器学习模型也还是可以的,但是一直没试,今天折腾了一下;发现时至2023年,Tensorflow和Pytorch都已经通过安装Metal插件来使用M系列芯片的GPU加强运算速度了。因为最近做的项目还是用的TF,先折腾了一下TF端的优化。效果还是挺感人的。
Preparation
因为针对M卡优化的那个环境用的是MiniForge,平常用的Anaconda,得先把conda环境切到MiniForge。
1 | conda env list |
先看一下自己conda的环境,如果现在是Anaconda,需要切到MiniForge,上面那段我本地打出来是这样
1 | conda environments: |
如果想swift一下Anaconda和MiniForge,假设现在咱们在Anaconda环境下,你需要复制一下上面MiniForge的地址,然后
1 | /Users/primopan/miniforge3/conda init zsh |
Terminal会显示no change,但是没关系,关掉终端再开一下,检查环境,就已经切换过来了。然后我们开一下环境。
1 | conda create --name tfm1 python==3.9 |
接着安装预制环境和tf的macos和metal插件
1 | conda install -c apple tensorflow-deps |
理论上装完了就可以了。我们terminal 开个Python 试一试能不能调用GPU
1 | >> import tensorflow as tf |
可以看到输出的那一坨设备里面有GPU的话就说明可以调用GPU了,废话不多说,开一个最简单的图像分类训练模型试一下。
1 | import tensorflow as tf |
跑了5个epoch,每个epoch差不多1分钟左右的样子。我们deactivate一下当前的环境,用只有CPU的环境跑,一个epoch差不多要380s,是开GPU的六倍多。下午刚去入了一个3060Ti,明天看看M1和CUDA环境下的3000块钱左右的卡PK能获得什么成绩吧。