蘋果煉丹6倍速!PyTorch加持Mac GPU訓練,性能最高提升21倍

新智元 發佈 2022-05-22T10:56:30.661713+00:00

與單CPU加速相比,訓練性能提升6倍,推理任務性能最高提升21倍。從對比圖上看,在ResNet50\HuggingFace BERT\VGG 16幾個主流數據集上,相對性能提升最高達到21倍。

編輯:David 拉燕 好睏

【新智元導讀】果粉Big Day!Pytorch宣布,原生支持蘋果Mac GPU機器學習加速。與單CPU加速相比,訓練性能提升6倍,推理任務性能最高提升21倍


對於搞AI和機器學習的蘋果用戶來說,今天無疑是個好日子。


如果是用PyTorch的蘋果用戶,可能更是盼了一年半的大日子!


剛剛,PyTorch官宣,在蘋果Mac系統上正式支持GPU加速訓練。現在,M1晶片強悍的GPU終於可以在機器學習任務上大展身手了!



作為業界應用最廣泛的機器學習框架之一,PyTorch在之前很長一段時間內對於Mac系生態的支持一直不太完善。在蘋果平台上僅支持CPU加速。


Pytorch官方推特置頂發布了這條重磅消息,並給出了與之前僅CPU加速的性能提升對比。


從對比圖上看,在ResNet50\HuggingFace BERT\VGG 16幾個主流數據集上,相對性能提升最高達到21倍。



實際上,作為全球軟硬體生態最完善的巨頭之一,蘋果當然懂得GPU加速對深度學習計算任務的支持有多重要。


早在2014年,蘋果就推出了兼顧圖形與計算功能,面向底層的硬體加速應用接口 Metal。



Metal結合了類似於OpenGL和OpenCL的功能。通過為iOS、iPadOS、macOS和tvOS上的應用程式提供對 GPU 硬體的底層訪問來提高性能。


不過,雖然Metal經歷兩次大的版本更新,但對於蘋果用戶來說,沒有框架的原生支持,要想在主流框架下調用GPU實現加速,還是要「曲線救國」。


有開發者甚至表示,因為PyTorch對蘋果GPU的支持不夠好,自己一度被迫轉用TensorFlow,在TensorFlow環境下通過Metal插件實現GPU加速。



最後他表示,「若Apple Silicon的GPU能獲得pytorch的原生支持,將是一個讓人欣喜的消息。期待!」


今天,這位網友的期待終於成真了。



PyTorch官網宣布,在與Metal工程團隊合作後,很高興地宣布支持Mac上的GPU加速的PyTorch訓練。


PyTorch稱,到目前為止,Mac上的PyTorch訓練只能利用CPU,但在PyTorch v1.12版本,開發人員和研究人員可以利用Apple Silicon GPU的優勢,大大加快模型訓練。


現在,開發者可在Mac上就地執行原型設計和微調等機器學習任務流。


開發者:終於來了,盼一年多了!

實際上,關於Pytorch框架原生支持蘋果GPU加速的問題,早在一年多以前就已經提上了開發日程。


之前就有網友在Pytorch的官方github上找到了關於這個問題的issue,問題發布於2020年11月,與蘋果M1晶片的推出幾乎同步。



然後,這個問題很快就獲得了Pytorch創始人Soumith的回覆:已有原生支持計劃,決定適配M1,但開發進度未知。



不過這事兒到此好像沒了下文,一年多來,甚至有網友在知乎的問題帖下「打卡求更」。



今天,還有人來這個問題下「拍了拍」這位答主,一年多的時間,總算是沒白等啊,好事好事!



很快,就有人拉去測試了。


VGG16,CIFAR-10圖像為224x224像素


可以看出,M1 Pro的CPU和GPU相比,後者訓練網絡的速度達到了原來的兩倍。


可喜可賀,可喜可賀!


往事:用Mac GPU煉丹,先裝Tensorflow

其實,今天這個消息出來之前,網友們就已經嘗試過各種各樣的辦法來解決這個問題。


有網友表示,「用了我的辦法,就不需要別的了。」


首先,最簡單的辦法就是,先安裝一個miniconda3。在此之後,用戶需要安裝Tensorflow。


然後,這位博主展示了有16個GPU核心的M1 Pro的性能。


該博主表示,16核GPU的M1 Pro是M1的升級版。它具有兩倍的GPU內核和兩倍多的內存帶寬。用戶可以訪問大量內存,而因為內存由CPU和GPU共享,所以這是深度學習的最佳選擇。


用戶不需要將Tensor從一個設備移動到另一個設備。另外,用戶還能得到64GB內存的配置,它這算得上是目前市場上最大的移動GPU了。


結果來看,還不錯。



就像預期的那樣,M1Pro Max的速度是 M1Pro 的兩倍(GPU 核心庫的兩倍)


知乎上有網友也嘗試了Tensorflow來在Mac上獲得原生支持的Metal加速。


但是,在wheel生成上,他遇到了問題。他通過pypi安裝d2I包,出現了一些依賴問題。


最終,他通過在github上的release進行安裝,解決了這個問題。


然後,在按照官方的方法安裝Tensorflow的插件,就可以獲得GPU加速了。


經過測試,總體來看M1 max以「極低」的功耗(在訓練時整機功耗75w左右)產生了不錯的算力。


該網友表示,「用作調參還是勉強可用的。」


這就開Mac跑一波訓練!

在推特上,各路網友也是表達了自己的喜悅。畢竟,已經期待太久了~



前節跳動AI實驗室總監,UCSB助理教授李磊就表示,「PyTorch終於能支持在Mac M1GPU上訓練了!是時候把電腦打開了!」



推特上搞數據科學和機器學習的網友表示,這下對PyTorch更感興趣了。



谷歌雲的工程師rogerbai表示,「我倒是想看看M1 Ultra和英偉達40xx在PyTorch上誰的速度更快。」


參考資料:

https://wandb.ai/tcapelle/apple_m1_pro/reports/Deep-Learning-on-the-M1-Pro-with-Apple-Silicon---VmlldzoxMjQ0NjY3

https://www.macrumors.com/2022/05/18/pytorch-gpu-accelerated-training-apple-silicon/

https://pytorch.org/blog/introducing-accelerated-pytorch-training-on-mac/

https://developer.apple.com/metal/



關鍵字: