苹果一呼百应的号召力在机器学习领域似乎也不例外。新版Mac推出还不到两周,谷歌就把专为Mac优化的TensorFlow版本做好了,训练速度最高提升到原来的7倍。
对于开发者、工程师、科研工作者来说,Mac一直是非常受欢迎的平台,也有人用Mac训练神经网络,但训练速度一直是一个令人头疼的问题。
上周,苹果发布了搭载ARM架构M1芯片的三款新Mac,于是就有人想问:用它们训练神经网络能快一点吗?
今天,主流机器学习框架TensorFlow发文表示:我们专门做了一版为Mac用户优化的TensorFlow 2.4框架,M1版Mac和英特尔版Mac都能用。这一举动有望大幅降低模型训练和部署的门槛。
此前,在Mac上,TensorFlow仅支持将CPU用于训练,但新的TensorFlow_Macos分支利用苹果的MLCompute,能让GPU也被利用起来。苹果在博客中介绍说:我们使用了更高级别的优化方法,比如熔合层,选择合适的设备类型,将图作为原语编译、执行并由CPU上的BNNS和GPU上的Metal Performance Shaders加速。
MLCompute是苹果公司今年推出的新框架,可用于在Mac上进行TensorFlow模型的训练。现在,无论新的M1版Mac还是旧的英特尔版Mac,其CPU和GPU都能用来加快训练速度。
M1芯片包含新的8核CPU和最多8核的GPU,并针对Mac的机器学习训练任务进行了优化。下面两张图表分别展示了针对Mac优化后的TensorFlow 2.4在不同模型训练中的性能提升:
上图展示了使用MLCompute分别在搭载M1和英特尔芯片的13英寸MacBook Pro上进行机器学习训练的情况。柱形的高度代表单批次的训练时长。可以看出,优化后的Mac版TensorFlow 2.4的训练速度得到了明显提升。在换成M1版的新MacBook Pro之后,提升就更为明显了,训练速度最高提升了7倍。
同样使用MLCompute,在搭载英特尔芯片的2019Mac Pro上进行常见模型的训练,性能提升也相当明显。
TensorFlow官方表示,用户不需要对现有的TensorFlow脚本做任何更改,就可以使用MLCompute作为TensorFlow和TensorFlow插件的后端。
Mac版TensorFlow 2.4的详细入门指南可以参见:https://Github.coM/apple/tensorflow_Macos
M1版Mac对机器学习用户的影响
苹果曾在发布会上介绍说,M1芯片将苹果的神经网络引擎引入了Mac,实现了15倍的机器学习任务加速。该神经网络引擎有16个核心,每秒运算速度可达11万亿次。除此之外,配置了ML加速器的CPU和强大GPU也使得整个M1芯片的机器学习能力得到巨大提升。
性能的提升毋庸置疑,但软件兼容也是一个很大的问题。在M1版Mac发布之后,不少开发者都在问:我的VS code/Docker/Jupyter Notebook还能在新Mac上用吗?
VScode:最快月底就能做出来
在苹果发布会之后不久,微软VS code团队就发文表示,「VS code将支持ARM版Mac,11月底可能推出首个预览版。」
Mac/ARM64试验版地址 https://code.visualstudio.coM/insideRs/#osx
此外,微软还宣布将发布一款新的通用版MacOffice 2019,支持新版苹果处理器。
Docker:在安排,但还没准备好
在11月16日的一篇博客中,Docker的开发者表示,他们还没有准备好让Docker在M1版Mac上运行,在这之前还需要做很多准备。
Docker表示,「我们Docker的目标是在新的Mac上提供与今天在Docker Desktop for Mac上同样出色的体验,并使这种过渡尽可能地无缝。」「为我们的客户打造合适的体验意味着在我们推送一个版本之前,要把不少事情做好。虽然苹果已经发布了Rosetta 2转译器,以帮助将应用程序转移到新的M1芯片上,但这并不能让我们与Docker Desktop一路同行。」
至于Jupyter Notebook等软件,目前还没有官方消息放出。不过,随着苹果不断将生态打通,正在有越来越多的软件开发商表示将开发适配M1版Mac的新产品。