日韩精品一区二区三区swag_一区二区三区在线高清_亚洲国内欧美_国产精品xnxxcom

你好,游客 登錄
背景:
閱讀新聞

GPU 云服務(wù)器的軟件系統(tǒng)設(shè)計(jì)和實(shí)踐

[日期:2025-03-11] 來(lái)源:  作者: [字體: ]

  當(dāng)我們?cè)谠粕喜渴?DeepSeek 系列大模型的時(shí)候,可以選擇多機(jī)或者單機(jī) 8 卡的 GPU 裸金屬實(shí)例運(yùn)行滿(mǎn)血版,或者選擇單卡和雙卡 GPU 虛擬機(jī)運(yùn)行蒸餾版。這些 GPU 云服務(wù)器實(shí)例能否發(fā)揮多機(jī)、多卡、單卡的性能,將直接影響部署的 DeepSeek 服務(wù)的吞吐能力。除此之外,在訓(xùn)練場(chǎng)景中這些實(shí)例的相關(guān)能力能將直接影響訓(xùn)練時(shí)長(zhǎng)。本文將針對(duì) GPU 云服務(wù)器的軟件系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)進(jìn)行概述,并分享百度智能云的新實(shí)踐成果。

 

  1.GPU 處理數(shù)據(jù)流程

 

  在具體討論 GPU 云服務(wù)器的軟件設(shè)計(jì)工作之前,我們首先來(lái)看下 GPU 在服務(wù)器中是如何工作的。下圖是一個(gè)簡(jiǎn)化的 GPU 處理數(shù)據(jù)的流程圖,以便梳理一下影響 GPU 云服務(wù)器性能的關(guān)鍵因素。從圖中我們可以看到,數(shù)據(jù)處理分為以下幾個(gè)步驟:

 

  第 1 步,所有數(shù)據(jù)都需要從網(wǎng)絡(luò)或者存儲(chǔ)中讀取到內(nèi)存。這里就涉及到網(wǎng)絡(luò)或者存儲(chǔ)的傳輸性能。

 

  第 2 步,當(dāng)讀取到內(nèi)存之后,CPU 需要從內(nèi)存中讀取相關(guān)數(shù)據(jù)進(jìn)行預(yù)處理,然后將預(yù)處理后的數(shù)據(jù)再寫(xiě)回到內(nèi)存中。這個(gè)過(guò)程就涉及到內(nèi)存自身的帶寬性能和 CPU 的處理性能。

 

  第 3 步 ,數(shù)據(jù)需要從內(nèi)存拷貝到 GPU 的顯存中。這就涉及到 GPU 和系統(tǒng)內(nèi)存之間的數(shù)據(jù)傳輸性能,一般稱(chēng)之為 H2D(Host To Device)。

 

  第 4 步,GPU 從 GPU 顯存中讀取相關(guān)的數(shù)據(jù)進(jìn)行運(yùn)算。此時(shí)主要涉及 GPU 的顯存帶寬和 GPU 的計(jì)算性能。如果數(shù)據(jù)比較龐大,單個(gè)GPU無(wú)法處理,就涉及到多個(gè) GPU 的處理,那么這里就涉及到多 GPU 之間的集合通信。

 

  第 5 步,如果是單機(jī)多卡的情況,就涉及到 GPU 在機(jī)內(nèi)之間數(shù)據(jù)傳輸?shù)男阅?如果是多機(jī)多卡的場(chǎng)景,那么就涉及到多節(jié)點(diǎn)之間的網(wǎng)絡(luò)傳輸性能。

 

  第 6 步,當(dāng) GPU 運(yùn)算完成后,數(shù)據(jù)需要從 GPU 的顯存再拷貝到內(nèi)存中。這里也涉及到 GPU 和系統(tǒng)內(nèi)存之間的數(shù)據(jù)傳輸性能。一般稱(chēng)之為 D2H(Device To Host)。

 

  我們?cè)谠O(shè)計(jì) GPU 云服務(wù)器時(shí),需要綜合考慮上面 GPU 數(shù)據(jù)處理鏈路的每一個(gè)環(huán)節(jié),然后結(jié)合業(yè)務(wù)特點(diǎn)和使用成本,進(jìn)行 GPU 云服務(wù)器的設(shè)計(jì)。

 

  2.GPU 云服務(wù)器設(shè)計(jì)的層次劃分

 

  談到 GPU 云服務(wù)器的設(shè)計(jì),我們一般分為了 4 個(gè)層次。下圖展現(xiàn)了這個(gè)層次結(jié)構(gòu),涉及到硬件和軟件的多個(gè)層面。

 

  首先從下面來(lái)看,主要是 GPU 云服務(wù)器底層基礎(chǔ)技術(shù)組件,包括如硬件選型、拓?fù)浣Y(jié)構(gòu)、GPU 互聯(lián)和虛擬化技術(shù)。這些技術(shù)不僅決定了單卡運(yùn)行的效率,也會(huì)影響上層多卡通信的效率。

 

  向上一層是多卡通信方式。此時(shí)我們需要考慮硬件和軟件的支持程度,比如是采用共享內(nèi)存、P2P 、NVLink 還是 GDR 結(jié)構(gòu),每一種結(jié)構(gòu)都需要考慮到對(duì)應(yīng)的硬件和軟件實(shí)現(xiàn)。比如有的軟件不支持 P2P,此時(shí)我們可能就需要退回到共享內(nèi)存的方式。如果涉及到大模型就需要采用多機(jī)多卡,此時(shí)還涉及到 RDMA 網(wǎng)絡(luò)的通訊。

 

  再上一層是集合通信庫(kù),即在多卡通信的場(chǎng)景下,我們需要考慮如何提升集合通信的性能,一般會(huì)各種 CCL (Collective Communications Library )的通信庫(kù),這些庫(kù)會(huì)基于 GPU 卡的互聯(lián)技術(shù)和軟件支持,來(lái)進(jìn)行合理的選路。一般來(lái)說(shuō)會(huì)先探測(cè)出當(dāng)前的 GPU 能進(jìn)行哪些通信(比如支持 P2P 或者支持共享內(nèi)存),然后根據(jù)該結(jié)果進(jìn)行合理的選路,并通過(guò)合適的通信算法,大化提升集合通信的性能。

 

  再往上就是 AI 框架。AI 框架依賴(lài)于集合通信的性能以提高 AI 計(jì)算的能力。

 

  下面我們將詳細(xì)敘述底部的 2 個(gè)層次如何影響到 GPU 云服務(wù)器設(shè)計(jì)。

 

  2.1.GPU 云服務(wù)器基礎(chǔ)技術(shù)

 

  首先來(lái)看下 GPU 云服務(wù)器的底層實(shí)現(xiàn)技術(shù),這關(guān)系到 GPU 云服務(wù)器性能的基礎(chǔ),通常包括如下幾方面:

 

  硬件選型:選擇合適的硬件,包括 CPU,內(nèi)存,GPU,網(wǎng)絡(luò)和存儲(chǔ)等。

 

  拓?fù)浣Y(jié)構(gòu),包括實(shí)際的硬件拓?fù)洹H绻?GPU 云服務(wù)器采用虛擬化技術(shù),則包含虛擬拓?fù)洹?/p>

 

  硬件拓?fù)?

 

  NUMA 拓?fù)?包括 CPU、內(nèi)存和外設(shè)等拓?fù)浣Y(jié)構(gòu)。

 

  PCIe 拓?fù)?包括 GPU 和 RDMA 網(wǎng)卡等設(shè)備的 PCIe 拓?fù)浣Y(jié)構(gòu)。

 

  虛擬拓?fù)?主要指以上拓?fù)湓谔摂M機(jī)里的實(shí)現(xiàn)。

 

  GPU 互聯(lián)技術(shù),主要指 GPU 的互聯(lián)方式:

 

  如果是單機(jī),包括 PCIe 或者專(zhuān)有總線(xiàn),影響到單機(jī)內(nèi)多卡通信的效率。

 

  如果是多機(jī),主要指多機(jī)多卡的互聯(lián),包括各種網(wǎng)絡(luò)協(xié)議,如 RDMA 協(xié)議,或者專(zhuān)有各種總線(xiàn)協(xié)議。

 

  虛擬化技術(shù):主要是指 GPU 云服務(wù)器是虛擬機(jī)形態(tài)還是裸金屬形態(tài)。

 

  前者的 GPU 云服務(wù)器以虛擬機(jī)形態(tài)實(shí)現(xiàn),涉及到 CPU,內(nèi)存,GPU 的虛擬化,會(huì)影響到 GPU 的運(yùn)行效率。

 

  后者的 GPU 云服務(wù)器以裸金屬形態(tài)實(shí)現(xiàn),主要特點(diǎn)是網(wǎng)絡(luò)和存儲(chǔ)的通過(guò)硬卸載到 DPU 來(lái)提供服務(wù)。

 

  2.1.1.硬件選型

 

  CPU:根據(jù) GPU 云服務(wù)器的用途,如推理或者訓(xùn)練,選擇合適的 CPU。需要考慮的因素,主要有 CPU 的平臺(tái)類(lèi)型、核心數(shù)量和主頻。

 

  內(nèi)存:GPU 云服務(wù)器應(yīng)配備足夠容量和帶寬的內(nèi)存,以支持 GPU 的數(shù)據(jù)處理需求。例如,使用 DDR5 內(nèi)存可以提供高達(dá) 1200 GB/s 的理論帶寬。

 

  GPU:根據(jù) GPU 服務(wù)器的用途,如推理或者訓(xùn)練,選擇合適的 GPU,主要考慮 GPU 的計(jì)算性能、顯存大小和互聯(lián)方式等。

 

  網(wǎng)絡(luò):通常包括南北向和東西向兩張網(wǎng)絡(luò)。前者通常用于存儲(chǔ)網(wǎng)絡(luò)業(yè)務(wù),后者負(fù)責(zé) GPU 跨機(jī)通信。要確保兩張網(wǎng)絡(luò)的帶寬都足夠高,以避免數(shù)據(jù)傳輸成為瓶頸。例如,A100/A800 機(jī)型的東西向的網(wǎng)卡帶寬達(dá) 100 Gbps 或者 200 Gbps,不同的網(wǎng)卡帶寬會(huì)導(dǎo)致集合通信的帶寬有差異,從而影響集群訓(xùn)練的性能。

 

  存儲(chǔ):通常配置大容量的 SSD 磁盤(pán),用來(lái)存儲(chǔ)業(yè)務(wù)的數(shù)據(jù),這里主要考慮磁盤(pán)的 I/O 性能和容量等因素。但在進(jìn)行集群訓(xùn)練時(shí)通常會(huì)采用分布式文件系統(tǒng)用于存儲(chǔ)業(yè)務(wù)數(shù)據(jù),那么對(duì)本地磁盤(pán)的需求就沒(méi)有那么高,而分布式文件系統(tǒng)的選型就至關(guān)重要。

 

  硬件選型中,每個(gè)組件的性能要合理配合,不能導(dǎo)致系統(tǒng)存在瓶頸。比如 CPU 預(yù)處理數(shù)據(jù)時(shí),如果性能過(guò)低,會(huì)導(dǎo)致 GPU 等待時(shí)間過(guò)長(zhǎng),或者網(wǎng)絡(luò)帶寬低導(dǎo)致獲取數(shù)據(jù)速度慢,都會(huì)導(dǎo)致 GPU 的使用率降低。

 

  2.1.2.單機(jī)硬件拓?fù)浣Y(jié)構(gòu)

 

  單機(jī)層面的硬件拓?fù)?主要涉及 GPU 和 GPU,GPU 和其他組件的拓?fù)浣Y(jié)構(gòu),主要包括如下方面:

 

  CPU、內(nèi)存和 GPU 的 NUMA 拓?fù)洹?/p>

 

  包括 GPU 和 RDMA 網(wǎng)卡的 PCIe 拓?fù)洹?/p>

 

  2.1.2.1.NUMA 拓?fù)?/p>

 

  NUMA(Non-Uniform Memory Access,即非統(tǒng)一內(nèi)存訪(fǎng)問(wèn))是一種針對(duì)多處理器系統(tǒng)的內(nèi)存組織方式,每個(gè)處理器都有自己的本地內(nèi)存,處理器訪(fǎng)問(wèn)本地內(nèi)存的速度比訪(fǎng)問(wèn)其他處理器的內(nèi)存要快。

 

  GPU 云服務(wù)器大多具備多路 CPU,那么系統(tǒng)的 NUMA 拓?fù)浜驮O(shè)置,不僅影響到 CPU 對(duì)內(nèi)存訪(fǎng)問(wèn)的性能,還影響到一些需要訪(fǎng)問(wèn)內(nèi)存的外設(shè)的性能,比如網(wǎng)卡和  GPU 等設(shè)備。有關(guān) NUMA 的問(wèn)題主要包括

 

  是否開(kāi)啟 NUMA:系統(tǒng)可以選擇在 BIOS 設(shè)置中,開(kāi)啟 NUMA,也可以不開(kāi)啟 NUMA。

 

  如果開(kāi)啟 NUMA,開(kāi)啟幾個(gè) NUMA node。有些 CPU 內(nèi)部采用多 Die 設(shè)計(jì),每個(gè) Die 可以組成一個(gè) NUMA node,那么一個(gè) CPU 就可以支持一個(gè)或者多個(gè) NUMA node。一路 CPU 作為一個(gè) NUMA node,軟件設(shè)置和開(kāi)發(fā)更加簡(jiǎn)單,適合大多數(shù)業(yè)務(wù)場(chǎng)合;而一路 CPU 開(kāi)啟多個(gè) NUMA node,更多應(yīng)用在需要對(duì)內(nèi)存進(jìn)行更精細(xì)操作的業(yè)務(wù)場(chǎng)合。

 

  GPU 設(shè)備如何分配到每個(gè) NUMA node 上。大多數(shù)時(shí)候 GPU 都是均衡分配到每個(gè) NUMA node 上,這樣每個(gè)GPU都會(huì)和本 NUMA node 上內(nèi)存進(jìn)行數(shù)據(jù)交互,減輕 PCIe 鏈路的負(fù)載。

 

  對(duì)于虛擬化場(chǎng)合,是否輸出 NUMA 信息到虛擬機(jī)里,也是個(gè)影響 GPU 性能的重要考量因素。

 

  2.1.2.2.PCIe 拓?fù)?/p>

 

  涉及以下幾方面:

 

  GPU 是否通過(guò) PCIe 接口直連 CPU。

 

  GPU 是否連接 PCIe Switch。

 

  同一個(gè) PCIe Switch 連接幾個(gè) GPU。

 

  GPU 和 RDMA 網(wǎng)卡的拓?fù)湓O(shè)計(jì)。

 

  2.1.3.GPU 互聯(lián)技術(shù)

 

  多個(gè) GPU 之間的互聯(lián),根據(jù)擴(kuò)展方式的不同,可以分為 Scale Up 和 Scale Out 兩種方式。Scale Up 是指在同一臺(tái)服務(wù)器上增加 GPU 的數(shù)量,提升單機(jī)性能,通常可以通過(guò) PCIe 總線(xiàn)和專(zhuān)有總線(xiàn)來(lái)擴(kuò)展。

 

  PCIe 總線(xiàn):GPU 通常通過(guò) PCIe連接到 CPU,可以是直通或者通過(guò) PCIe Switch,那么同一主機(jī)上的 GPU 可以通過(guò) PCIe 進(jìn)行通信。

 

  專(zhuān)有總線(xiàn):為了彌補(bǔ) PCIe 總線(xiàn)帶寬低的問(wèn)題,不同 GPU 廠(chǎng)商實(shí)現(xiàn)了專(zhuān)有總線(xiàn),進(jìn)行單機(jī)內(nèi)的多個(gè) GPU 的互聯(lián),也是 GPU 單機(jī)內(nèi) Scale Up 的重要手段。

 

  Scale Out 通過(guò)增加多臺(tái)服務(wù)器,每臺(tái)服務(wù)器上配置多個(gè) GPU,形成一個(gè) GPU 集群,來(lái)提升整體計(jì)算能力,通常通過(guò) RDMA 網(wǎng)絡(luò)和其他專(zhuān)有網(wǎng)絡(luò)技術(shù)來(lái)實(shí)現(xiàn)。

 

  高速網(wǎng)絡(luò)技術(shù):多機(jī)之間通過(guò)高速網(wǎng)絡(luò)技術(shù)進(jìn)行互聯(lián),目前通常采用的是 RDMA 技術(shù)。當(dāng)前國(guó)際組織超以太聯(lián)盟,UEC (Ultra Ethernet Consortinum),正在制定新的高速網(wǎng)絡(luò)協(xié)議來(lái)改進(jìn) RDMA 協(xié)議。

 

  2.1.3.1.PCIe 總線(xiàn)

 

  PCIe 主要用于連接 CPU 與其他高速設(shè)備如 GPU、SSD 和網(wǎng)卡等,2003 年 PCIe 1.0 版本發(fā)布,目前已經(jīng)更新到 6.0 版本,傳輸速率高達(dá) 64 GT/s,16 通道的雙向帶寬可以達(dá)到 256 GB/s,性能和可擴(kuò)展性不斷提高。GPU 通常通過(guò)PCIe 連接到 CPU,可以是直通或者通過(guò) PCIe Switch,那么同一主機(jī)上的 GPU 可以通過(guò) PCIe 進(jìn)行通信。

 

  2.1.3.2.專(zhuān)有總線(xiàn) - NVIDIA NVLink

 

  PCIe 總線(xiàn)迭代速度趕不上 GPU 對(duì)互聯(lián)帶寬的需求,當(dāng)前可用的PCIe 5.0 總線(xiàn)的雙向帶寬只有 128GB/s,無(wú)法滿(mǎn)足需求,于是各個(gè) GPU 廠(chǎng)家都推出了自己的專(zhuān)有總線(xiàn)。NVLink 是 NVIDIA 推出的支持 GPU 之間高效通信的總線(xiàn),目前 NVLink 已經(jīng)發(fā)展到了第 4 代,在 H100 中可以達(dá)到高 900 GB/s 的雙向帶寬。

 

  圖片4.jpg

 

  NVSwitch 是它的 Switch 芯片,可以支持 GPU 全域互聯(lián),目前已經(jīng)發(fā)展到了第 3 代。

 

  圖片5.jpg

 

  如果僅僅使用 NVLink,只能實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的連接,而如果加入到 Switch 之后,就可以實(shí)現(xiàn)任意兩個(gè) GPU 之間的高速互聯(lián),解決了點(diǎn)對(duì)點(diǎn)通信的拓?fù)淙毕荨?/p>

 

  2.1.3.3.專(zhuān)有總線(xiàn) - 華為 HCCS

 

  HCCS 是華為自研的一款高速互聯(lián)總線(xiàn),主要用于昇騰系列 AI 處理器之間的互聯(lián)。它提供了一種高效、可靠的數(shù)據(jù)傳輸方式,使得多個(gè)昇騰處理器能夠協(xié)同工作,共同完成大規(guī)模的 AI 計(jì)算任務(wù)。HCCS 采用對(duì)等拓?fù)?單鏈路的大帶寬是 56 GB/s。昇騰 910B 中的 HCCS 采用點(diǎn)對(duì)點(diǎn)拓?fù)?單鏈路的大帶寬是 56 GB/s。

 

  2.1.3.4.RDMA

 

  當(dāng)涉及到多機(jī) GPU 通信時(shí),目前主流的選擇是 RDMA 網(wǎng)絡(luò),包含 Infiniband 和 RoCE 網(wǎng)絡(luò)。傳統(tǒng)的 TCP/IP 網(wǎng)絡(luò)通信因?yàn)樾枰僮飨到y(tǒng)內(nèi)核的介入,涉及較多數(shù)據(jù)移動(dòng)和數(shù)據(jù)復(fù)制,不適用高性能計(jì)算和大數(shù)據(jù)分析等需要 I/O 高并發(fā)、低時(shí)延的場(chǎng)景。RDMA 是一種計(jì)算機(jī)網(wǎng)絡(luò)技術(shù),網(wǎng)卡可以直接遠(yuǎn)程訪(fǎng)問(wèn)內(nèi)存或者 GPU 顯存的數(shù)據(jù),而無(wú)需操作系統(tǒng)內(nèi)核介入,不占用 CPU 資源,可以顯著提高數(shù)據(jù)傳輸?shù)男阅懿⑶医档脱舆t,因此更適配于大規(guī)模并行計(jì)算機(jī)集群的網(wǎng)絡(luò)需求。

 

  2.1.4.虛擬化技術(shù)

 

  虛擬化技術(shù)主要分為兩大類(lèi):

 

  傳統(tǒng)虛擬化,主要是基于 Qemu/KVM 實(shí)現(xiàn)的虛擬化。

 

  基于 DPU 的虛擬化,主要基于 DPU 實(shí)現(xiàn)的虛擬化。

 

  他們共同要解決的問(wèn)題主要是:

 

  系統(tǒng)虛擬化:如果采用傳統(tǒng)虛擬化技術(shù),既包含 CPU 和內(nèi)存虛擬化,也包含各種設(shè)備的虛擬化,比如 GPU 和 RDMA 網(wǎng)卡。

 

  網(wǎng)絡(luò)虛擬化:這里的網(wǎng)絡(luò)主要指 VPC(Virtual Private Cloud)網(wǎng)絡(luò)的虛擬化。

 

  存儲(chǔ)虛擬化:主要指塊設(shè)備的存儲(chǔ)虛擬化,后端存儲(chǔ)設(shè)備可以是本地存儲(chǔ),也可以是遠(yuǎn)程的存儲(chǔ)系統(tǒng)。

 

  2.1.4.1.傳統(tǒng)虛擬化

 

  傳統(tǒng)的 GPU 云服務(wù)器,都是基于 CPU 的硬件虛擬化技術(shù)來(lái)實(shí)現(xiàn),并且大多使用 QEMU 和 KVM 開(kāi)源技術(shù)來(lái)開(kāi)發(fā)。GPU 通過(guò)透?jìng)鞯姆绞酵競(jìng)鞯教摂M機(jī)里,GPU 的性能損耗很低。

 

  2.1.4.2.基于 DPU 的虛擬化

 

  當(dāng)前云廠(chǎng)商主流 GPU 云服務(wù)器,都開(kāi)始基于 DPU 進(jìn)行設(shè)計(jì)。DPU 是繼 CPU 和 GPU 之后的「第三顆主力芯片」,其設(shè)計(jì)目標(biāo)是卸載 CPU 在網(wǎng)絡(luò)傳輸和存儲(chǔ)的負(fù)載。基于 DPU 設(shè)計(jì)的服務(wù)器,大多數(shù)為裸金屬服務(wù)器,沒(méi)有采用傳統(tǒng)虛擬化技術(shù),此時(shí) CPU 和 GPU 基本實(shí)現(xiàn)了零損耗。

 

  2.2.GPU 云服務(wù)器的多卡通信

 

  基于上面介紹過(guò)的 GPU 硬件互聯(lián)技術(shù),接下來(lái)討論在硬件能力的基礎(chǔ)上,多個(gè) GPU 之間如何實(shí)現(xiàn)實(shí)現(xiàn)多卡通信,這涉及到硬件和軟件的支持。我們知道,很多 AI 模型已經(jīng)超過(guò)了單個(gè) GPU 的顯存大小。無(wú)論是推理還是訓(xùn)練,都需要多 GPU 來(lái)實(shí)現(xiàn)。這就涉及到單機(jī)多卡和多機(jī)多卡的通信問(wèn)題,這也是我們?cè)?GPU 云服務(wù)器設(shè)計(jì)時(shí)面臨的主要挑戰(zhàn)之一。首先是單機(jī)多卡通信的場(chǎng)景,主要有三種方式。

 

  第一種是共享內(nèi)存。在這種通信方式中,多個(gè) GPU 會(huì)通過(guò)系統(tǒng)內(nèi)存來(lái)共享數(shù)據(jù)。從下圖中可以看出,當(dāng) GPU 0 和 GPU 1 進(jìn)行通信時(shí),GPU 0 會(huì)先把數(shù)據(jù)從顯存搬遷到系統(tǒng)內(nèi)存(即共享內(nèi)存)中,然后 GPU 1 再?gòu)南到y(tǒng)內(nèi)存中讀取到自身的顯存中。一般來(lái)說(shuō),該方式的通信效率低,雙向帶寬在 10 ~ 20 GBps 左右。

 

  第二種是 PCIe 的 P2P。這種通信方式相較于第一種來(lái)說(shuō),無(wú)論讀寫(xiě)都不需要系統(tǒng)內(nèi)存做中轉(zhuǎn),GPU 0 可以直接向 GPU 1 發(fā)起通信,這種通信方式的雙向帶寬在 40 ~ 50 GBps 左右。

 

  第三種是專(zhuān)有總線(xiàn)。這種方式是通過(guò) GPU 廠(chǎng)商提供的專(zhuān)有總線(xiàn)進(jìn)行通信,比如說(shuō) NVIDIA 的 NVLink、華為的 HCCS 以及 AMD 的 Infinity Fabric 等。這種方式比 PCIe 的傳輸帶寬要的多。以 NVLink 舉例,專(zhuān)有總線(xiàn)的雙向帶寬可以達(dá)到 400-900 GBps,相比于 PCIe 的 P2P 通信來(lái)說(shuō)要高出一個(gè)數(shù)量級(jí)。而且在實(shí)際通信的過(guò)程中,采用專(zhuān)有總線(xiàn)的方式大大提升了單機(jī)多卡的通信效率。

 

  然后是多機(jī)多卡通信的場(chǎng)景,就需要采用上面介紹的 RDMA 網(wǎng)絡(luò)技術(shù)來(lái)實(shí)現(xiàn)。多卡通信的性能,決定了上層集合通信的性能。集合通信庫(kù)會(huì)先探測(cè)出當(dāng)前的 GPU 和系統(tǒng)能進(jìn)行哪些多卡通信的方式,然后根據(jù)該結(jié)果進(jìn)行合理的選路,同時(shí)選擇合適的通信算法,大化提升集合通信的性能。

 

  2.2.1.共享內(nèi)存方式

 

  單機(jī)上多個(gè) GPU 可以通過(guò) PCIe 總線(xiàn),訪(fǎng)問(wèn)系統(tǒng)內(nèi)存來(lái)共享數(shù)據(jù),從而達(dá)到通信的目標(biāo)。

 

  2.2.2.PCIe 的 P2P

 

  單機(jī)上多個(gè) GPU 也可以通過(guò) PCIe 總線(xiàn),直接進(jìn)行通信,這就是 P2P 通信。

 

  2.2.3.專(zhuān)有總線(xiàn)技術(shù)

 

  上面我們介紹過(guò)幾個(gè)廠(chǎng)家的專(zhuān)有互聯(lián)硬件總線(xiàn),它們都需要相應(yīng)的軟件支持,來(lái)到達(dá)單機(jī)多卡的通信。

 

  2.2.4.多機(jī)互聯(lián) - GDR

 

  多機(jī)多卡場(chǎng)景下,傳統(tǒng)的 TCP/IP 網(wǎng)絡(luò)通信速度過(guò)慢,無(wú)法滿(mǎn)足業(yè)務(wù)的需求。目前我們主要使用基于 RDMA 網(wǎng)絡(luò)的 GDR 技術(shù)來(lái)實(shí)現(xiàn), 即 GPU Direct RDMA。它支持 RDMA 的網(wǎng)卡直接訪(fǎng)問(wèn) GPU 的數(shù)據(jù),大大提升了多機(jī)多卡的通信效率。下面我通過(guò)一個(gè)例子來(lái)為大家講解 GDR 是如何提升通信效率的。在傳統(tǒng)的多卡通信中,即圖中紅色步驟,共分為 5 步:GPU 將數(shù)據(jù)傳給內(nèi)存 —— RDMA 網(wǎng)卡從內(nèi)存中拿到數(shù)據(jù) —— RDMA 網(wǎng)卡將數(shù)據(jù)傳給另外一個(gè)節(jié)點(diǎn)的 RDMA 網(wǎng)卡 —— 新節(jié)點(diǎn)的 RDMA 網(wǎng)卡將數(shù)據(jù)傳給該節(jié)點(diǎn)的內(nèi)存 —— GPU 從內(nèi)存中拿到該數(shù)據(jù)。而 GDR 的方式繞過(guò)了系統(tǒng)內(nèi)存的中轉(zhuǎn),讓 RDMA 網(wǎng)卡可以直接從 GPU 處獲取數(shù)據(jù),如圖中藍(lán)色步驟,共分為 3 步:RDMA 網(wǎng)卡從 GPU 處獲取數(shù)據(jù)—— RDMA 網(wǎng)卡將數(shù)據(jù)傳給另外一個(gè)節(jié)點(diǎn)的 RDMA 網(wǎng)卡 —— 新節(jié)點(diǎn)的 RDMA 網(wǎng)卡將數(shù)據(jù)傳輸給 GPU。

 

  得益于 GDR 的方式可以在 PCIe Switch 中進(jìn)行傳輸,不僅僅提供了高速了數(shù)據(jù)傳輸,同時(shí)也減少了上行鏈路中的帶寬爭(zhēng)搶。相比于傳統(tǒng)的方式,采用 GDR 的方法可以提升整體 3-4 倍的帶寬。大大提升了多機(jī)多卡的通信效率。

 

  3.百度智能云的 GPU 云服務(wù)器設(shè)計(jì)實(shí)踐

 

  百度智能云主要有兩類(lèi) GPU 云服務(wù)器的實(shí)例,第一類(lèi)是 BCC(Baidu Cloud Compute) GPU 云服務(wù)器,基于 Qemu/KVM 虛擬化的 GPU 服務(wù)器。第二類(lèi)是 BBC(Baidu Baremetal Compute) GPU 云服務(wù)器,即基于裸金屬的 GPU 云服務(wù)器。

 

  3.1.BCC GPU 云服務(wù)器

 

  我們先來(lái)看 BCC,即基于 Qemu/KVM  虛擬化的 GPU 云服務(wù)器。整體的設(shè)計(jì)如下圖所示:下方是實(shí)際的 GPU 硬件,上層是包括 VFIO 和 KVM 在內(nèi)的內(nèi)核,再往上是 Hypervisor 和實(shí)際的虛擬機(jī)。主要適用于小模型的訓(xùn)練和推理、圖像識(shí)別、推薦系統(tǒng)等場(chǎng)景。

 

  在這樣的結(jié)構(gòu)中,GPU 會(huì)通過(guò) VFIO 技術(shù)整卡透?jìng)鹘o虛擬機(jī),使得整體算力的的損耗比較小。此外,它還可以支持 1 卡、2 卡、4 卡和 8 卡的實(shí)例,讓客戶(hù)可以根據(jù)實(shí)際需要來(lái)進(jìn)行采購(gòu),大大降低了客戶(hù)的使用成本。但在這種結(jié)構(gòu)中,BCC 的拓?fù)浣Y(jié)構(gòu)是虛擬的,這也意味著虛擬機(jī)中的拓?fù)浣Y(jié)構(gòu)和實(shí)際物理形態(tài)中的拓?fù)浣Y(jié)構(gòu)是有差異的。這些會(huì)為實(shí)際業(yè)務(wù)的運(yùn)行帶來(lái)一些性能影響,我們通過(guò)一些虛擬機(jī)的設(shè)計(jì)消化了影響,分別為:

 

  GPU 的 NUMA 感知。

 

  支持多 GPU 的 P2P。

 

  支持 A100/A800  的 Shared NVSwitch 機(jī)型。

 

  支持 RDMA 網(wǎng)絡(luò)。

 

  3.1.1.支持 GPU 的 NUMA 感知

 

  虛擬機(jī)里為什么需要 GPU 的 NUMA 感知呢?主要的原因在于保證 CPU 和 GPU 在同一個(gè) NUMA 下,這樣就可以避免數(shù)據(jù)在系統(tǒng)內(nèi)存和 GPU 顯存之間的傳輸性能損失。實(shí)際上,系統(tǒng)內(nèi)存、CPU 和 GPU 都存在 NUMA 屬性的,如果彼此之間不在一個(gè)  NUMA 中,那么實(shí)際的性能差距就會(huì)受到影響,尤其是在 AMD MILAN 平臺(tái)上, GPU 跨 NUMA 訪(fǎng)問(wèn)的 PCIe 帶寬只有同 NUMA 訪(fǎng)問(wèn)性能的一半。

 

  在虛擬機(jī)實(shí)現(xiàn)時(shí),如果沒(méi)有考慮到 NUMA 屬性,當(dāng)我們將 GPU 透?jìng)鞯教摂M機(jī)時(shí),CPU 0 以及 Memory 0 不知道它要訪(fǎng)問(wèn)的 GPU 是在同一個(gè) NUMA 下還是跨 NUMA,這就大大降低了 GPU 和內(nèi)存之間的傳輸效率。所以我們需要在 GPU 透?jìng)鞯教摂M機(jī)的時(shí)候,讓它感知到在哪一個(gè) NUMA 下,這樣在虛擬機(jī)內(nèi)就可以強(qiáng)制把 GPU、CPU 以及 Memory 綁定在一起,大大降低了傳輸過(guò)程中的性能損失。在實(shí)現(xiàn)時(shí),虛擬機(jī)每個(gè) NUMA 的 CPU 都會(huì)擴(kuò)展出一個(gè) PCIe bus。此時(shí),實(shí)際物理機(jī)上的 NUMA 0 上的 GPU,在透?jìng)鹘o虛擬機(jī)的時(shí)候就會(huì)掛載到虛擬機(jī)的 NUMA 0 的 PCIe bus 上,NUMA 1 上的 GPU 會(huì)掛載到 NUMA 1 的 PCIe bus 上,這樣 GPU 就可以在虛擬機(jī)中感知到 NUMA,從而避免跨 NUMA 傳輸?shù)男阅軗p失。

 

  3.1.2.支持多 GPU 的 PCIe P2P

 

  我們的第二個(gè)改進(jìn)是在虛擬機(jī)內(nèi)對(duì) GPU 的 PCIe P2P 支持。在物理機(jī)上如果要支持多 GPU 的 P2P,一般需要滿(mǎn)足兩個(gè)條件:

 

  硬件層面支持:比如 PCIe Root Complex 或者 PCIe Switch 支持 P2P。

 

  軟件層面支持:需要驅(qū)動(dòng)端支持 PCIe P2P 的傳輸。

 

  在物理機(jī)以上兩個(gè)條件都是支持的,但是當(dāng) GPU 透?jìng)鞯教摂M機(jī)的時(shí)候就,要支持 PCIe P2P 就有新問(wèn)題。第一個(gè)問(wèn)題是因?yàn)樘摂M機(jī)的 PCIe 拓?fù)浣Y(jié)構(gòu)是扁平的,驅(qū)動(dòng)在虛擬機(jī)內(nèi)無(wú)法識(shí)別 GPU 的拓?fù)?所以無(wú)法開(kāi)啟 GPU 的 P2P 能力。這里需要修改 Hypervisor 的實(shí)現(xiàn),在 Hypervisor 模擬的 GPU PCIe 配置空間里增加一個(gè) PCI Capability,讓驅(qū)動(dòng)識(shí)別出 GPU 的 P2P 親和性,這樣 GPU 驅(qū)動(dòng)就可以根據(jù)這個(gè)信息來(lái)開(kāi)啟 P2P 能力。第二個(gè)問(wèn)題是,如果在物理機(jī)上通過(guò) PCIe Switch 連接的兩個(gè) GPU,要在虛擬機(jī)場(chǎng)景下進(jìn)行 P2P 通信,比物理的性能要差很多。這是因?yàn)橥競(jìng)鞯教摂M機(jī)的 GPU 不支持 ATS,他們的 P2P 通信都會(huì)被路由到 IOMMU,而無(wú)法通過(guò) PCIe Switch  中轉(zhuǎn),這樣通信的路徑就長(zhǎng)了,導(dǎo)致性能下降。這個(gè)問(wèn)題目前暫時(shí)無(wú)法解決。

 

  3.1.3.支持 A100/A800 的 Shared NVSwitch 機(jī)型

 

  第三個(gè)改進(jìn)是實(shí)現(xiàn)了對(duì) A100 和 A800 的 Shared NVSwtich 機(jī)型的支持。下圖是 A100 和 NVSwitch 連接的拓?fù)鋱D。我們可以看到,一臺(tái)機(jī)器中有 8 張 A100 的卡,以及 6 個(gè) NVSwitch。它通過(guò) NVSwitch 的連線(xiàn),可以進(jìn)行任意兩卡之間的 NVlink 高速互聯(lián)。

 

  圖片6.jpg

 

  但如果要做 A100 的虛擬機(jī),會(huì)存在有一個(gè)問(wèn)題:如果我們要實(shí)現(xiàn)一個(gè) 2 卡的虛擬機(jī),在將 GPU 傳到虛擬機(jī)的同時(shí)還需要透?jìng)?NVSwitch。但由于 NVSwitch 采用了全連接的形式,如果要保證兩卡的滿(mǎn)速互聯(lián),那么就需要將 6 個(gè) NVSwitch 都透?jìng)鞯教摂M機(jī)中,此時(shí)剩下的 6 張 GPU 就無(wú)法繼續(xù)使用 NVSwitch,這就造成了 GPU 資源的浪費(fèi)。為了解決這個(gè)問(wèn)題,可以使用如下兩種方案:第一種是 Full Passthrough 機(jī)型。這種方案就是將所有的 GPU 和所有的 NVSwitch 都透?jìng)鞯揭粋€(gè)虛擬機(jī)中,但這樣的機(jī)型在 1 卡、2 卡、4 卡的情況下會(huì)損失部分 NVLink 的帶寬。

 

  另外一種是 Shared NVSwtich 機(jī)型。這種設(shè)計(jì)需要?jiǎng)?chuàng)建一個(gè) Service VM 的虛擬機(jī),這個(gè)虛擬機(jī)只透?jìng)?NVSwitch。而用戶(hù)使用的虛擬機(jī)則只需要透?jìng)?GPU。在 Service VM 中可以對(duì) NVSwitch 進(jìn)行管控,讓用戶(hù)虛擬機(jī)內(nèi)的 GPU 都可以進(jìn)行高速互聯(lián)。

 

  通過(guò)這樣的方式,解決了用戶(hù)使用 1 卡、2 卡或者 4 卡虛擬機(jī)時(shí),虛擬機(jī)內(nèi)部  GPU 之間 NVLink 高速互聯(lián)不損失的問(wèn)題。

 

  3.1.4.支持 RDMA 網(wǎng)絡(luò)

 

  第四個(gè)改進(jìn)是支持 RDMA 網(wǎng)卡透?jìng)鳌S械?GPU 機(jī)型,除了要透?jìng)?GPU 外,還需要把 RDMA 網(wǎng)卡透?jìng)鞯教摂M機(jī)里。透?jìng)?RDMA 網(wǎng)卡這點(diǎn)從技術(shù)上實(shí)現(xiàn)是比較簡(jiǎn)單的,但是如果未做任何優(yōu)化手段的話(huà),實(shí)測(cè)發(fā)現(xiàn),虛擬機(jī)里的 GDR 性能,只有物理機(jī)的 25% 左右,這顯然是無(wú)法接受的。為了改進(jìn)這個(gè)問(wèn)題,需要我們做一些相關(guān)的設(shè)置和改進(jìn)。

 

  首先就是網(wǎng)卡需要支持 ATS 功能,并在透?jìng)髑按蜷_(kāi)網(wǎng)卡的 ATS 功能。ATS 主要的工作就是緩存地址翻譯的結(jié)果。RDMA 網(wǎng)卡向 IOMMU 請(qǐng)求地址翻譯,并將得到的物理地址存儲(chǔ)到網(wǎng)卡的緩存中。這樣當(dāng) RDMA 網(wǎng)卡數(shù)據(jù)包時(shí),可以直接使用緩存的物理地址。

 

  其次是打開(kāi) PCIe Switch 上的 ACS 功能,主要是使能 Downstream Port 的 acsctl 的 DirectTrans 標(biāo)志位,這樣,PCIe Switch 就可以直接轉(zhuǎn)發(fā)網(wǎng)卡的數(shù)據(jù)包給 GPU,而不是通過(guò) RC 來(lái)進(jìn)行中轉(zhuǎn),這大大降低了數(shù)據(jù)包的傳輸路徑。

 

  通過(guò)以上兩個(gè)設(shè)置,就可以加速虛擬機(jī)中的 GDR 傳輸性能。但是我們發(fā)現(xiàn)另外一個(gè)問(wèn)題,即多機(jī) NCCL 的性能只有物理機(jī)的 1/4。在物理機(jī)拓?fù)渲?RDMA 網(wǎng)卡和 GPU 在同一個(gè) PCIe Switch 下,但是在虛擬機(jī)拓?fù)渲? GPU 和 RDMA 網(wǎng)卡是平鋪在一個(gè)總線(xiàn)上的。而對(duì)于 NCCL 來(lái)說(shuō),如果是物理機(jī)的場(chǎng)景,那么 NCCL 就會(huì)選擇 GDR 通信;而在虛擬機(jī)場(chǎng)景下,NCCL 則會(huì)認(rèn)為這些網(wǎng)卡和 GPU 無(wú)法做 GDR 通信,因此還是按傳統(tǒng)的通過(guò)內(nèi)存中轉(zhuǎn)的方式來(lái)進(jìn)行通訊。我們采用了 2 種解決方法來(lái)修復(fù)這個(gè)問(wèn)題:

 

  第一種方式是修改虛擬機(jī)拓?fù)涞姆绞?即通過(guò)增加 PCIe Switch 的方式,讓 GPU 和 RDMA 網(wǎng)卡在同一個(gè) PCIe Switch下,這種方法能讓虛擬機(jī)拓?fù)浜臀锢頇C(jī)的保持一致,這樣 NCCL 選路也和在物理機(jī)的保持一致。

 

  第二種方式是修正 NCCL 的拓?fù)渥R(shí)別結(jié)果。我們?cè)诿恳粋€(gè) GPU 和它相鄰的 RDMA 網(wǎng)卡中加了一個(gè)虛擬的 PCIe Switch,然后將這個(gè)拓?fù)湮募ㄟ^(guò)環(huán)境變量提供給 NCCL。通過(guò)這樣欺騙的方式,讓 NCCL 「誤以為」 GPU 0 和 RDMA 0 在同一個(gè) PCIe Switch下,這樣就可以進(jìn)行 GDR 通信。

 

  通過(guò)這樣的方式,我們虛擬的集合通信的性能可以和我們的物理機(jī)打平。

 

  3.2.BBC GPU 云服務(wù)器(裸金屬)

 

  接著是 BBC GPU 云服務(wù)器,即基于裸金屬的 GPU 云服務(wù)器。服務(wù)器的外設(shè)除了 GPU、NVSwitch 和 RDMA 等硬件之外,還通過(guò) PCIe 總線(xiàn)連接了一個(gè) DPU,給主機(jī)提供網(wǎng)絡(luò)和存儲(chǔ)的卸載功能,主機(jī)上的網(wǎng)絡(luò)和存儲(chǔ)的相關(guān)功能都在 DPU 上實(shí)現(xiàn)。這類(lèi)服務(wù)器相比 BCC 服務(wù)器來(lái)說(shuō),因?yàn)?CPU、內(nèi)存、GPU 都不需要虛擬化,整體的算力損耗是零。

 

  目前,我們已經(jīng)實(shí)現(xiàn)了 BCC 和 BBC 的融合,在統(tǒng)一的硬件架構(gòu)上,既可以交付虛擬機(jī)形態(tài)或者裸金屬形態(tài)的 GPU 計(jì)算實(shí)例。

 

  3.2.1 DPU 功能

 

  DPU 核心能力在于卸載、加速和隔離數(shù)據(jù)中心的基礎(chǔ)設(shè)施任務(wù),從而釋放主機(jī)的 CPU 算力,提升整體主機(jī)的系統(tǒng)效率。其核心功能包括:網(wǎng)絡(luò)功能卸載:DPU 通過(guò)硬件加速處理網(wǎng)絡(luò)協(xié)議(如 VxLAN 或者 RDMA 等),將虛擬交換機(jī)(如 OVS)的負(fù)載從 CPU 轉(zhuǎn)移到 DPU,顯著降低網(wǎng)絡(luò)時(shí)延并提升吞吐量。存儲(chǔ)加速:支持 NVMe-oF 協(xié)議,實(shí)現(xiàn)遠(yuǎn)程存儲(chǔ)訪(fǎng)問(wèn)性能接近本地存儲(chǔ),并通過(guò) SNAP 技術(shù)優(yōu)化存儲(chǔ)虛擬化,減少 CPU 對(duì)存儲(chǔ)協(xié)議(如 iSCSI、NVMe)的處理開(kāi)銷(xiāo)。

 

  3.2.2.常用 BBC GPU 機(jī)型介紹

 

  3.2.2.1 A800 機(jī)型

 

  以下是我們主推的 A800 訓(xùn)練機(jī)型,它的規(guī)格如下:

 

  CPU:Intel Xeon 8350C 3.1G。

 

  GPU:8 × A800 SXM4 80GB。

 

  NVLink:GPU 卡間雙向 400 GB/s。

 

  網(wǎng)卡:8 × CX6 100G RoCEv2。

 

  其中 8 個(gè) A800 芯片通過(guò) 6 個(gè) NVLink Switch 芯片進(jìn)行卡間的高速互聯(lián),雙向帶寬達(dá)到 400 GB/s,同時(shí)通過(guò) 4 張 PCIe Switch 和網(wǎng)卡進(jìn)行連接。(每張 PCIe Switch 連接了兩張 A800 和兩張 CX6 100G RoCEv2 的網(wǎng)卡進(jìn)行 GDR 的通訊)。

 

  3.2.2.2.L20 機(jī)型

 

  目前百度智能云也提供了 L20 的機(jī)型。由于 L20 可以進(jìn)行卡間的 P2P 傳輸。所以每個(gè) PCIe Switch 都連接了 2 張 L20 和一張 400G RoCE v2 網(wǎng)卡,大大提升多機(jī)互聯(lián)的帶寬。通過(guò)這樣的架構(gòu)設(shè)計(jì),我們既可以做模型的推理,也可以進(jìn)行大模型的訓(xùn)練。

 

  3.2.2.3 H20 機(jī)型

 

  百度智能云也提供了 H20 96GB 顯存版本的 BBC 機(jī)型。H20 96GB 是 H100 的精簡(jiǎn)版,雖然對(duì)算力進(jìn)行了剪裁,但是保留了 H100 的卡間互聯(lián)帶寬,支持 NVLink 和 NVSwitch,適合大模型的推理和訓(xùn)練。H20 96G 8 卡 BBC 機(jī)型支持單機(jī)跑 DeepSeek V3 和 DeepSeek R1 模型的滿(mǎn)血版本。百度智能云同時(shí)推出了 H20  141GB 顯存版本的機(jī)型,提供單卡 141GB 的顯存,對(duì) Deepseek 大模型提供了更高的吞吐支持。

 

  4.GPU 云服務(wù)器的未來(lái)發(fā)展

 

  4.1.Scale Up 和 Scale Out 的融合統(tǒng)一

 

  在過(guò)去萬(wàn)卡集群的建設(shè)中,云廠(chǎng)商的注意力主要放在 Scale Out 上,通過(guò)多機(jī)互聯(lián)技術(shù)合理的網(wǎng)絡(luò)架構(gòu),建設(shè)一個(gè)超大規(guī)模的集群,以實(shí)現(xiàn)超強(qiáng)算力。同時(shí),Scale Out 和 Scale Up 技術(shù)是互相促進(jìn)和發(fā)展,Scale Out 的互聯(lián)帶寬要匹配對(duì)應(yīng)的 Scale Up 帶寬,如果 Scale Up 帶寬很高,而相應(yīng)的 Scale Out 的帶寬較低,會(huì)造成集合通信在多節(jié)點(diǎn)上成為瓶頸。這個(gè)相互關(guān)系,我們可以從 H800 實(shí)例配置 400G 的 RDMA 中可見(jiàn)一斑。不過(guò),隨著集群能力的要求越來(lái)越高,單純擴(kuò)大規(guī)模變得不夠經(jīng)濟(jì)有效,Scale Up 逐漸成為關(guān)注點(diǎn),并且兩者之間的邊界變得模糊,節(jié)點(diǎn)間和節(jié)點(diǎn)內(nèi)的互聯(lián)技術(shù)逐漸對(duì)齊,以 NVL72 為代表的「高密機(jī)型」就是這個(gè)思想的體現(xiàn),使用 NVLink 作為節(jié)點(diǎn)間的連接方式。

 

  4.2.推理卡和訓(xùn)練卡的分野

 

  大模型推理需求的爆發(fā),將使得成本的關(guān)注變得非常敏感。相比算力的提高,大模型推理對(duì) GPU 顯存的大小和互聯(lián)帶寬有著更高的需求,從 DeepSeek R1/V3 可見(jiàn)一斑。同時(shí),專(zhuān)用芯片的崛起,將進(jìn)一步降低大規(guī)模部署情況下的成本。例如現(xiàn)在各大廠(chǎng)商都在設(shè)計(jì)針對(duì)推理優(yōu)化的 ASIC 芯片,通過(guò)簡(jiǎn)化計(jì)算單元、采用 SRAM 替代 HBM,可以實(shí)現(xiàn)數(shù)倍于傳統(tǒng) GPU 的能效比提升。

