蘋果M1芯片機(jī)器學(xué)習(xí)向測(cè)評(píng):Mini 比RTX 2080Ti 快14%,Air好于Pro

極市導(dǎo)讀
?M1芯片在機(jī)器學(xué)習(xí)訓(xùn)練的時(shí)候,比RTX 2080Ti GPU快14%!?>>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿
今年雙十一,蘋果發(fā)布了新Mac系列,拿出了首款自研ARM架構(gòu)的芯片。這款5nm制程的SoC(系統(tǒng)級(jí)芯片)號(hào)稱大幅度提升了性能。
例如,新款MacBook Air相比于上一代,CPU性能提升3.5倍,GPU性能提升 5 倍,機(jī)器學(xué)習(xí)能力提升9倍,固態(tài)硬盤的性能也提升了 2 倍。
新款MacBook Pro,CPU性能比上一代提升了 2.8 倍,GPU提升5 倍,機(jī)器學(xué)習(xí)能力提升 11 倍。
新款Mac Mini,能效提高了60%,CPU速度提高了3倍,圖形顯示速度提高了6倍。

真實(shí)體驗(yàn)如何,眾多UP主也在第一時(shí)間進(jìn)行了測(cè)評(píng),測(cè)評(píng)的內(nèi)容包括:打游戲的速度、聽音樂的音質(zhì)、剪輯視頻的效果......
但機(jī)器學(xué)習(xí)方面的測(cè)評(píng)相對(duì)稀少。真就如蘋果發(fā)布會(huì)說的那樣,機(jī)器學(xué)習(xí)速度能夠提高數(shù)倍?在medium上,名為Daniel Bourke博主,發(fā)布了一篇博客,從機(jī)器學(xué)習(xí)訓(xùn)練測(cè)評(píng)的角度論證了蘋果M1芯片的強(qiáng)大。
Bourke一共進(jìn)行了兩大塊的實(shí)驗(yàn):CreateML和TensorFlow macOS 代碼。兩個(gè)實(shí)驗(yàn)的結(jié)果都說明了新版M1芯片的電腦比“老”版本Intel芯片電腦運(yùn)行速度要快。在其他博主的文章中,也有博文論證了:M1芯片在機(jī)器學(xué)習(xí)訓(xùn)練的時(shí)候,比RTX 2080Ti GPU快14%!
1?實(shí)驗(yàn)一:CreateML:Air好于Pro
在進(jìn)行CreateML訓(xùn)練之前,作者說,他從未運(yùn)行過CreateML。這次測(cè)評(píng),也就是要看看這款專門為適配蘋果而打造的機(jī)器學(xué)習(xí)平臺(tái)到底有多強(qiáng)大。

圖注:訓(xùn)練操作界面
這次測(cè)試中,每臺(tái)的Mac的設(shè)置如下:
問題:多類圖像分類
模型:CreateML圖像分類(不知道蘋果使用的是什么網(wǎng)絡(luò)架構(gòu),猜是ResNet)
數(shù)據(jù)大?。?500張訓(xùn)練圖片,2500張測(cè)試圖片
最大迭代次數(shù):25
數(shù)據(jù)增強(qiáng)的方法:翻轉(zhuǎn),旋轉(zhuǎn)

測(cè)評(píng)結(jié)果如上所示,沒有風(fēng)扇的MacBook Air表現(xiàn)最佳,7核GPU M1完爆MacBook Pro的8核M1 GPU。而16英寸的Macbook pro,在訓(xùn)練沒結(jié)束之前就已經(jīng)陣亡了。
很明顯,蘋果的CreateML平臺(tái)已經(jīng)針對(duì)M1芯片進(jìn)行了潛在的優(yōu)化。因?yàn)?,盡管擁有8核專用GPU,Intel驅(qū)動(dòng)的MacBook Pro卻沒能完成實(shí)驗(yàn)。
2?實(shí)驗(yàn)二:TensorFlow macOS
在11月份M1芯片發(fā)布會(huì)上,蘋果聲稱新款自研芯片比前幾代產(chǎn)品有更快的運(yùn)行的速度,并特別提到了“類似TensorFlow這樣的深度學(xué)習(xí)框架”。
然后作者從TensorFlow團(tuán)隊(duì)和Apple Machine Learning團(tuán)隊(duì)發(fā)布的博客文章中,找到機(jī)器學(xué)習(xí)模型在搭載M1芯片和Intel芯片的Mac電腦上的訓(xùn)練結(jié)果。
事實(shí)證明,蘋果最近根據(jù)TensorFlowTensor發(fā)布了Flow_MacOS,這意味著其允許開發(fā)者能夠在Mac上運(yùn)行“原生”TensorFlow代碼”。
于是,作者奇跡般的將Apple的TensorFlow fork安裝到了Python 3.8環(huán)境中,在沒有進(jìn)行8-10個(gè)小時(shí)的故障排除情況下,創(chuàng)建以下三個(gè)小實(shí)驗(yàn)。
第一個(gè)實(shí)驗(yàn)是:基礎(chǔ)的卷積神經(jīng)網(wǎng)絡(luò)(CNN),具體模型設(shè)置代碼如下圖:

