Facebook把服務27億人的AI硬件系統開源了

  一直以來,社區對 Facebook 的硬件研究比較關注。在今日的開放計算項目全球峯會上,Facebook 技術策略主管 Vijay Rao 開源了全新的 AI 硬件:面向 AI 訓練與推理的硬件系統 Zion 與 Kings Canyon,以及針對視頻轉碼的 Mount Shasta。這篇博客內容對此進行了詳細介紹。

  Facebook 的基礎設施現在每月爲其整個應用和服務系統上超過 27 億的人提供服務。他們的工程師設計並創建了高級、高效的系統來擴大這一基礎設施,但是隨着工作負載的增長,單靠通用處理器已經無法滿足這些系統的需求。晶體管增長的速度已大大放緩,這就需要開發出專門的加速器和整體的系統級解決方案來提高性能、功率和效率。

  爲基礎設施創建高效的解決方案需要共同設計優化了工作負載的硬件。爲此,Facebook 一直與合作伙伴共同開發針對 AI 推理、AI 訓練和視頻轉碼的解決方案。這幾個都是其發展最快的服務。今天,Facebook 發佈了其用於 AI 訓練的下一代硬件平臺 Zion、針對 AI 推理的新定製芯片設計 Kings Canyon 以及用於視頻轉碼的 Mount Shasta。

  AI 硬件

  AI 工作負載的使用貫穿 Facebook 的架構,使其服務相關性更強,並改善用戶使用服務的體驗。通過大規模部署 AI 模型,Facebook 每天可以提供 200 萬億次推測以及超過 60 億次語言翻譯。Facebook 使用 35 億多公開圖像來構建或訓練其 AI 模型,使它們更好地識別和標記內容。AI 被應用於各種各樣的服務中,幫助人們進行日常互動,併爲其提供獨特的個性化服務。

  Facebook 上的大多數 AI 流程都是通過其 AI 平臺 FBLeaner 進行管理的,該平臺包含集中處理各部分問題的工具,如特徵庫、訓練工作流程管理以及推理機。與設計併發布到 Open Compute Project(OCP)的硬件相結合,這將能夠促使 Facebook 大規模、高效地部署模型。從一個穩定的基礎開始,Facebook 專注於創建與供應商無關的整合硬件設計,並且爲實現工作效率最大化,繼續堅持分解設計原則。結果就是 Facebook 推出了用於工作負載訓練和推理的下一代硬件。

  AI 訓練系統 Zion

  Zion 是 Facebook 下一代大存儲統一訓練平臺,設計上能夠高效處理一系列神經網絡,包括 CNN、LSTM 和 SparseNN。Zion 平臺能夠爲其嚴重的工作負載提供高存儲能力和帶寬、靈活高速的相連、強大的計算能力。

  Zion 採用了 Facebook 全新的、與供應商無關的 OCP 加速模塊(OAM)。OAM 形狀係數讓 Facebook 的合作伙伴(包括 AMD、Haban、GraphCore 和 Nvidia)可以在 OCP 通用規範上開發自己的解決方案。通過單個機架使用 TOR 網絡轉換,Zion 架構讓 Facebook 能夠在每個平臺上自由擴展到多個服務器。隨着 Facebook AI 訓練工作負載的規模和複雜性不斷增長,Zion 平臺也會隨之擴展。

  Zion 系統分爲三個部分:

  8 插槽服務器

  8 加速器平臺

  OCP 加速器模塊

  


  AI 訓練解決方案基礎模塊

  


  Zion 連接模塊圖解

  Zion 將系統的內存、計算和網絡密集型組件分離,使每部分都可單獨擴展。該系統爲 8 個 NUMA CPU 插槽提供了一個大型 DDR 存儲池,以滿足工作負載存儲容量密集型組件的需求,例如 SparseNN 的嵌入表。對

  CNN

  或者 SparseNN 密集部分這樣的存儲-帶寬密集型和計算密集的工作負載,每個 CPU 插槽都連接了 OCP 加速模塊。

  系統有兩個高速結構:連接所有 CPU 的相干結構和連接所有加速器的結構。因爲加速器存儲帶寬高但存儲容量低,因此通過以這樣的方式對模型進行分區來有效利用可用的總存儲容量,從而使訪問頻率較高的數據駐留在加速器上,訪問頻率較低的數據駐留在具有 CPU 的 DDR 內存上。所有 CPU 和加速器之間的計算和通信都是平衡的,並且通過高速和低速相連有效地進行。

  通過 Kings Canyon 執行推理

  一旦我們訓練完模型,就需要將其部署到生產環境中,從而處理 AI 流程的數據,並響應用戶的請求。這就是推理(inference)——模型對新數據執行預測的過程。推理的工作負載正急劇增加,這反映了訓練工作的大量增加,目前標準 CPU 服務器已經無法滿足需求了。Facebook 正與 Esperanto、Intel、Marvell 和 Qualcomm 等多個合作伙伴合作,開發可在基礎設施上部署和擴展的推理 ASIC 芯片。這些芯片將爲工作負載提供 INT8 半精度的運算,從而獲得理想的性能,同時也支持 FP16 單精度的運算,從而獲得更高的準確率。

  整個推理服務器的解決方案分爲四個不同的部分,它們會利用已發佈到 OCP 的現有構建塊。利用現有組件可以加快開發進度,並通過通用性降低開發風險。該設計的四個主要組成部分爲:

  Kings Canyon 推理 M.2 模塊

  Twin Lakes 單插槽(single-socket)服務器

  Glacier Point v2 承載卡(carrier card)

  Yosemite v2 機架

  


  圖:AI 推理解決方案模塊

  


  圖:AI 推理解決方案連接模塊圖解

  深度學習模型有很高的儲存要求。例如,SparseNN 模型具有非常大的嵌入表徵表,它會佔用好幾 GB 的存儲空間,並且還可能會持續增長。這樣的大模型可能不適合加載到單獨設備的內存中,不論是 CPU 還是加速器都不行,所以這就要求在多個設備內存上進行模型分割(model partitioning)。當數據位於另一個設備的內存中時,分割將產生很多通信成本。因此,好的圖分割(graph-partitioning)算法將嘗試捕獲局部的概念,從而降低通信成本。

  通過合適的模型分割,我們可以運行非常大的深度學習模型。例如 SparseNN 模型,如果單節點的內存能力不足以支持給定的模型,我們可以考慮在兩個節點中共享模型,並提升模型能訪問的內存量。這兩個節點可以通過多主機 NIC 連接,並支持高速信息處理。這將增加整體的通信成本,但我們可以利用跨多個嵌入表存在訪問差異的事實,相應地對錶進行排序而降低通信延遲。

  神經網絡硬件加速器編譯器

  ASIC 不運行通用代碼,因爲它們需要特定的編譯器才能將圖轉化爲在這些加速器上執行的指令。Glow 編譯器的目標是將供應商的特定硬件從更高級的軟件堆棧中抽象出來,使基礎設施不受供應商限制。它接受來自框架(如 PyTorch 1.0)的計算圖,併爲這些機器學習加速器生成高度優化的代碼。

  


  Glow 編譯器

  使用 Mount Shasta 進行視頻轉碼

  自 2016 年以來,Facebook Live 直播的平均數量每年翻一番。自 2018 年 8 月在全球推出以來,Facebook Watch 的月瀏覽量已經超過 4 億,每天有 7500 萬人使用。爲了優化所有這些視頻,使其能適應多種網絡環境,Facebook 生成了多個輸出質量和分辨率(或比特率),這個過程稱爲視頻轉碼。完成這個轉碼過程所需要的計算是高度密集型的,通用 CPU 無法滿足 Facebook 日益增長的視頻需要。爲了走在需求的前面,Facebook 與博通和芯原合作,設計爲轉碼負載進行優化的定製 ASIC。

  視頻轉碼流程被分解爲許多不同的步驟,下面將給出更詳細的介紹。這些步驟都是在今天的軟件中運行的,所以爲了提高效率,Facebook 與供應商合作,爲轉碼工作流程的每個階段創建了包含專用芯片的定製 ASIC。使用定製化的硬件來完成這些工作負載使得這一過程的能源使用更加高效,並支持實時 4K 60fps 流媒體等新功能。單個視頻編×××是標準化的,而且不經常修改,因此在這種情況下,定製芯片內在缺乏靈活性並不是一個顯著的缺點。

  視頻轉碼的第一個階段稱爲解碼,在解碼過程中,上傳的文件被解壓,以獲得由一系列圖像表示的原始視頻數據。然後,可以對這些未壓縮的圖像進行操作,以更改它們的分辨率(稱爲縮放),接下來再次使用優化設置進行編碼,將它們重新壓縮到視頻流中。將輸出視頻與原始視頻進行比較,計算質量指標,這些指標代表了相對於原始上傳視頻的質量變化。一般所有的視頻都採取這種做法,以確保所用的編碼設置可以產生高質量的輸出。視頻編碼和解碼使用的標準稱爲視頻編碼方式;H.264、VP9 和 AV1 是目前使用的主流編碼協議。  大連婦科醫院××× http://www.dlgcyy.cn/

  在 ASIC 上,除了每個軟件算法都被芯片內的專用部件所取代外,其他步驟都是相同的。平均而言,Facebook 希望這一視頻加速器比其目前的服務器效率高很多倍。他們希望業界的目標編碼在 10W 功耗內至少處理 2x 4K 分辨率和 60fps 的並行輸入流。ASIC 還需要支持多種分辨率(從 480p 到 60fps 的 4K)和多種編碼格式(從 H.264 到 AV1)。

  視頻轉碼 ASIC 通常有以下主要邏輯塊:

  ×××:接收上傳的視頻;輸出解壓縮的原始視頻流

  縮放器(Scaler):縮放解壓縮的視頻

  編碼器:輸出壓縮(編碼)視頻

  質量度量:衡量編碼步驟之後的視頻質量損失

  PHY:芯片與外界的接口;連接到服務器的 PCIe 和內存的 DDR

  控制器:運行固件並協調轉碼流程的通用塊

  


  視頻轉碼解決方案基礎模塊

  與推理一樣,Facebook 利用現有的 OCP 構件在數據中心部署這些轉碼 ASIC。ASIC 將安裝在帶有集成散熱器的 M.2 模塊上,因爲這種常見的電氣外形可以在不同硬件平臺上重複利用。它們被安裝在 Glacier Point v2 (GPv2) 載體卡中,該載體卡可以容納多個 M.2 模塊。這個 GPv2 載體卡具有和 Twin Lakes 服務器一樣的物理外形,意味着它可以適配 Yosemite v2 機架,並在其中與 Twin Lakes 服務器配對。

  因爲轉碼 ASIC 功耗低、體積小,Facebook 希望通過將儘可能多的芯片與單個服務器相連接來節約成本。高密度的 GPv2 實現了這一點,同時還提供了足夠的冷卻能力來承受數據中心的運行溫度。

  一旦完成軟件集成工作,Facebook 將平衡分佈在不同數據中心位置上異質硬件 fleet 的視頻轉碼工作負載。爲了在與各種機器學習和視頻空間供應商的合作過程中擴大規模,他們還努力確保軟件以開放的形式開發,並推廣和採用通用的界面和框架。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章