推薦 打印 | 錄入:admin | 閱讀:
本文評(píng)論   
評(píng)論聲明
  • 尊重網(wǎng)上道德,遵守中華人民共和國(guó)的各項(xiàng)有關(guān)法律法規(guī)
  • 承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
  • 本站管理人員有權(quán)保留或刪除其管轄留言中的任意內(nèi)容
  • 本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用您的評(píng)論
  • 參與本評(píng)論即表明您已經(jīng)閱讀并接受上述條款
日韩精品一区二区三区swag_一区二区三区在线高清_亚洲国内欧美_国产精品xnxxcom
在线成人小视频| 欧美性色综合| 激情综合中文娱乐网| 香蕉久久夜色精品| 国产精品久久999| 亚洲天堂黄色| 免费观看日韩| 在线观看国产日韩| 久久天天综合| 伊人成人在线| 老司机午夜免费精品视频| 国语自产偷拍精品视频偷| 亚洲欧美日韩国产中文| 国产精品女主播在线观看 | 国产婷婷97碰碰久久人人蜜臀| 亚洲一区二区三区四区五区黄| 欧美日韩在线亚洲一区蜜芽| 在线一区二区三区四区五区| 欧美日韩无遮挡| 一区二区三区精密机械公司| 欧美日韩中文| 一区二区三区 在线观看视频| 欧美日韩精品系列| 正在播放亚洲| 国产精品日韩| 久久se精品一区精品二区| 国产综合网站| 浪潮色综合久久天堂| 亚洲国产精品成人精品| 欧美成人午夜激情视频| 亚洲美女在线看| 欧美系列一区| 午夜日韩在线| 国内精品久久久久久久影视蜜臀| 久久精品一区蜜桃臀影院| 娇妻被交换粗又大又硬视频欧美| 久久精品国产久精国产思思| 在线观看福利一区| 欧美黑人在线播放| 亚洲视频国产视频| 国产日韩一区在线| 久久人人精品| 亚洲精品久久久久久久久| 欧美日韩高清不卡| 午夜精品福利一区二区蜜股av| 国产视频精品免费播放| 裸体一区二区三区| 日韩视频免费在线| 国产精品日韩二区| 久久久青草婷婷精品综合日韩| 亚洲国产天堂久久综合| 欧美日韩亚洲综合| 欧美一区成人| 亚洲欧洲综合| 国产精品蜜臀在线观看| 久久美女艺术照精彩视频福利播放| 亚洲国产日日夜夜| 国产精品久久久久aaaa樱花| 久久精品一二三| 99精品久久久| 国产亚洲精品成人av久久ww| 欧美va亚洲va香蕉在线| 亚洲宅男天堂在线观看无病毒| 国产一区三区三区| 欧美伦理在线观看| 久久av老司机精品网站导航| 亚洲欧洲免费视频| 国产精品自拍网站| 欧美国产一区二区| 亚洲女同精品视频| 亚洲激情电影中文字幕| 国产精品久久久一区二区三区| 久久久久久久999| 一区二区福利| 黄网站免费久久| 欧美视频三区在线播放| 久久三级福利| 亚洲免费一区二区| 亚洲激情一区二区三区| 国产嫩草影院久久久久 | 欧美一区二区三区免费视频| 亚洲国产精品女人久久久| 国产精品视频一| 欧美顶级少妇做爰| 久久av一区二区| 国产精品99久久久久久人| 激情亚洲网站| 国产精品毛片大码女人| 免费在线观看日韩欧美| 亚洲欧美国产精品桃花| 亚洲精品乱码久久久久久久久| 国产伪娘ts一区| 欧美日韩在线电影| 欧美成人精品影院| 久久精品国产69国产精品亚洲| 一区二区三区国产精品| 亚洲国产精品久久久| 国产一区二区精品| 欧美亚男人的天堂| 欧美另类专区| 免费在线播放第一区高清av| 欧美主播一区二区三区美女 久久精品人 | 亚洲三级色网| 一区二区三区自拍| 国产精品一区二区久久国产| 欧美日产国产成人免费图片| 麻豆国产精品一区二区三区| 久久se精品一区精品二区| 亚洲综合国产激情另类一区| 99ri日韩精品视频| 亚洲区第一页| 亚洲国产99| 在线观看欧美| 国产主播一区二区| 国产精品自拍在线| 国产精品久久久久高潮| 欧美视频在线一区二区三区| 欧美激情一区二区三区成人 | 久久伊人亚洲| 久久精品免费电影| 欧美在线一二三| 欧美一区二区三区四区在线观看地址| 亚洲一区二区黄色| 亚洲少妇在线| 一区二区欧美日韩| 99一区二区| 一本色道久久88综合日韩精品| 亚洲日本欧美| 亚洲伦理在线观看| 日韩西西人体444www| 亚洲精品久久久久久久久| 亚洲国产日韩在线一区模特| 亚洲国产精品久久久久秋霞不卡| 尤物在线精品| 亚洲高清精品中出| 亚洲缚视频在线观看| 亚洲国产裸拍裸体视频在线观看乱了中文| 黄色在线成人| 亚洲高清一二三区| 亚洲国产日韩欧美一区二区三区| 亚洲成色999久久网站| 亚洲国产毛片完整版| 亚洲国产日韩美| 亚洲精品一区二区网址| 夜夜夜精品看看| 亚洲性线免费观看视频成熟| 一区二区三区久久久| 亚洲小视频在线观看| 亚洲欧美成人一区二区三区| 午夜精品一区二区三区四区| 欧美在线观看你懂的| 久久久精品国产一区二区三区 | 亚洲欧美日韩国产成人精品影院| 亚洲在线一区| 久久av二区| 麻豆成人在线观看| 欧美日韩高清在线播放| 欧美午夜精品久久久| 国产乱子伦一区二区三区国色天香| 国产日韩欧美综合| 在线精品视频在线观看高清| 亚洲精品视频在线播放| 中文在线资源观看视频网站免费不卡| 亚洲嫩草精品久久| 久久精品一区二区| 欧美va亚洲va香蕉在线| 欧美三级日本三级少妇99| 国产精品永久免费| 在线观看福利一区| 一本一本久久a久久精品综合麻豆 一本一本久久a久久精品牛牛影视 | 亚欧成人精品| 美女尤物久久精品| 欧美日韩色综合| 国产精品一区二区久激情瑜伽| 国产综合18久久久久久| 亚洲精品日韩一| 亚洲欧美综合网| 另类专区欧美制服同性| 欧美日韩亚洲国产一区| 国产欧美一区二区三区在线看蜜臀 | 欧美精品粉嫩高潮一区二区 | 在线精品国精品国产尤物884a| 亚洲精品乱码久久久久久久久| 亚洲一区二区三区777| 久久久在线视频| 欧美日韩一区二区三区| 国产午夜精品全部视频播放| 亚洲黄色毛片| 午夜视频一区二区| 欧美国产精品一区| 国产欧美日韩一级| 亚洲欧洲日本国产| 欧美一区二区免费视频| 欧美激情第4页| 国产欧美日韩亚洲精品| 亚洲精品乱码久久久久久| 欧美一区二区三区在线视频 | 欧美激情第五页| 国产三级欧美三级| 一本色道**综合亚洲精品蜜桃冫| 久久久91精品国产一区二区三区| 欧美日韩国产不卡在线看| 国内精品美女在线观看| 中文日韩欧美|