蘋果「一呼百應」的號召力在機器學習領域彷佛也不例外。新版 Mac 推出還不到兩週,谷歌就把專爲 Mac 優化的 TensorFlow 版本作好了,訓練速度最高提高到原來的 7 倍。
機器之心報道,機器之心編輯部。git
對於開發者、工程師、科研工做者來講,Mac 一直是很是受歡迎的平臺,也有人用 Mac 訓練神經網絡,但訓練速度一直是一個使人頭疼的問題。github
上週,蘋果發佈了搭載 Arm 架構 M1 芯片的三款新 Mac,因而就有人想問:用它們訓練神經網絡能快一點嗎?docker
今天,主流機器學習框架 TensorFlow 發文表示:咱們專門作了一版爲 Mac 用戶優化的 TensorFlow 2.4 框架,M1 版 Mac 和英特爾版 Mac 都能用。這一舉動有望大幅下降模型訓練和部署的門檻。macos


此前,在 Mac 上,TensorFlow 僅支持將 CPU 用於訓練,但新的 tensorflow_macos 分支利用蘋果的 ML Compute,能讓 GPU 也被利用起來。蘋果在博客中介紹說:「咱們使用了更高級別的優化方法,好比熔合層,選擇合適的設備類型,將圖做爲原語編譯、執行並由 CPU 上的 BNNS 和 GPU 上的 Metal Performance Shader 加速。」後端
ML Compute 是蘋果公司今年推出的新框架,可用於在 Mac 上進行 TensorFlow 模型的訓練。如今,不管新的 M1 版 Mac 仍是舊的英特爾版 Mac,其 CPU 和 GPU 都能用來加快訓練速度。網絡
M1 芯片包含新的 8 核 CPU 和最多 8 核的 GPU,並針對 Mac 的機器學習訓練任務進行了優化。下面兩張圖表分別展現了針對 Mac 優化後的 TensorFlow 2.4 在不一樣模型訓練中的性能提高:架構


上圖展現了使用 ML Compute 分別在搭載 M1 和英特爾芯片的 13 英寸 MacBook Pro 上進行機器學習訓練的狀況。柱形的高度表明單批次的訓練時長。能夠看出,優化後的 Mac 版 TensorFlow 2.4 的訓練速度獲得了明顯提高。在換成 M1 版的新 MacBook Pro 以後,提高就更爲明顯了,訓練速度最高提高了 7 倍。app


一樣使用 ML Compute,在搭載英特爾芯片的 2019 Mac Pro 上進行常見模型的訓練,性能提高也至關明顯。框架
TensorFlow 官方表示,用戶不須要對現有的 TensorFlow 腳本作任何更改,就可使用 ML Compute 做爲 TensorFlow 和 TensorFlow 插件的後端。機器學習
Mac 版 TensorFlow 2.4 的詳細入門指南能夠參見:https://github.com/apple/tensorflow_macos
M1 版 Mac 對機器學習用戶的影響
蘋果曾在發佈會上介紹說,M1 芯片將蘋果的神經網絡引擎引入了 Mac,實現了 15 倍的機器學習任務加速。該神經網絡引擎有 16 個核心,每秒運算速度可達 11 萬億次。除此以外,配置了 ML 加速器的 CPU 和強大 GPU(稱霸集顯,媲美部分獨顯)也使得整個 M1 芯片的機器學習能力獲得巨大提高。


圖源:https://medium.com/disruptive-nerd/how-is-the-apple-m1-going-to-affect-machine-learning-2d9da1beef86
性能的提高毋庸置疑,但軟件兼容也是一個很大的問題。在 M1 版 Mac 發佈以後,很多開發者都在問:個人 VS Code/Docker/Juypter Notebook…… 還能在新 Mac 上用嗎?
VSCode:最快月底就能作出來
在蘋果發佈會以後不久,微軟 VS Code 團隊就發文表示,「VS Code 將支持 ARM 版 Mac,11 月底可能推出首個預覽版。」
Mac/ARM64 試驗版地址 https://code.visualstudio.com/insiders/#osx


此外,微軟還宣佈將發佈一款新的通用版 Mac Office 2019,支持新版蘋果處理器。
Docker:在安排,但還沒準備好
在 11 月 16 日的一篇博客中,Docker 的開發者表示,他們尚未準備好讓 Docker 在 M1 版 Mac 上運行,在這以前還須要作不少準備。
Docker 表示,「咱們 Docker 的目標是在新的 Mac 上提供與今天在 Docker Desktop for Mac 上一樣出色的體驗,並使這種過渡儘量地無縫。」「爲咱們的客戶打造合適的體驗意味着在咱們推送一個版本以前,要把很多事情作好。雖然蘋果已經發布了 Rosetta 2 轉譯器,以幫助將應用程序轉移到新的 M1 芯片上,但這並不能讓咱們與 Docker Desktop 一路同行。」


至於 Juypter Notebook 等軟件,目前尚未官方消息放出。不過,隨着蘋果不斷將生態打通,正在有愈來愈多的軟件開發商表示將開發適配 M1 版 Mac 的新產品。
參考連接:
https://machinelearning.apple.com/updates/ml-compute-training-on-mac
https://medium.com/disruptive-nerd/how-is-the-apple-m1-going-to-affect-machine-learning-2d9da1beef86
https://www.docker.com/blog/apple-silicon-m1-chips-and-docker/