0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用PCIe交換網(wǎng)結(jié)構(gòu)在多主機(jī)系統(tǒng)中優(yōu)化資源部署

454398 ? 來源:Microchip ? 作者:Vincent Haché ? 2020-10-26 17:08 ? 次閱讀

作者:Microchip Technology Inc.固件工程技術(shù)顧問Vincent Haché

越來越多的數(shù)據(jù)中心和其他高性能計(jì)算環(huán)境開始使用GPU,因?yàn)镚PU能夠快速處理深度學(xué)習(xí)機(jī)器學(xué)習(xí)應(yīng)用中生成的大量數(shù)據(jù)。不過,就像許多可提高應(yīng)用性能的新型數(shù)據(jù)中心創(chuàng)新一樣,這項(xiàng)創(chuàng)新也暴露出新的系統(tǒng)瓶頸。在這些應(yīng)用中,用于提高系統(tǒng)性能的新興架構(gòu)涉及通過一個(gè)PCIe?結(jié)構(gòu)在多個(gè)主機(jī)之間共享系統(tǒng)資源。

PCIe標(biāo)準(zhǔn)(特別是其基于樹的傳統(tǒng)層級)會(huì)限制資源共享的實(shí)現(xiàn)方式(和實(shí)現(xiàn)程度)。不過,可以實(shí)現(xiàn)一種低延時(shí)的高速結(jié)構(gòu)方法,這種方法允許在多個(gè)主機(jī)之間共享大量GPU和NVMe SSD,同時(shí)仍支持標(biāo)準(zhǔn)系統(tǒng)驅(qū)動(dòng)程序。

PCIe結(jié)構(gòu)方法采用動(dòng)態(tài)分區(qū)和多主機(jī)單根I/O虛擬化(SR-IOV)共享。各PCIe結(jié)構(gòu)之間可直接路由點(diǎn)對點(diǎn)傳輸。這樣便可為點(diǎn)對點(diǎn)傳輸提供最佳路由,減少根端口擁塞,并且更有效地平衡CPU資源的負(fù)載。

傳統(tǒng)上,GPU傳輸必須訪問CPU的系統(tǒng)存儲(chǔ)器,這會(huì)導(dǎo)致端點(diǎn)之間發(fā)生存儲(chǔ)器共享爭用。當(dāng)GPU使用其共享的存儲(chǔ)器映射資源而不是CPU存儲(chǔ)器時(shí),它可以在本地提取數(shù)據(jù),無需先通過CPU傳遞數(shù)據(jù)。這消除了跳線和鏈路以及由此產(chǎn)生的延時(shí),從而使GPU能夠更高效地處理數(shù)據(jù)。

PCIe的固有限制

PCIe主層級是一個(gè)樹形結(jié)構(gòu),其中的每個(gè)域都有一個(gè)根聯(lián)合體,從該點(diǎn)可擴(kuò)展到“葉子”,這些“葉子”通過交換網(wǎng)和橋接器到達(dá)端點(diǎn)。鏈路的嚴(yán)格層級和方向性給多主機(jī)、多交換網(wǎng)系統(tǒng)帶來了成本高昂的設(shè)計(jì)要求。

圖1:多主機(jī)拓?fù)?/p>

以圖1所示的系統(tǒng)為例。要符合PCIe的層級,主機(jī)1必須在交換網(wǎng)1中有一個(gè)專用的下行端口,該端口連接到交換網(wǎng)2中的專用上行端口。它還需要在交換網(wǎng)2中有一個(gè)專用的下行端口,該端口連接到交換網(wǎng)3中的專用上行端口,依此類推。主機(jī)2和主機(jī)3也有類似的要求,如圖2所示。

圖2:每個(gè)主機(jī)的層級要求

即使是基于PCIe樹形結(jié)構(gòu)的最基本系統(tǒng),也需要各交換網(wǎng)之間有三個(gè)鏈路專用于每個(gè)主機(jī)的PCIe拓?fù)洹6?,由于主機(jī)之間無法共享這些鏈路,因此系統(tǒng)會(huì)很快變得極為低效。

