Categories
程式開發

CPU上運算比GPU還快?美國萊斯大學最新研究克服硬件障礙


美國萊斯大學的計算機科學家們發明了一種在CPU上比GPU更快地訓練深度神經網絡的算法SLIDE,克服了人工智能產業迅速發展的一個主要障礙,證明了在不依賴於圖形處理單元( GPU)等專業級加速硬件的情況下,也能夠實現對深度學習技術的加速。

根據外媒報導,萊斯大學的計算機科學家們已經克服了人工智能產業迅速發展的一個主要障礙,他們證明了在不依賴於圖形處理單元(GPU)等專業級加速硬件的情況下,也能夠實現對深度學習技術的加速。這個名為SLIDE的算法是第一個在CPU上比GPU更快地訓練深度神經網絡的算法。

在奧斯汀召開的2020機器學習系統會議MLSys上,來自萊斯大學的計算機科學家們,在來自英特爾公司的合作夥伴的支持下,於3月2日在奧斯汀會議中心展示了他們的最新研究成果。

當下,為了實現深度學習,許多公司正大力投資於圖形處理單元(GPU)和其他專業級硬件。深度學習是一種強大的人工智能,如今亞馬遜Alexa和蘋果Siri等智能助理、面部識別、產品推薦系統和其他技術都有深度學習在背後作為支撐。深度學習炙手可熱的程度可以舉一例說明,作為一手打造該行業金字招牌“特斯拉V100 Tensor Core GPU”芯片的製造商,Nvidia公司最近的財務報告顯示,其2019第四季度收入同比增長了41%。

而萊斯大學的研究人員創造了一種可替代GPU的節省成本的算法,稱為“次線性深度學習引擎”(sub-linear deep learning engine,簡稱SLIDE),這種算法只需使用一般通用的中央處理器(CPU),而無需專業級的加速硬件。

“我們的測試表明,SLIDE是第一個基於CPU實現的深度學習智能算法,它的性能可以超越那些依照產業規模的建議採用大型全連接架構使用GPU硬件加速來實現數據集的方法”,Anshumali Shrivastava這樣說。這位萊斯大學布朗工程學院的助理教授與研究生Beidi ChenTharun Medini一起開發了該SLIDE算法。

SLIDE不需要依賴於GPU,因為這種算法從根本上採用了一種完全不同的深度學習方法。深度神經網絡訓練技術標準的“反向傳播”算法需要矩陣乘法,如此繁重的計算量正是適合GPU發揮性能的理想場所。然而,通過SLIDE算法,Shrivastava、Chen和Medini把神經網絡訓練轉變成為一個可以用哈希表來解決的搜索問題。

與反向傳播訓練技術相比,這種SLIDE算法可以從根本上減少大量的計算開銷。 Shrivastava舉例說,如今諸如亞馬遜、谷歌以及其他公司使用GPU打造的基於雲的深度學習服務的頂級平台,一般會使用8塊“特斯拉V100”芯片,其費用約為10萬美元。

萊斯大學計算機科學研究生Beidi Chen和Tharun Medini參與開發了SLIDE,這是一種無需依賴圖形處理單元對深度神經網絡進行訓練的算法。 (圖片來源:Jeff Fitlow/萊斯大學)

“我們有一個在實驗室運行的測試用例,它完全能承載一塊V100芯片的工作負荷,也即是一個適用於GPU內存的,運行在大型全連接網絡中有超過1億個參數的計算量” ,Shrivastava說,“我們用最先進的谷歌的TensorFlow軟件包來訓練該算法,它只花了3個半小時就完成了訓練。”

“我們隨後證明,我們的新算法甚至可以在一小時內完成該訓練,而且並不是運行在GPU上,而是運行在44核的xeon-class CPU上,” Shrivastava說。

深度學習網絡的靈感來自生物學,其核心特徵是人工神經元,這些神經元是一小段可以學習並執行特定的任務計算機代碼。一個深度學習網絡可能包含數百萬甚至數十億這種人工神經元,只要通過對海量數據的學習,這些神經元共同工作就有可能學習並做出與人類水平相當的專家決策。例如,如果一個深度神經網絡被訓練來識別照片中的物體,當識別一張貓的照片或是識別一輛校車時,它將使用不同的神經元來進行學習。

