編輯: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/