此外,符合PCIe的典型層級只有一個(gè)根端口,而且盡管“多根I/O虛擬化和共享”規(guī)范中支持多個(gè)根,但它會(huì)使設(shè)計(jì)更復(fù)雜,并且當(dāng)前不受主流CPU支持。結(jié)果會(huì)造成未使用的PCIe設(shè)備(即端點(diǎn))滯留在其分配到的主機(jī)中。不難想象,這在采用多個(gè)GPU、存儲(chǔ)設(shè)備及其控制器以及交換網(wǎng)的大型系統(tǒng)中會(huì)變得多么低效。

例如,如果第一個(gè)主機(jī)(主機(jī)1)已經(jīng)消耗了所有計(jì)算資源,而主機(jī)2和3未充分利用資源,則顯然希望主機(jī)1訪問這些資源。但主機(jī)1無法這樣做,因?yàn)檫@些資源在它的層級域之外,因此會(huì)發(fā)生滯留。非透明橋接(NTB)是這種問題的一個(gè)潛在解決方案,但由于每種類型的共享PCIe設(shè)備都需要非標(biāo)準(zhǔn)驅(qū)動(dòng)程序和軟件,因此這同樣會(huì)使系統(tǒng)變得復(fù)雜。更好的方法是使用PCIe結(jié)構(gòu),這種結(jié)構(gòu)允許標(biāo)準(zhǔn)PCIe拓?fù)淙菁{多個(gè)可訪問每個(gè)端點(diǎn)的主機(jī)。

實(shí)施方法

系統(tǒng)使用一個(gè)PCIe結(jié)構(gòu)交換網(wǎng)(本例中為Microchip Switchtec? PAX系列的成員)在兩個(gè)獨(dú)立但可透明互操作的域中實(shí)現(xiàn):即包含所有端點(diǎn)和結(jié)構(gòu)鏈路的結(jié)構(gòu)域以及每個(gè)主機(jī)專用的主機(jī)域(圖3)。主機(jī)通過在嵌入式CPU上運(yùn)行的PAX交換網(wǎng)固件保留在單獨(dú)的虛擬域中,因此,交換網(wǎng)將始終顯示為具有直連端點(diǎn)的標(biāo)準(zhǔn)單層PCIe設(shè)備,而與這些端點(diǎn)出現(xiàn)在結(jié)構(gòu)中的位置無關(guān)。

圖3:每個(gè)結(jié)構(gòu)的獨(dú)立域

來自主機(jī)域的事務(wù)會(huì)在結(jié)構(gòu)域中轉(zhuǎn)換為ID和地址,反之,結(jié)構(gòu)域中通信的非分層路由也是如此。這樣,系統(tǒng)中的所有主機(jī)便可共享連接交換網(wǎng)和端點(diǎn)的結(jié)構(gòu)鏈路。交換網(wǎng)固件會(huì)攔截來自主機(jī)的所有配置平面通信(包括PCIe枚舉過程),并使用數(shù)量可配置的下行端口虛擬化一個(gè)符合PCIe規(guī)范的簡單交換網(wǎng)。

當(dāng)所有控制平面通信都路由到交換網(wǎng)固件進(jìn)行處理時(shí),數(shù)據(jù)平面通信直接路由到端點(diǎn)。其他主機(jī)域中未使用的GPU不再滯留,因?yàn)樗鼈兛梢愿鶕?jù)每個(gè)主機(jī)的需求動(dòng)態(tài)分配。結(jié)構(gòu)內(nèi)支持點(diǎn)對點(diǎn)通信,這使其能夠適應(yīng)機(jī)器學(xué)習(xí)應(yīng)用。當(dāng)以符合PCIe規(guī)范的方式向每個(gè)主機(jī)提供功能時(shí),可以使用標(biāo)準(zhǔn)驅(qū)動(dòng)程序。

操作方法

為了解這種方法的工作原理,我們以圖4中的系統(tǒng)為例,該系統(tǒng)由兩個(gè)主機(jī)(主機(jī)1采用Windows?系統(tǒng),主機(jī)2采用Linux?系統(tǒng))、四個(gè)PAX PCIe結(jié)構(gòu)交換網(wǎng)、四個(gè)Nvidia M40 GPGPU和一個(gè)支持SR-IOV的Samsung NVMe SSD組成。在本實(shí)驗(yàn)中,主機(jī)運(yùn)行代表實(shí)際機(jī)器學(xué)習(xí)工作負(fù)載的通信,包括Nvidia的CUDA點(diǎn)對點(diǎn)通信基準(zhǔn)測試實(shí)用程序和訓(xùn)練cifar10圖像分類的TensorFlow模型。嵌入式交換網(wǎng)固件處理交換網(wǎng)的低級配置和管理,系統(tǒng)由Microchip的ChipLink調(diào)試和診斷實(shí)用程序管理。