“你不需要對每個用例的所有神經元都進行訓練,” Medini解釋說,“我們是這樣想的,’如果我們只去挑選出相關的神經元,那這就變成了一個搜索問題。 ‘ 因此,從算法上講,我們的想法就是使用局部敏感哈希算法來避免矩陣乘法的複雜性。”

哈希算法是20世紀90年代為互聯網搜索發明的一種數據索引方法。它使用數字方法將大量信息,例如整個網站所有網頁或一本書的所有章節,編碼為一串稱為哈希散列的數字。哈希表就是記錄這些哈希散列值並可以實現快速搜索的列表。

“在TensorFlow或PyTorch上實現我們的算法是毫無意義的,因為這些軟件執行的第一件事就是不管三七二十一先把你正在做的事情轉換成一個矩陣乘法問題,” Chen說。 “而這正是我們的算法想要避免的。所以我們是從零開始寫我們自己的C++代碼的。”

Shrivastava說,SLIDE相對於反向傳播的最大優勢在於它採用了數據並行的方式。

“我的意思是,通過數據並行,如果我想要訓練兩個數據實例,比方說一個是一隻貓的形象,另一個是公共汽車,他們可能會激活不同的神經元,該SLIDE算法可以對這兩個實例分別獨立地進行更新或訓練,” 他說,“這就大大地提高了CPU並行性的利用率。”

“另一方面,與GPU相比,我們需要更大的存儲空間,” 他說,“在主存儲器中有一個緩存層次結構,如果你使用時不夠小心,可能會遇到一個叫做內存顛簸(cache thrashing)的問題,那樣就會發生大量缺頁中斷。 ”

Shrivastava說,他的團隊第一次使用SLIDE進行實驗時,就發生了嚴重的內存顛簸,但他們的訓練時間仍然與GPU的訓練時間相當,甚至更快。於是,他、Chen和Medini於2019年3月在arXiv上發布了初步實驗結果,並將他們的代碼上傳到GitHub。幾週後,英特爾公司主動聯繫了他們。

“來自英特爾的合作夥伴注意到了我們實驗中的緩存問題,” 他說,“他們告訴我們,他們可以與我們進行合作,讓這個算法更快地完成訓練,之後的事實證明他們是正確的。在他們的幫助下,我們的實驗性能又提高了約50%。”

Shrivastava說,SLIDE還遠遠未達到其最大潛力。

“我們只能算是初嘗甜頭而已,” 他說,“我們還可以做很多事情來對這個算法進行優化。例如,我們還沒有使用矢量化,也沒有在CPU中使用內置的加速器,比如Intel Deep Learning Boost技術。我們還有很多其他的技巧可以讓這個算法變得更快。”

Shrivastava說,SLIDE的重要性在於,它證明了還有其他方式來實現深度學習。

“我們想要傳達的整個信息是,’我們不要被矩陣乘法和GPU內存這兩個瓶頸所限制住,’ ” Chen說,“我們的算法可能是第一個擊敗GPU的算法,但我希望它不是最後一個。這個領域需要新的想法,而這正是這次MLSys機器學習系統會議的重要意義所在。”

該算法的其他共同作者包括James Farwell、Sameh Gobriel和Charlie Tai,他們都是來自英特爾實驗室的成員。

該研究還得到了美國國家科學基金會(NSF-1652131, NSF-BIGDATA 1838177)、空軍科研辦公室(FA9550-18-1-0152)、亞馬遜和海軍研究辦公室的支持。

相關鏈接和資源:

MLSys機器學習系統會議文件:
https://www.cs.rice.edu/~as143/Papers/SLIDE_MLSys.pdf

作者介紹:

Jade Boyd,萊斯大學公共事務辦公室的科學編輯和新聞與媒體關係副主任。

英文原文:

Deep learning rethink overcomes major obstacle in AI industry