nvidia nvlink互联与nvswitch介绍
一.動機
在nvidia推出目前這個方案之前,為了獲得更多的強力計算節點,多個GPU通過PCIe Switch直接與CPU相連。
他們之間的pcie 3.0*16有接近32GB/s的雙向帶寬,但是當訓練數據不停增長的時候,這個互聯方案本身卻成為了致命的系統瓶頸。如果不改進這個互聯帶寬,那么新時代GPU帶來的額外性能就沒法發揮出來,從而無法滿足現實需求負載的增長。
二.NVLink
為了解決這個問題,nvidia開發了一個全新的互聯構架nvlink。單條nvlink是一種雙工雙路信道,其通過組合32條配線,從而在每個方向上可以產生8對不同的配對(2bi*8pair*2wire=32wire),第一版的實現被稱為nvlink 1.0,與P100 GPU一同發布。一塊P100上,集成了4條nvlink。每條link具備雙路共40GB/s的帶寬,整個芯片具備整整160GB/s的帶寬。
當然,nvlink不僅僅只是限定在GPU之間互聯上。IBM將nvlink 1.0添加到他們基于Power8+微架構的Power處理器上,這一舉措使得P100可以直接通過nvlink于CPU相連,而無需通過pcie。通過與最近的power8+ cpu相連,4GPU的節點可以配置成一種全連接的mesh結構。
2.1DGX-1
第一種nvidia專門為AI加速訂制的機器叫做dgx1,它集成了八塊p100與兩塊志強e5 2698v4,但是因為每塊GPU只有4路nvlink,這些GPU構成了一種混合的cube-mesh網絡拓撲結構,GPU被4塊4塊分為兩組,然后在互相連接。
同時,因為GPU需要的pcie通道數量超過了芯片組所能提供的數量,所以每一對GPU將連接到一組pcie switch上與志強相連,然后兩塊志強再通過qpi總線連接。
6塊P100,每塊16GB HBM2顯存,總計128GB顯存和512GB DDR4-2133系統內存。
2.2 nvlink 2.0
nvlink的第二個版本與gv100一同而來。IBM計劃在Power9 cpu上給與支持。nvlink 2.0提升了信號的傳輸率,從20Gb/s到了25Gb/s,雙信道總計50GB/s,pre nvlink。同時進一步提升了nvlink數到6路。這些舉措讓v100的總帶寬從p100的160GB/s提升到了300GB/s。
順便說下,除了帶寬的增長,nvidia還添加了數個新的operational feature到協議本身。其中最有意思的一個特性是引入了coherency operation緩存一致性操作,它允許CPU在讀取數據時緩存GPU顯存信號,這將極大的降低訪問延遲。
去年nvidia將原始dgx-1升級到v100架構。因為主要的cube-mesh拓撲結構并沒有變化,所以多出來的link用來倍化一些GPU之間的互聯。
2.3 DGX-2
最近的GTC2018發布的dgx-2,其加倍了v100的數量,最終高達16塊v100。同時hbm2升級到32GB/塊,一共高達512GB,cpu升級為雙路2.7G 24核 志強白金8168.
升級到16塊GPU,對于系統而言也要做出巨大的改變,特別是更快更大的互聯網絡帶寬。
2.4 NVSwitch
那么dgx-2中裝載的是什么呢,是一塊新的asic - nvswitch。nvswitch是一塊獨立的nvlink芯片,其提供了高達18路nvlink的接口。這塊芯片據說已經開發了兩年之久。其支持nvlink 2.0,也就意味著每個接口均能提供雙信道高達50GB/s的帶寬,那么這塊芯片總計能夠提供900GB/s的帶寬。這塊芯片功率100w,基于臺積電12nm FinFet FFN nvidia訂制工藝,來源于增強的16nm節點,擁有2b個晶體管。
這塊die封裝在1940個pin大小為4cm2的BGA芯片中,其中576個針腳專門服務于18路的nvlink,剩下的陣腳則用于電源,或者其他I/O接口,比如用于管理端口的x4 pcie,I2c,GPIO等等。
通過nvswitch提供的18路接口,nvswitch能夠讓nvidia設計出完全無阻塞的全互聯16路GPU系統。每塊v100中的6路nvlink將分別連接到6塊nvswitch上面。這樣8塊v100與6塊nvsiwtch完全連接,構成一個基板。
dgx2擁有兩塊基板,這兩塊基板則是通過nvswitch剩余的另一側接口完全互聯在一起,這就構成了一個16路全連接的GPU構架。
兩塊基板之間的nvswitch之間都有八路link互聯,16塊GPU每塊有6路nvlink的情況下,其總雙路帶寬達到2400GB/s。有趣的是,其實nvswitch有18路接口nvidia卻只用到了其中16路。一種可能性是nv留下兩路用于支持ibm的power9處理器(dgx1和2都是用的志強)。在這個復雜的結構中,power9處理器可能分別接在兩塊基板的nvsiwtch上,這樣GPU也與Power9處于全連接狀態。如果CPU直接與nvswitch相連,那么pcie就不再擔任cpu與gpu相連的責任。目前nvidia還沒有向其他廠商開放nvswitch,如果他們決定開放,將會產生一些新型態的,可能更加規模龐大的結算節點。
在原始的dgx-1中,執行GPU之間的事務處理需要一個額外的hop,這將導致遠程訪問的不一致性。在很多負載中,這會讓利用統一尋址變得困難,產生了一些不確定性。在dgx2中,每一塊gpu都可以于另外一塊gpu以相同的速度和一致性延遲交流。大型的AI負載能夠通過并行化的模型技術得到巨大的提升。回到GTC中,nvidia賦予的名稱“世界最大的GPU”。在實踐中,因為每塊GPU和其他伙伴直接互聯,統一尋址也變的簡單有效。現在,可以合并512GiB高速帶寬的顯存,將他虛擬化成一塊統一的內存。無論是GPU本身還是nvswitch都有相應的算法用于實現這一統一的內存系統。在程序層面,整臺機器將會被當作一塊GPU和一個整體的顯存,這個顯存子系統將會自行管理顯存layout,提供最優化的組織架構。
總結
以上是生活随笔為你收集整理的nvidia nvlink互联与nvswitch介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XDP(eXpress Data Pat
- 下一篇: 显卡欺骗器状态检测及安装注意事项