圖4:雙主機(jī)PCIe結(jié)構(gòu)引擎

四個(gè)GPU最初分配給主機(jī)1,PAX結(jié)構(gòu)管理器顯示在結(jié)構(gòu)中發(fā)現(xiàn)的所有設(shè)備,其中GPU綁定到Windows主機(jī)。但是,主機(jī)上的結(jié)構(gòu)不再復(fù)雜,所有GPU就像直接連接到虛擬交換網(wǎng)一樣。隨后,結(jié)構(gòu)管理器將綁定所有設(shè)備,Windows設(shè)備管理器將顯示GPU。主機(jī)將交換網(wǎng)視為下行端口數(shù)量可配置的簡單物理PCIe交換網(wǎng)。

一旦CUDA發(fā)現(xiàn)了四個(gè)GPU,點(diǎn)對點(diǎn)帶寬測試就會(huì)顯示單向傳輸速率為12.8 GBps,雙向傳輸速率為24.9 GBps。這些傳輸直接跨過PCIe結(jié)構(gòu),而無需通過主機(jī)。如果運(yùn)行用于訓(xùn)練Cifar10圖像分類算法的TensorFlow模型并使工作負(fù)載分布在全部四個(gè)GPU上,則可以將兩個(gè)GPU釋放回結(jié)構(gòu)池中,將它們與主機(jī)解除綁定。這樣可以釋放其余兩個(gè)GPU來執(zhí)行其他工作負(fù)載。與Windows主機(jī)一樣,Linux主機(jī)也將交換網(wǎng)視為簡單的PCIe交換網(wǎng),無需自定義驅(qū)動(dòng)程序,而CUDA也可以發(fā)現(xiàn)GPU,并在Linux主機(jī)上運(yùn)行P2P傳輸。性能類似于使用Windows主機(jī)實(shí)現(xiàn)的性能,如表1所示。

表1:GPU點(diǎn)對點(diǎn)傳輸帶寬

下一步是將SR-IOV虛擬功能連接到Windows主機(jī),PAX將此類功能以標(biāo)準(zhǔn)物理NVM設(shè)備的形式提供,以便主機(jī)可以使用標(biāo)準(zhǔn)NVMe驅(qū)動(dòng)程序。此后,虛擬功能將與Linux主機(jī)結(jié)合,并且新的NVMe設(shè)備將出現(xiàn)在模塊設(shè)備列表中。本實(shí)驗(yàn)的結(jié)果是,兩個(gè)主機(jī)現(xiàn)在都可以獨(dú)立使用其虛擬功能。

務(wù)必注意的是,虛擬PCIe交換網(wǎng)和所有動(dòng)態(tài)分配操作都以完全符合PCIe規(guī)范的方式呈現(xiàn)給主機(jī),以便主機(jī)能夠使用標(biāo)準(zhǔn)驅(qū)動(dòng)程序。嵌入式交換網(wǎng)固件提供了一個(gè)簡單的管理接口,這樣便可通過成本低廉的外部處理器來配置和管理PCIe結(jié)構(gòu)。設(shè)備點(diǎn)對點(diǎn)事務(wù)默認(rèn)情況下處于使能狀態(tài),不需要外部結(jié)構(gòu)管理器進(jìn)行額外配置或管理。

總結(jié)

PCIe交換網(wǎng)結(jié)構(gòu)是一種能夠充分利用CPU巨大性能的絕佳方法,但PCIe標(biāo)準(zhǔn)本身存在一些障礙。不過,可以通過使用動(dòng)態(tài)分區(qū)和多主機(jī)單根I/O虛擬化共享技術(shù)來解決這些難題,以便可以將GPU和NVMe資源實(shí)時(shí)動(dòng)態(tài)分配給多主機(jī)系統(tǒng)中的任何主機(jī),從而滿足機(jī)器學(xué)習(xí)工作負(fù)載不斷變化的需求。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • gpu
    gpu
    +關(guān)注

    關(guān)注

    27

    文章

    4591

    瀏覽量

    128144
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11123

    瀏覽量

    207910
  • PCIe
    +關(guān)注

    關(guān)注

    15

    文章

    1165

    瀏覽量

    81977
  • 交換網(wǎng)
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    9035
  • 機(jī)器學(xué)習(xí)

    關(guān)注

    66

    文章

    8306

    瀏覽量

    131841
