業界:開源硬件挑戰 GPU 計算極限

機器學習 GPU 編程語言 Facebook 機器之心 2017-04-12

選自:Nextplarform

機器之心編譯

參與:侯韻楚、黃小天


世界上的 hyperscaler 愈發依賴於機器學習算法,來提供其眾多應用程序中用戶體驗與操作的一個重要部分;因此他們也在挑戰機器學習框架以及被用來部署框架的系統的極限,而這並不值得大驚小怪。Facebook 和微軟在開放計算峰會(the Open Compute Summit)中展示了他們最新的 CPU-GPU 混合設計,並對如何最佳利用 Nvidia 最新的「Pascal」特斯拉加速器提出了一些洞見。

無獨有偶,為支持機器學習工作負載而創建的特殊系統,將會為特定種類的加速傳統型 HPC 工作負載,甚至是 GPU 加速的數據庫工作創建極佳的節點。對這一類有益的系統往往也會對另一類有益,並且 Facebook 和微軟的系統之間存在一定的相似性。例如胖節點將被用作未來「峰會」和「Sierra」超級計算的構建基塊,後者是由IBM、Nvidia 以及 Mellanox 公司組成的美國能源部建立。可以說,對擴展 GPU 計算能力舉足輕重的 NVLink 互連在設計時已經將 hyperscalers 和 HPC 店鋪考慮在內,但如今 hyperscalers 更熱衷於獲取 Pascal GPU 並將它們捆綁進入緊密耦合的計算複合體。他們還能從這方面的大量預算中獲益,而由政府和學術界資助的 HPC 中心存在著一些預算問題。儘管自從去年以來,Nvidia 一直在銷售自己的DGX-1 混合系統,但該系統從未以成為 hyperscalers 或 HPC 中心購買的產品(即數百或數千個節點)為目標,而是想要成為這樣的機器——使被選中的研究人員能在產品首次展示時獲得 Pascal GPU,並由此開始他們在機器學習方面的努力(當然也有例外,如日本 RIKEN 的新型 DGX-1 集群或 Nvidia 自己安裝的集群)。

2015年12月,社交媒體巨頭在 NIP 會議(神經信息處理系統會議,the Neural Information Processing Systems conference )上公佈了首代服務器 Big Sur ,而 Facebook 在 OCP 峰會上揭幕的 Big Basin ceepie-geepie 系統便是其繼承者。Big Sur 填充了 8 個 Nvidia Tesla M40 加速器,這 8 個加速器可以插入 PCI-Express 3.0 x16 插槽,擁有供CUDA 應用程序使用的 12 GB GDDR5 幀緩衝存儲器,還包括兩個可插入很高機箱的 Haswell Xeon E5 處理器。

通過轉換到具有 16GB HBM 存儲器的 Pascal Teslas 的 SMX 變體,Facebook能夠在 Big Basin 服務器內運行更大的數據集,同時可以在 CUDA 內核與 HBM 存儲器之間提供更多內存帶寬,並驅動其後的更多浮點。通過支持半精度運算,Pascal GPU擁有 64 GB 有效內存,並可能在更大數據集中四倍於有效浮點運算,因此相對於 Maxwell M40 及 Pascal P100 代GPU 加速器 33% 的原始容量增長,機器學習模型會大得多。M40 上的單精度運算是 7 萬億次,在 P100 上則是 10 萬億次,因此匹配度為 30%;而移至半精度時它將再次加倍,模型也會更大。

業界:開源硬件挑戰 GPU 計算極限

Facebook 想要通過 Big Basin 的 CPU-GPU 節點,來使計算中的 CPU 部分從 GPU 部分中分離出來。所以 Big Basin 在技術上並不是服務器,而更像 GPU 的外殼——僅僅是一群 GPU 或是 lingo 中的 JBOG;比如去年揭幕的「閃電」NVM-Express 存儲外殼只是一束閃光或 JBOF;又如「Knox」、「Honey Badger」以及新的「Bryce Canyon」陣列也僅僅是一堆磁盤或JBOD。Facebook 目前正在部署一個「Leopard」服務器,它把早期的 Xeon 處理器作為將工作卸載到大型 JBOG 的頭節點,但它將會附加新的「Tioga Pass 」雙插槽系統,即採用英特爾未來的「Skylake」Xeon處理器作為頭節點。這就是將CPU 與 GPU 計算進行分離的含義。如今它們可以彼此獨立地安裝和升級,但只有在設備之間的網絡足夠快時才可能實現。

業界:開源硬件挑戰 GPU 計算極限

Big Basin的主板設計受到了 Nvidia DGX-1 的啟發,並且它像 DGX-1 系統那樣部署了 Pascal P100 顯卡的 SMX2 變體,這種變體的鏈接方式很特殊,能夠將信用卡大小的組件直接安裝在主板上;其他的 Pascal 顯卡具有插入 x16 插槽的 PCI-Express 形狀因子。Big Basin 系統有兩個 board,每個 board 有四個 Pascal SXM2 組件,就像這樣:

業界:開源硬件挑戰 GPU 計算極限

