Facebook基礎架構副總裁Jason Taylor說,Facebook「確實成立了一支專門與晶片供應商合作的晶片團隊,同時,我們也在打造自家晶片。不過這當然不是我們的首要關注重點。」他表示,這款晶片「并不等同于Google TPU」深度學習加速器,但他并未提供與這款晶片有關的更多細節或時間表。
Facebook的新晶片部門工作重點之一在于與大約50家設計人工智慧(AI)加速器的公司合作。Taylor指出,「市場上將出現許多加速器晶片。但最大的問題在于他們針對的工作負載是否是當前最重要的。」
在主題演講中,Taylor將Glow描述為一種通用編譯器,讓開發人員能夠針對云端或網路邊緣中任何新興深度學習加速器進行推論任務。它并不針對智慧型手機等客戶端系統。
「我們預期[推論加速器]市場將會出現硬體零碎化的情況。我們開發Glow的目的在于協助機器學習專家設計神經網路,而不必面對調整『每個特定晶片』所需的工作。」
「我們知道硬體零碎化即將發生,因為沒有人知道哪一種[硬體]資源的組合——例如晶片上記憶體區塊和乘法累加陣列——將會勝出,因此我們讓開發人員專注于高層級的圖形,而無需為硬體規格手動編碼。」
Facebook基礎架構副總裁Jason Taylor形容Glow是一款為云端和邊緣網路進行推論的編譯器(來源:Facebook)
Taylor解釋,Glow采用由TensorFlow或Caffe2等架構產生的AI圖形,并將其渲染為硬體加速器的位元程式碼。根據Facebook的一篇部落格文章,該編譯器內含幾種工具,包括為晶片特定記憶體配置產生有效程式碼的指令排程器、線性代數最佳化器與記憶體分配器,以及用于測試硬體精確度的CPU參考建置。
益華電腦(Cadence)、Esperanto Technologies、英特爾(Intel)、Marvell和高通(Qualcomm)等公司都表示未來的晶片將支援Glow。Taylor則表示希望進一步擴展支援名單。「這是Glow作為開放來源的優點之一。」
一位資深晶片專家將Glow描述為在生產系統中部署神經網路的架構。其輸入是在TensorFlow或Caffe2等架構中創建的圖形。
幾家既有的晶片制造商已經提供了類似的軟體。例如,輝達(Nvidia)的Tensor RT自架構中提取圖形,并為其GPU輸出Cuda程式碼。
傳統上,編譯器針對特定晶片進行嚴密的最佳化。但是,Taylor說:「近來的編譯器范圍比過去的更加廣泛——Glow中的最佳化必須能辨識可以渲染到硬體加速器的大部份圖形。」
轉型AI的前兆?
在快速發展的深度學習領域,Glow可說是致力于填補軟體和硬體之間差距的最新例證。例如,Nvidia Tensor RT雖然在一年多前才首次發布,至今已進展到第五個版本了。但有些加速器新創公司對于支持各種軟體架構及其變化所要求的工作程度也無能為力。
Facebook、微軟(Microsoft)和其他公司則都支援ONNX——一種以權重表現圖形的標準方法。去年12月,Khronos Group還發布了用于深度學習加速器的硬體抽象層NNEF。
Glow是Pytorch 1.0的一個組成部份。Pytorch 1.0是一個開放來源計劃組合,包括合并的Caffe2和Pytorch架構。Pytorch 1.0的第一個開發者大會將于今年10月在舊金山舉行。
Facebook工程經理Kim Hazelwood在另一場活動中展示Facebook使用的十幾種不同深度學習工作負載,其中至少使用了四種不同類型的神經網路。每天,該AI應用程式(App)產生超過200兆個推論,翻譯超過50億個文本,同時也自動刪除至少100萬個假帳戶。
她說,Facebook的一些推論任務需要的運算量是其他任務的100倍。如今,Facebook在其設計的一小部份CPU和GPU伺服器上執行這些任務。
Hazelwood在接受《EE Times》訪問時說,從通用硬體轉向客制硬體,必須為那些仍在定義中的工作負載量身打造晶片。但她拒絕透露Facebook對于使用任何自定義AI加速器的想法。
在至少十幾種深度學習app中,僅Facebook本身就采用了至少5種神經網路
一位觀察家推測,Glow可說是一款理想的工具,有助于讓公司采用適合其工作負載的加速器。Facebook的晶片團隊還能協助精選晶片,或許還可以為其提出客制化晶片的建議。
此外,Facebook的一篇部落格文章描述它所開發的一款全新軟體工具,使用深度學習來除錯程式碼。SapFix可以自動產生針對特定錯誤的修復程式,然后提交給工程師進行審核并部署至生產中。
目前,Facebook已經使用SapFix,加速為使用Facebook Android App的數百萬裝置發送程式碼更新的過程。Facebook表示將發布該工具的一個版本,但未具體說明時間表。