收藏 人收藏

    評論

    相關(guān)推薦

    如何簡化PCIe 6.0交換機(jī)的設(shè)計(jì)

    由于全球數(shù)據(jù)流量呈指數(shù)級增長,PCIe 6.0 交換機(jī)的市場需求也出現(xiàn)了激增。PCIe 6.0 交換機(jī)高性能計(jì)算(HPC)
    的頭像 發(fā)表于 07-05 09:45 ?308次閱讀
    如何簡化<b class='flag-5'>PCIe</b> 6.0<b class='flag-5'>交換</b>機(jī)的設(shè)計(jì)

    FPGA的PCIE接口應(yīng)用需要注意哪些問題

    ,并進(jìn)行了充分的測試和優(yōu)化。 主機(jī)系統(tǒng)性能 : 主機(jī)系統(tǒng)的處理能力和總線架構(gòu)也會(huì)對PCIe設(shè)備
    發(fā)表于 05-27 16:17

    高性能NVMe主機(jī)控制器,Xilinx FPGA PCIe 3

    SEQ128K Q32T1測試模式下的讀寫性能。針對多路數(shù)據(jù)通道訪問PCIe SSD,使用NVMe的隊(duì)列特性,NVMe Host Controller IP支持靈活配置DMA讀寫的通道個(gè)數(shù),按照
    發(fā)表于 04-20 14:41

    PCIe交換芯片的簡單介紹

    PCIe交換芯片是用于實(shí)現(xiàn)高速、低延遲的設(shè)備互聯(lián)的關(guān)鍵組件。它們現(xiàn)代計(jì)算機(jī)系統(tǒng),尤其是高性能服務(wù)器、數(shù)據(jù)中心、存儲(chǔ)解決方案和高速通信系統(tǒng)
    的頭像 發(fā)表于 03-26 15:15 ?1845次閱讀

    pcie交換芯片的發(fā)展前景

    PCIe交換芯片的發(fā)展前景看起來相當(dāng)積極,這主要得益于大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能等信息技術(shù)的快速發(fā)展以及傳統(tǒng)產(chǎn)業(yè)數(shù)字化的轉(zhuǎn)型。這些趨勢都推動(dòng)了PCIe交換芯片的需求不斷增加,進(jìn)而為其帶來
    的頭像 發(fā)表于 03-18 14:03 ?779次閱讀

    PCIE交換芯片是什么

    PCIE交換芯片,全稱為Peripheral Component Interconnect Express交換芯片,是一種高速串行總線標(biāo)準(zhǔn)的核心組件。現(xiàn)代計(jì)算機(jī)架構(gòu)
    的頭像 發(fā)表于 03-16 17:20 ?2856次閱讀

    【正運(yùn)動(dòng)】高速高精,超高實(shí)時(shí)性的PCIe EtherCAT實(shí)時(shí)運(yùn)動(dòng)控制卡 | PCIE464

    掉電存儲(chǔ)功能,可確??刂?b class='flag-5'>系統(tǒng)遭遇斷電或重啟時(shí),關(guān)鍵數(shù)據(jù)不會(huì)丟失,提高了系統(tǒng)的可靠性。 9、掉電中斷PCIE464控制卡內(nèi)置掉電中斷功能,當(dāng)CPU
    發(fā)表于 01-24 09:48

    Linux操作系統(tǒng)如何按下PCIe的復(fù)位鍵

    Linux操作系統(tǒng),看如何按下PCIe的復(fù)位鍵
    的頭像 發(fā)表于 01-20 09:31 ?1201次閱讀
    Linux操作<b class='flag-5'>系統(tǒng)</b><b class='flag-5'>中</b>如何按下<b class='flag-5'>PCIe</b>的復(fù)位鍵

    華為新專利降低數(shù)據(jù)交換網(wǎng)絡(luò)能耗和成本

    據(jù)專利摘要介紹,這項(xiàng)發(fā)明涉及通訊技術(shù)領(lǐng)域,旨在降低數(shù)據(jù)交換網(wǎng)絡(luò)的耗能、成本及設(shè)備尺寸。其核心部分是一款包含多個(gè)交換晶粒以及與其有直接或間接關(guān)聯(lián)的多個(gè)網(wǎng)絡(luò)處理晶粒的通信芯片。
    的頭像 發(fā)表于 01-19 14:14 ?463次閱讀
    華為新專利降低數(shù)據(jù)<b class='flag-5'>交換網(wǎng)</b>絡(luò)能耗和成本

    以太網(wǎng)交換芯片發(fā)展分析

    本文來自“商用交換芯片國產(chǎn)替代加速(2024)”,以太網(wǎng)交換機(jī)對外提供高速網(wǎng)絡(luò)連接端口,每個(gè)端口直接與主機(jī)或網(wǎng)絡(luò)節(jié)點(diǎn)相連,能夠同時(shí)連通對端
    的頭像 發(fā)表于 01-10 10:14 ?1647次閱讀
    以太<b class='flag-5'>網(wǎng)</b><b class='flag-5'>交換</b>芯片發(fā)展分析

    PCIe交換機(jī)Dual Cast功能介紹

    關(guān)于PCIe的發(fā)展歷史我們可以知道,PCIe發(fā)家于計(jì)算機(jī)領(lǐng)域,起源于PCI總線,隨著計(jì)算機(jī)產(chǎn)業(yè)的發(fā)展而壯大,其行業(yè)生態(tài)慢慢擴(kuò)展到了嵌入式領(lǐng)域及通信領(lǐng)域等。但因?yàn)槠錁錉?b class='flag-5'>結(jié)構(gòu)導(dǎo)致其系統(tǒng)
    的頭像 發(fā)表于 11-22 16:39 ?1234次閱讀
    <b class='flag-5'>PCIe</b><b class='flag-5'>交換</b>機(jī)Dual Cast功能介紹

    優(yōu)化網(wǎng)絡(luò)管理與監(jiān)控——工業(yè)以太網(wǎng)交換機(jī)的智能化之路

    隨著工業(yè)互聯(lián)網(wǎng)的迅速發(fā)展,工業(yè)以太網(wǎng)交換機(jī)現(xiàn)代工業(yè)網(wǎng)絡(luò)扮演著越來越重要的角色。作為工業(yè)網(wǎng)絡(luò)的核心設(shè)備,工業(yè)以太網(wǎng)
    的頭像 發(fā)表于 11-21 10:24 ?553次閱讀
    <b class='flag-5'>優(yōu)化</b>網(wǎng)絡(luò)管理與監(jiān)控——工業(yè)以太<b class='flag-5'>網(wǎng)</b><b class='flag-5'>交換</b>機(jī)的智能化之路

    體驗(yàn)紫光PCIE之使用WinDriver驅(qū)動(dòng)紫光PCIE

    ,這幾個(gè)信號(hào)可以主機(jī)開機(jī)時(shí)幫助我們判斷PCIE鏈路是否鏈通。其中ref_led/pclk_led可以表明主機(jī)PCIE接口時(shí)鐘能夠給到FP
    發(fā)表于 11-17 14:35

    工業(yè)網(wǎng)絡(luò)交換機(jī)智能公交系統(tǒng)的應(yīng)用

    工業(yè)網(wǎng)絡(luò)交換機(jī)智能公交系統(tǒng)具有重要的應(yīng)用價(jià)值。它可以解決公交系統(tǒng)的數(shù)據(jù)傳輸問題,提供穩(wěn)定可
    的頭像 發(fā)表于 11-13 10:24 ?357次閱讀

    基于PCIE總線的DSP系統(tǒng)接口設(shè)計(jì)和驅(qū)動(dòng)開發(fā)

    電子發(fā)燒友網(wǎng)站提供《基于PCIE總線的DSP系統(tǒng)接口設(shè)計(jì)和驅(qū)動(dòng)開發(fā).pdf》資料免費(fèi)下載
    發(fā)表于 10-24 09:36 ?0次下載
    基于<b class='flag-5'>PCIE</b>總線的<b class='flag-5'>多</b>DSP<b class='flag-5'>系統(tǒng)</b>接口設(shè)計(jì)和驅(qū)動(dòng)開發(fā)