天天看點

聽說用CPU就能做深度學習!再也不用攢錢買GPU了?

入了深度學習的坑,沒有個GPU怎麼能帶得動,你是不是也發愁過配什麼樣的GPU?NVIDIA,AMD GPU,Intel Xeon Phis,Google TPU...各家晶片讓人挑花了眼,一個不行還得多買幾個,而且越專業的硬體價格就越貴。

是以近年來,有人就動了個念頭,硬體不行,我改軟體還不行嗎!

2017年,MIT教授 Nir Shavit 在研究一個需要借助深度學習重建老鼠大腦圖像的項目時,由于不知道如何在圖形卡或GPU上程式設計,于是他選擇了CPU。

Nir Shavit

沒想到,竟然順利完成了這一研究。Shavit回憶說:“看,我發現隻要以合适的方式程式設計,CPU就可以完成GPU的工作。”

難道未來做深度學習可以不用挑選專門的硬體了?

GPU也不是百分百适合深度學習

其實,GPU成為深度學習的首選硬體也算是一個巧合。GPU(Graphics Processing Unit)也就是圖形處理器,顧名思義,這些晶片最初是被設計用來在電子遊戲等應用中快速渲染圖形的。

我們都知道中央處理器CPU具有四到八個複雜的核心,是我們電腦中不可或缺的晶片,可以用來執行各種計算。GPU則由數百個隻能執行特定操作的簡單核心組成,但是這些核心可以同時執行操作,而不是一個接一個地執行,進而縮短了完成大量計算所需要的時間。

AI 研究領域的人們很快就意識到這種大規模并行化也使得 GPU 非常适合深度學習。像圖形渲染一樣,深度學習也涉及執行成千上萬次的簡單數學計算。

2011年,在與晶片制造商英偉達的合作中,谷歌發現在 2,000 個 CPU 上訓練出來的計算機視覺模型可以區分貓與人,而僅僅在 12 個 GPU 上進行訓練就可以達到相同的性能。于是,GPU成為了用于模型訓練和推理的常用晶片。

但是GPU也不是百分百适合深度學習。一方面,它們不能作為獨立晶片來使用。由于它們能執行的操作類型有限,是以必須依賴于 CPU 來處理其他操作。另一方面,GPU的高速緩存也非常有限 (這裡的高速緩存是與晶片處理器最接近的資料存儲區域), 這意味着大部分資料都存儲在晶片之外,并且必須在處理時進行存取。這些來來回回的資料流最終成為了計算的瓶頸,進而限制了 GPU 運作深度學習算法的速度。

用CPU做深度學習,成本低範圍廣?

在MIT教授 Nir Shavit偶然間發現CPU可以完成GPU的工作後,他誕生了創業的想法。于是他和MIT研究科學家 Alex Matveev 在 2017 年合夥創辦了一家名為公司Neural Magic的公司,宣稱能通過一種“專有算法”讓計算機在不配備專用硬體的前提下,運作複雜的數學函數,并使用更大規模的資料集。

官網連結:

https://neuralmagic.com/

該公司認為這不僅會降低深度學習的成本,還會使AI的使用範圍更廣。

Neural Magic用修改軟體來替代硬體改造。該公司重新設計了深度學習算法,通過利用晶片自身的大容量可用記憶體和複雜的核心,使得算法在 CPU 上能更高效地運作。盡管這種方式失去了由 GPU 的并行化帶來的速度,但據報道,由于它減少了在晶片内外傳送資料的需求,進而節省了大緻相同的時間。

該公司表示,這些算法可以在CPU上實作GPU的速度,但成本低了很多。

Neural Magic認為,以前沒有采用這一方法也是有原因的。首先,這違反了大衆普遍的認知。深度學習需要專用硬體的想法已經根深蒂固,以至于其他方法很容易就被忽略。其次,在行業中應用 AI 本身還是個相對較新的事物,并且很多公司剛開始尋找更簡單的方法來部署深度學習算法。

對于Neural Magic公司來說,目前尚不清楚這樣的新方法是否能夠成就他們。該公司的産品正在數10家公司中進行Beta測試,這僅是整個AI行業的很小一部分公司。

目前來看,Neural Magic所提供的服務是否實用還是因公司而異。

正如Shavit所說,他們有一個客戶是大型的顯微鏡裝置制造商,現在正在嘗試使用這種方法來為其顯微鏡增加 AI 功能。因為顯微鏡已經帶有 CPU,是以他們不需要增加任何額外的硬體。對于他們來說,使用基于GPU的深度學習模型的裝置則體積更大且更耗電。

但對于大部分公司來說,如果要先在專用硬體上訓練他們的模型,再使用 Neural Magic 的軟體将訓練後的模型轉換為與 CPU 相容的格式,就有點多此一舉了。

Shavit表示這也僅僅是個開始。Neural Magic 計劃在将來擴充其産品,以幫助其他公司在 CPU 上訓練 AI 模型。他說:“我們相信從現在開始10到20年後,CPU 将成為運作機器學習算法的實際架構。”

MIT計算機科學與人工智能實驗室的研究科學家Neil Thompson則不這麼确定。他說:“在晶片生産方面,經濟确實發生了變化,這将導緻更多的專業化。” 此外,盡管 Neural Magic 的技術能從現有硬體中獲得更高的性能,但基本的硬體改進仍将是繼續推動計算向前發展的唯一途徑。

“這聽起來是提高神經網絡性能的一種非常好的方法。但我們不僅要改善神經網絡,而且要改善整體計算,”Thompson說。

關于“無硬體深度學習”,你怎麼看?

好奇的文摘菌在reddit上逛了一圈,看看大家關于“無硬體深度學習”的看法。文摘菌發現了一個很直白的樓主,他問道,“Neural Magic這家公司是騙子嗎?是怎麼用CPU實作GPU級别的算力的?”

評論區的同學表示,“騙子”倒不至于,“他們的背景是多線程計算技術,是以我猜他們使用了大量的近似方法,比如誘導稀疏性、低精度、哈希、壓縮等,并自動生成非常高性能的多線程代碼。這也可以解釋為什麼他們要針對推理。”

“但如果你是一個深度學習研究人員,我覺得它可能不會對你非常有用。”

他還補充道,“由于架構和軟體方面的原因,這些東西通常在GPU上無法很好地運作。這就是為什麼現在稀疏圖工作負載通常在高性能計算的CPU上運作的原因。”

網友jminuse也表示,GPU在稀疏矩陣上效率較低,是以它們在本質上不如CPU能提供那麼多的加速。在這個問題域内是公平的,如果稀疏模型在精度上與稠密模型相等也是公平的。但是如果他們說“我們可以和GPU一樣快(如果我們使用的模型不那麼精确)”,這就不是一個好的比較。

還有網友稱,自己多年來也一直在用CPU訓練神經網絡,不過他們沒有Neural Magic那麼大膽的宣稱在所有情況下始終能夠以最快的速度運作。

對此,你怎麼看?歡迎各位技術大大在評論區分享經驗~

更多相關讨論詳見:

https://www.reddit.com/r/MachineLearning/comments/dtircc/d_is_neural_magic_a_scam/

繼續閱讀