機器學習領域:硬體的未來是軟體 - octoml

banq發表於2022-01-12

通用 GPU 計算幫助開啟了深度學習時代。然而,隨著 ML 模型變得越來越大,計算量越來越大,它們改變了 GPU 的設計方式——它們激發了一波看起來與 GPU 完全不同的新硬體。從電池供電的嵌入式裝置到高階資料中心,專用機器學習硬體正在佔據主導地位。僅舉幾例:谷歌、蘋果、微軟、Facebook和特斯拉)都有內部 ML 加速器都有人工智慧硬體。新一代的初創公司已經湧現,他們對高效 ML 硬體的未來充滿了新穎的願景。在商用 CPU 數十年的穩定之後,硬體環境再次令人興奮。
然而,超高效的定製 ML 硬體的問題在於,僅靠更好的硬體是不夠的。強大的硬體需要一個軟體堆疊,使其功能可用於應用程式。即使是比主流 GPU 快 100 倍且效率更高的加速器,如果使用起來不切實際,它實際上也無法替代 GPU。標準硬體比任何新硬體都有很長的領先優勢:工程師和機器學習科學家已經知道如何使用它,並且使用它需要零行程式碼來改變。為了充分發揮其潛力,新的 ML 加速器需要在軟體和硬體上展開競爭。
 
現代 GPU 不僅僅是硬體產品。當有人購買用於 ML 計算的 GPU 時,他們也購買了圍繞它構建的整個軟體生態系統。使用主流硬體會在三個層面帶來軟體優勢:框架、庫和語言。
  • 框架:從PyTorchJAX的整個現代 ML 框架範圍都對標準 CPU 和 GPU 提供一流的支援。任何新硬體都需要與使用為這些框架編寫的所有現有程式碼的簡單性競爭。這些框架的廣度使它們對透過重新實現主流框架中的所有功能來實現“GPU 平價”的新硬體望而卻步。例如,PyTorch 的完全替代需要覆蓋其原生張量計算介面中的所有 2,239 個函式,並跟上每個新版本的變化。
  • 庫:每個 GPU 都帶有經過高度調整的軟體庫,可從底層硬體中提取最佳效能。例如,cuDNN代表了數十年來為每個 Nvidia GPU 架構精心最佳化重要運算元所付出的努力。一個專門的專家團隊確保 cuDNN 在最新流行的 ML 模型上從每個新的 GPU 架構提供最佳效能。即使新硬體理論上可以勝過 GPU,它仍然可能會輸給專家軟體工程的純粹投資。
  • 語言:對於低階效能工程,應用程式依賴於用接近金屬程式語言(如CUDA)編寫的程式碼。流行的程式語言具有強大的鎖定效應:隨著時間的推移,它們建立了寶貴的開發人員思想份額,整個工具生態系統圍繞它們成長。從語法熒光筆到互動式偵錯程式,客戶喜歡熟悉的程式設計環境是有充分理由的——即使它們是以效能為代價的。

綜上所述,這些優勢意味著交付硬體產品所需要的不僅僅是構建硬體本身。圍繞傳統 GPU 的生態系統的廣度和深度意味著,任何一家新硬體供應商都無法僅憑硬體的技術優勢進行競爭。

相關文章