具體而言,作者復(fù)制了CNN解析網(wǎng)站上的CNN架構(gòu)(TinyVGG),并使用了類似于CreateML測(cè)試的數(shù)據(jù)集。
問題:多類圖像分類
模型:TinyVGG
數(shù)據(jù):7500張訓(xùn)練圖片,2500張測(cè)試圖片
類的數(shù)量:10個(gè)
epochs的數(shù)量:5
Batch size: 32
注:CNN Explainer網(wǎng)址
https://poloclub.github.io/cnn-explainer/
第二個(gè)實(shí)驗(yàn)是使用EfficientNetB0進(jìn)行遷移學(xué)習(xí)。因?yàn)楫?dāng)前,從頭開始做模型非常麻煩。
作者使用現(xiàn)有的未經(jīng)訓(xùn)練的架構(gòu),并根據(jù)具體的數(shù)據(jù)對(duì)其進(jìn)行訓(xùn)練?;蛘呤褂孟馝fficientNet這樣的預(yù)先訓(xùn)練的架構(gòu),并根據(jù)具體的數(shù)據(jù)對(duì)其進(jìn)行微調(diào)。
問題:多類圖像分類
模型:Headless EfficientNetBO
數(shù)據(jù):750個(gè)訓(xùn)練圖像,625個(gè)測(cè)試圖像(2500×0.25的validation_steps參數(shù))
類的數(shù)量:10個(gè)(來自Food101數(shù)據(jù)集)
epochs數(shù):5
Batch size:4(由于M1沒有足夠的內(nèi)存容量來處理較大的Batch size,所以需要較低的批Batch size,作者嘗試了32、16、8,但它們都失敗了)

第三個(gè)實(shí)驗(yàn),是作者在瀏覽Apple的tensorflow_macos GitHub時(shí),發(fā)現(xiàn)的一個(gè)問題線程(issue thread)。包含了在不同機(jī)器上運(yùn)行的benchmark,所以作者決定把它加入到測(cè)試中。
問題:多類圖像分類
模型:LeNet
數(shù)據(jù):60,000張訓(xùn)練圖片,10,000張測(cè)試圖片(MNIST)
類的數(shù)量:10個(gè)
epochs的數(shù)量:5
Batch size: 32
3?TensorFlow代碼測(cè)評(píng)結(jié)果
除了在MAC 上運(yùn)行上述三個(gè)實(shí)驗(yàn)之外,作者還在GPU驅(qū)動(dòng)的Google Colab上運(yùn)行了(作者的策略是:在Google Colab上進(jìn)行實(shí)驗(yàn),需要時(shí)擴(kuò)展到更大的云服務(wù)器上去)。

如上圖所示,谷歌Colab表現(xiàn)最棒,但搭載M1芯片的MacBook也并沒有落后太多。MacBook意味著能夠在本地運(yùn)行實(shí)驗(yàn),無需一直連接到Colab,這會(huì)帶來極大的方便。
注意,上述對(duì)比,由于數(shù)據(jù)加載,第一個(gè)epoch通常時(shí)間最長(zhǎng)的,因此對(duì)比的是第二個(gè)epoch之后的訓(xùn)練時(shí)間。另外,Google Colab GPU實(shí)例使用的是純TensorFlow而不是tensorflow_macos。
值得注意的是,在基本的CNN和遷移學(xué)習(xí)實(shí)驗(yàn)中,搭載M1電腦的表現(xiàn)明顯優(yōu)于搭載Intel的電腦。而tensorflow_macos基準(zhǔn)測(cè)試中,Intel也收復(fù)了一些失地。作者認(rèn)為這是明確在訓(xùn)練中使用GPU的結(jié)果。
M1 Mac Mini機(jī)器學(xué)習(xí)測(cè)評(píng)

以上是對(duì)Air和pro兩個(gè)版本的測(cè)評(píng),那么新版的M1 Mac Mini效果如何呢?在另一篇medium博文上,Andrew A Borkowski測(cè)評(píng)發(fā)現(xiàn),M1 Mac Mini的訓(xùn)練速度比RTX 2080Ti還要快。

具體而言,是作者根據(jù)蘋果GitHub網(wǎng)站的說明在Mac Mini上安裝了tensorflow_macos,并完成了fashi-MNIST數(shù)據(jù)集中的分類任務(wù)。測(cè)試結(jié)果是:訓(xùn)練和測(cè)試耗時(shí)6.70秒,比RTX 2080Ti GPU快14%!
注:RTX 2080Ti 的試驗(yàn)配置是System: Linux;CPU:Intel? Core? i7–9700K;RAM: 32GB;Storage: 1TB SSD。而蘋果電腦的配置是:System: macOS Big Sur;Storage: 512GB SSD;Unified Memory: 8GB ;M1芯片包含8個(gè)CPU核,8個(gè)GPU核以及16個(gè)神經(jīng)網(wǎng)絡(luò)引擎核心。

但,在數(shù)據(jù)集較大的模型上,M1 Mac Mini用了2286.16秒。比使用Nvidia RTX 2080Ti GPU的Linux機(jī)器要長(zhǎng)5倍多!根據(jù)Mac的活動(dòng)監(jiān)控器,CPU的使用量極少,完全沒有使用到GPU。
總結(jié)一下:由于M1 TensorFlow目前還是Alpha版本,未來有希望利用芯片的GPU和神經(jīng)引擎內(nèi)核來加速機(jī)器學(xué)習(xí)訓(xùn)練。
參考資料:
https://towardsdatascience.com/apples-new-m1-chip-is-a-machine-learning-beast-70ca8bfa6203
推薦閱讀