該系統具有四個 PCI-Express 交換機,用於 GPU 彼此間以及與 Xeon 計算複合體的交叉耦合;另外,這兩者之間的分解意味著 Facebook 可以在 AMD Opteron、ARM 或 Power 9 處理器組件間進行互換,而不必更改與系統相關的其他信息。Big Basin 的參數要求 GPU board 必須支持下一代的 SXM2 卡,這意味著「Volta」GPU 將與當前的「Pascal」GPU 插槽兼容,至少在由SXM2組件表示的互連級別方面是這樣。

GPU 使用 4 個 mini-SAS 連接器使主機 Xeon 模塊與 JBOG 外殼相連,而 NVLink 端口則在混合立方體網格中將 GPU 彼此交叉耦合。就像這樣:

業界:開源硬件挑戰 GPU 計算極限

在由廣達電腦旗下的 hyperscale 部門廣達雲科技為 Facebook 構建的 Big Basin 中,有趣的是 NVLink 1.0 端口以 20 Gb /秒的速率運行,但下一代 NVLink 2.0 端口「能使串行器的運行速率達到25.78125Gb/秒」。這個「能使」十分精確,事實上我們知道,NVLink 2.0 端口以及更通用的「Bluelink」端口在 Power9 處理器上的運行速率都在 25 Gb /秒。Facebook 所顯示的 NVLink 拓撲圖表中,有趣的是每個 Pascal 架構的 GPU 都具有 4 個 NVLink 1.0 端口,但 Volta 架構的 GPU 將有6 個 NVLink 2.0 端口。這使 GPU 之間能存在更多的交叉耦合與更緊密的鏈接,對於更大規模但不需要最緊密耦合的NVLink 群集來說也是如此。

Facebook 的 Big Basin 內部有兩種不同的拓撲結構,可通過翻轉 PCI-Express 交換機設置中重定時器顯卡的跳線進行設置。這是第一種拓撲結構:

業界:開源硬件挑戰 GPU 計算極限

這是第二種拓撲結構:

業界:開源硬件挑戰 GPU 計算極限

一個很大的差異是會有 1 個 x16 管道或 2 個 x8 管道離開 GPU 複合體;產生如此巨大差異的原因尚不明確。

設計 Big Basin 的工程師 Kevin Lee 解釋道:「與 Big Basin 相比,我們能在使用 Resnet-50(一個流行圖像分類模型)的測試中達到幾乎 100% 的吞吐量改進,這使我們在使用更復雜模型的同時能夠更快地進行實驗」。Facebook 的訓練的是單精度的,所以它顯然看不到在進行雙精度訓練和移動至半精度訓練時那樣的跳躍。


進入 HGX-1

微軟在 OCP 峰會上揭曉的 ceepie-geepie 黑箱已經開始與鴻佰科技(Ingrasys)共同開發,鴻佰科技是一家隸屬於製造商巨頭富士康的 OpenPower 平臺製造商。微軟通過 OCP 峰會發布了機器學習黑箱 HGX-1 的開源代碼,並希望各大公司將其作為機器學習訓練模型的標準。正如上文所言,如果 MPI (Message Passing Interface )協議能夠被正確移植到具有某種層次結構的 NVLink 和 PCI-Express 上,HGX-1 或許就能為超級計算機群創建一個良好的胖節點。

業界:開源硬件挑戰 GPU 計算極限

微軟的開源服務器項目 Olympus 的 HGX-1 變體與 Big Sur 黑箱相似,它支持 8 個 Pascal SXM2 GPU 模塊,並且在系統內使用 PCI-Express 互連連接 GPU 處理複合體與 Xeon 計算複合體。

發稿時,HGX-1 系統拓撲結構的速度和饋送的相關信息還尚未提供,但 Nvidia 的加速計算部門的副主管 Ian Buck 告訴 The Next Platform ,HGX-1 系統將會在 1 個黑箱之內和多個黑箱之間具有一組級聯式 PCI 交換機。在 1 個黑箱中,這個 PCI-Express 交換複合體允許系統中 2 個 Xeon 處理器的其中 1 個動態性地直接對 1 個、4 個或 8 個 GPU 尋址,而且還允許在使用與 DGX-1 和 Big Basin 系統相同的混合立方體網格的 NVLink 虛擬存儲器上緊密共享數據。微軟正在擴展這種 PCI-Express 網絡,使其能連接多達 4 個 HGX-1 系統,並允許複合體中 8 個 Xeon 處理器中的任何一個有權訪問 32 個 Pascal P100 SXM2 模塊中的數據,並通過使用微軟的 CNTK 開源機器學習框架將 HGX-1 節點的內存和計算能力有效地增加 4 倍。

雖然微軟最初設計 HGX-1 是為了支持 Nvidia Pascal 的計算模塊,這無疑遠未過時且可以採取 Volta 模塊,但不要產生誤解。微軟依舊保留著靈活的選擇權。

微軟 Azure 共享雲的一位傑出工程師 Leendert van Doorn 告訴我們:「HGx-1 的機箱對 Nvidia GPU 進行了優化,但它沒有理由不支持 AMD Radeon GPU 或英特爾 Nervana 的機器學習芯片。」

相關推薦

推薦中...