本發(fā)明涉及一種基于pcie?ntb的gpu跨主機通信互聯(lián)系統(tǒng),屬于pcie?switch互聯(lián)。
背景技術(shù):
1、隨著云計算、大數(shù)據(jù)和人工智能技術(shù)的飛速發(fā)展,全球?qū)Ω咝阅苡嬎阗Y源的需求顯著增加,尤其是對圖形處理單元(gpu)的需求變得尤為突出。傳統(tǒng)的中央處理單元(cpu)雖然在通用計算任務(wù)上表現(xiàn)出色,但面對復(fù)雜的深度學(xué)習(xí)算法、大規(guī)模數(shù)據(jù)處理和實時圖像/視頻處理等高計算密集型任務(wù)時,其性能和效率往往難以滿足需求。相比之下,gpu憑借其高度并行的計算架構(gòu),能夠同時處理大量的數(shù)據(jù)流和計算任務(wù),顯著加速了訓(xùn)練神經(jīng)網(wǎng)絡(luò)、圖像渲染以及高維數(shù)據(jù)分析等工作。
2、特別是在人工智能領(lǐng)域,深度學(xué)習(xí)模型的訓(xùn)練和推理需要處理大量的矩陣乘法和并行計算,這正是gpu的強項。因此,gpu逐漸成為大數(shù)據(jù)分析、自動駕駛、自然語言處理、圖像識別等關(guān)鍵技術(shù)領(lǐng)域中不可或缺的計算引擎。同時,云計算的普及使得按需獲取大規(guī)模的gpu集群成為可能,gpu通信互聯(lián)技術(shù)的普及極大地提升了數(shù)據(jù)中心的計算能力,推動了新興技術(shù)的發(fā)展。
3、主流的gpu通信互聯(lián)方法是nvidia公司開發(fā)的gpu直接傳輸(gpudirect)技術(shù)。gpu通信互聯(lián)系統(tǒng)一般分為兩種場景:單主機多gpu卡的通信互聯(lián)和多主機多gpu卡的跨主機通信互聯(lián)。
4、gpu直接點對點傳輸(gpudirect?p2p)技術(shù)應(yīng)用于單機多卡場景,這種技術(shù)允許多個gpu直接通過高速互聯(lián)(如pcie或nvlink)彼此通信,繞過cpu和系統(tǒng)內(nèi)存。這種直接訪問機制減少了cpu參與數(shù)據(jù)傳輸?shù)男枨?,降低了延遲,提高了帶寬利用率。
5、gpu直接遠程內(nèi)存訪問(gpudirect?rdma)技術(shù)應(yīng)用于多機多卡場景,完美解決了計算集群節(jié)點間gpu卡的通信問題。gpudirect?rdma被設(shè)計用來支持gpu間快速跨主機通信,它結(jié)合了gpu加速計算和rdma(remote?direct?memory?access,遠程直接內(nèi)存訪問)技術(shù),實現(xiàn)了在gpu和rdma網(wǎng)絡(luò)設(shè)備之間直接進行數(shù)據(jù)傳輸和通信的能力。它允許gpu直接訪問rdma網(wǎng)絡(luò)設(shè)備中的數(shù)據(jù),無需通過主機內(nèi)存或cpu的中介。而rdma通信網(wǎng)絡(luò)的實現(xiàn)依賴于特定的硬件和軟件支持。在硬件層面,rdma技術(shù)可以通過infiniband(一種高性能網(wǎng)絡(luò)互連技術(shù),主要用于數(shù)據(jù)中心、超級計算機和高性能計算領(lǐng)域)、roce(rdma?over?convergedethernet,是一種允許通過以太網(wǎng)進行遠程直接內(nèi)存訪問的技術(shù))和iwarp(internet?widearea?rdma?protocol,一種在以太網(wǎng)上實現(xiàn)遠程直接內(nèi)存訪問的協(xié)議)等技術(shù)實現(xiàn)。infiniband是專為rdma設(shè)計的網(wǎng)絡(luò),需要專用設(shè)備。roce和iwarp都是基于以太網(wǎng)的rdma技術(shù)。
6、gpudirect?rdma技術(shù)通過允許gpu直接與網(wǎng)絡(luò)設(shè)備進行通信,繞過了cpu和主機內(nèi)存,顯著提高了數(shù)據(jù)傳輸效率,特別是在高性能計算、深度學(xué)習(xí)和大數(shù)據(jù)分析等領(lǐng)域。然而,盡管gpudirect?rdma在提升gpu之間的通信性能方面具有顯著優(yōu)勢,它也存在一些問題和缺點:
7、1、硬件依賴性強,成本高
8、gpudirect?rdma依賴于特定的高性能硬件,包括支持rdma的網(wǎng)絡(luò)設(shè)備(如infiniband),而構(gòu)建一個支持gpudirect?rdma的分布式計算集群需要大量高端網(wǎng)絡(luò)設(shè)備和交換機,這些設(shè)備的部署和維護成本非常高。
9、2、對網(wǎng)絡(luò)質(zhì)量要求高
10、盡管gpudirect?rdma能夠繞過cpu直接傳輸數(shù)據(jù),但它非常依賴底層網(wǎng)絡(luò)的性能。如果網(wǎng)絡(luò)帶寬不足或存在延遲,gpudirect?rdma的優(yōu)勢將無法發(fā)揮,甚至可能導(dǎo)致通信效率低下。
11、3、數(shù)據(jù)延遲大、協(xié)議開銷大
12、基于傳統(tǒng)以太網(wǎng)的rdma技術(shù)(如iwarp)通過tcp/ip(transmission?controlprotocol/internet?protocol,是互聯(lián)網(wǎng)的核心協(xié)議之一)協(xié)議棧進行數(shù)據(jù)傳輸,這會引入額外的協(xié)議開銷,如擁塞控制和流量控制等機制,導(dǎo)致數(shù)據(jù)延遲大,限制了其在高性能計算環(huán)境中的應(yīng)用。
13、基于此,提出本發(fā)明。
技術(shù)實現(xiàn)思路
1、本發(fā)明針對現(xiàn)有g(shù)pudirect?rdma技術(shù)的不足,提出一種基于pcie?ntb的gpu跨主機通信互聯(lián)系統(tǒng),要解決的技術(shù)問題包括:
2、gpudirect?rdma依賴于高性能的infiniband、roce等專用網(wǎng)絡(luò)設(shè)備,部署和維護成本高,本發(fā)明希望通過pcie總線技術(shù)降低硬件依賴,減少成本。
3、gpudirect?rdma對網(wǎng)絡(luò)帶寬和延遲敏感,網(wǎng)絡(luò)性能下降會影響數(shù)據(jù)傳輸效率。本發(fā)明希望通過使用pcie總線,規(guī)避對網(wǎng)絡(luò)質(zhì)量的過度依賴。
4、gpudirect?rdma通過網(wǎng)絡(luò)通信協(xié)議進行數(shù)據(jù)傳輸,帶來了額外的協(xié)議開銷和較高的延遲。本發(fā)明旨在通過pcie直連的方式降低延遲和協(xié)議開銷。
5、基于以上問題,本發(fā)明的具體技術(shù)方案如下:
6、一種基于pcie?ntb的gpu跨主機通信互聯(lián)系統(tǒng),包括兩個主機、兩個gpu、兩個pcieswitch芯片;
7、兩個主機分別連接pcie?switch芯片,兩個pcie?switch芯片之間通過crosslink線連接,所述pcie?switch芯片的連接口設(shè)置成ntb模式,兩個gpu通過ntb實現(xiàn)互聯(lián)通信。
8、更進一步的改進,在兩個主機內(nèi)分別集成gpu異構(gòu)通信軟件。
9、更進一步的改進,主機之間通過pcie?nt?crosslink互聯(lián),使用ntb機制實現(xiàn)跨主機內(nèi)存訪問,然后使用pcie?switch芯片內(nèi)部的dma進行數(shù)據(jù)搬移。
10、更進一步的改進,通過在ntb中進行開窗,將遠端節(jié)點地址空間通過ntb映射到本地地址空間,達到兩個gpu之間的訪問通路打通的目的。
11、更進一步的改進,兩個gpu分別為本地gpu、遠端gpu,兩個主機分別為本地主機、遠端主機;
12、將遠端gpu?bar空間在本地ntb中進行開窗,本地gpu通過dma發(fā)起對遠端gpu?bar空間的訪問,從而實現(xiàn)p2p傳輸。
13、更進一步的改進,根據(jù)主機節(jié)點兩側(cè)是否打開iommu,本地gpu訪問遠端gpu?bar空間的地址轉(zhuǎn)換過程和數(shù)據(jù)路徑分為以下四種情況:
14、情況1、當(dāng)兩側(cè)主機iommu都禁用時,本地gpu訪問遠端gpu地址只經(jīng)過一次轉(zhuǎn)換;
15、情況2、當(dāng)本地主機打開iommu,遠端主機禁用iommu時,本地gpu訪問遠端gpu地址經(jīng)過二次轉(zhuǎn)換;所述二次轉(zhuǎn)化是所有數(shù)據(jù)請求需要經(jīng)過主機的iommu硬件進行地址翻譯,翻譯成實際的物理地址再進行數(shù)據(jù)包轉(zhuǎn)發(fā)。
16、情況3、當(dāng)本地主機禁用iommu,遠端主機打開iommu時,本地gpu訪問遠端gpu地址經(jīng)過二次轉(zhuǎn)換;情況3的ntb開窗地址與情況2的ntb開窗地址不同;
17、情況4、當(dāng)兩側(cè)主機iommu都打開時,本地gpu訪問遠端gpu地址經(jīng)過三次轉(zhuǎn)換。
18、本發(fā)明的有益效果:
19、1、本發(fā)明通過pcie?ntb進行g(shù)pu跨主機通信,將pcie的一個端口配置成ntb模式,并使用crosslink(一種特殊的pcie?switch連接方式,允許兩個pcie?switch的上游端口直接相連,或兩個下游端口直接相連)方式連接。通過在ntb中進行開窗,將遠端設(shè)備的地址在本地地址空間做映射,從而達到訪問遠端設(shè)備的目的。根據(jù)iommu開啟情況支持四種地址轉(zhuǎn)換方式。兩側(cè)iommu都禁用的情況只需要一次地址轉(zhuǎn)換;一側(cè)iommu打開,另一側(cè)關(guān)閉需要二次地址轉(zhuǎn)換;兩側(cè)iommu都打開時需要三次地址轉(zhuǎn)換。通過dma訪問方式達到繞過cpu的目的。
20、2、與現(xiàn)有技術(shù)相比,本發(fā)明使用pcie?switch替代高端的網(wǎng)絡(luò)設(shè)備,能夠顯著降低硬件成本,并降低系統(tǒng)部署的復(fù)雜性。pcie總線的高帶寬能夠極大地降低通信延遲,由于不再依賴網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)協(xié)議,因此對網(wǎng)絡(luò)質(zhì)量沒有要求,在無網(wǎng)絡(luò)的計算集群節(jié)點間也能夠進行高效的數(shù)據(jù)傳輸。相比rdma,基于pcie?ntb的gpu跨主機訪問是透明的,可以使用mmio(memory-mapped?i/o,內(nèi)存映射i/o,是一種允許硬件設(shè)備通過內(nèi)存地址進行訪問和控制的技術(shù))訪問機制,使得數(shù)據(jù)傳輸像在本地內(nèi)存中操作一樣,無需特殊的網(wǎng)絡(luò)配置和連接。設(shè)備間的通信可以通過內(nèi)存地址直接訪問,不需要設(shè)置復(fù)雜的網(wǎng)絡(luò)連接、ip地址或?qū)iT的軟件協(xié)議。
21、3、本發(fā)明應(yīng)用于gpu跨主機通信的場景,兩臺或多臺主機/服務(wù)器需要使用pcieswitch芯片(大型服務(wù)器集群節(jié)點內(nèi)通常都會配置該芯片),只需要把pcie?switch芯片的一個port配置成ntb模式,然后使用crosslink的方式連接兩個主機/服務(wù)器的ntb?port。通過這種方式,無需配置高端的rdma網(wǎng)卡,利用現(xiàn)有資源實現(xiàn)了資源最大化。并且上層應(yīng)用軟件不需要做任何改動(無需修改硬件驅(qū)動代碼,也無需任何軟件中間層),只需要集成gpu異構(gòu)通信軟件,就可以實現(xiàn)雙主機gpu卡之間的直接互聯(lián)通信,達到低延遲、高帶寬的gpu跨主機互聯(lián)通信。通過pcie?ntb方式跨主機通信的gpu,可以達到gpudirect?p2p的效果,仿佛兩個gpu在同一臺主機內(nèi)通信,真正實現(xiàn)了軟件、硬件無感知。