Bitfusion 的工作原理決定了它有一些額外的資源消耗,主要是用戶端和伺服器之間的網路傳輸開銷。這些額外的開銷對於GPU的利用率會有一些怎樣的損耗呢?我們通過測試來評估一下。
我們把 vSphere 虛擬化平臺上直接使用 GPU (直通模式) 作為基準,看看使用 Bitfusion 的結果跟它之間有多大的差距。至於利用 GPU 進行機器學習在虛機化平臺和裸金屬平臺之間有多大的性能差異,VMware 的研究團隊已經做過這方面的測試,基本上沒有性能差異;由於 vSphere 的優化功能,在某些測試場景中虛擬化環境下的性能甚至要比裸機環境還要好一些。
我們用三台伺服器搭建了一個測試環境,一台主機上安裝了 GPU,並在這台主機上運行 Btifusion 伺服器虛機;在另一台主機的虛機中運行 TensorFlow 機器學習框架性能測試套件 tf_cnn_benchmarks,通過網路來訪問 Bitfusion 伺服器提供的 GPU 計算資源(測試環境的具體硬體設定列在本文最後的附錄中)。我們主要是針對3種不同的網路配置來進行測試,考量不同的網路條件對機器學習的性能有多大影響,從而為用戶在實際環境中選擇網路配置提供一個參考。三種測試場景如下:
- 直接採用 10Gb/s 網路,使用虛擬網卡 VMXNET3;
- 採用 100Gb/s 的聚合乙太網 RDMA 方案 RoCE,直通方式訪問;
- 採用 100Gb/s 的聚合乙太網 RDMA 方案 RoCE,通過虛擬化方式 PVRDMA 訪問。
什麼是 RDMA?
首先介紹一下基本概念 RDMA,熟悉的同學可以直接跳過。
RDMA 的全稱是 Remote Direct Memory Access (遠端記憶體直接訪問),它是一種性能加速技術,通過網卡來直接訪問另一台伺服器上的記憶體,而不需要 CPU 的介入。伺服器間傳統的資料交換需要通過 CPU 從記憶體中讀取資料,然後再通過網路通訊協定堆疊交由網卡把資料傳送到到另一台伺服器;另一台伺服器則執行相反的操作,也需要經過網卡轉交給 CPU 再寫入到記憶體中,這中間會消耗大量的 CPU 資源。RDMA 則通過一整套的軟硬體協議,把這些工作完全交給網卡來實現,這樣可以大大提高跨伺服器資料訪問的效率,並且節省大量的 CPU 資源。現在,一些大型軟體如資料庫系統等紛紛增加了對 RDMA 的支援,以獲得更高的系統性能。
目前主要有以下三種 RDMA 技術方案:
- InfiniBand (IB) – 需要 InfiniBand 專用的網卡和交換機,性能最高,也最昂貴。
- RDMA Over Converged Ethernet (RoCE) – 利用現有的乙太網和交換機來支援 RDMA,只需要網卡支援 RoCE 就行了。
- Internet Wide Area RDMA Protocol (iWARP) – 在 TCP 網路上支援 RDMA,也可以利用現有的網路設備,只是網卡要求特殊,要求支援 iWARP 。
我們測試中用到的方案為 RoCE,這是由主機上的網卡 HCA (Host Channel Adapter) 來實現的。虛機使用 HCA 提供的 RDMA 有兩種方式,一種就是直通方式,虛機獨佔使用 HCA,這就是我們第2種測試場景中的網路配置;另一種是虛擬化方式 PVRDMA (Paravirtual RDMA),是 VMware 對於 RDMA 技術的半虛擬化實現,vSphere 會在虛機中提供 PVRDMA 虛擬網卡,再通過 VMkernel 中的 PVRDMA 堆疊來訪問 HCA,這種方式可以讓多個虛機共用 HCA 設備,這是我們第3種測試場景中的網路配置。
測試結果
在測試中,我們選擇了兩種非常代表性的深度學習模型 Incepton3 (Inception Net V3) 和 resnet50 (Residual Neural Net 50 [50層殘差神經網路]) 來對 ImageNet 進行圖像分類學習。測試結果如下面的圖表所示,我們把基準性能 (直通模式) 的性能定義為1,每次測試的性能跟基準的比值顯示在圖表中,Performance Ratio的值越接近於1就表示使用 Bifusion 所導致的性能損耗越小,值為1表示完全沒有性能損耗。
測試場景1:直接採用 10Gb/s 網路,使用虛擬網卡 VMXNET3
很顯然,這是三個場景中性能損耗最大的,這個場景中的網速最慢,也沒有利 RDMA 方案來分擔 CPU 的傳輸負擔。10Gb/s 是最普通的資料中心網路配置,這是利用普通網路可以達到的性能結果。
測試場景2:採用 100Gb/s 的聚合乙太網 RDMA 方案 RoCE,直通方式訪問
這是三個場景中性能最高的一個,採用了 100Gb/s 高速網路,又是直通模式來使用主機網卡的 RDMA 功能。在高性能網路配置下,可以看到 Bitfusion 所造成的性能損耗幾乎可以忽略不計。
測試場景3:採用 100Gb/s 的聚合乙太網 RDMA 方案 RoCE,通過虛擬化方式 PVRDMA 訪問
這種場景因為採用了虛擬化的 RDMA 方式,性能跟直通方式相比有一定下降。這是實際應用最可能的一種場景,一般我們都會有多個虛機來共用同一物理網卡所提供的 RDMA 功能,PVRDMA 是一個必然的選擇。
總結
Bitfusion 由於採用了客戶機和伺服器模式來共用 GPU,CUDA 調用和相關的資料都需要通過網路來進行傳輸,相比於在本機上使用 GPU 會有一定的性能損耗。從測試結果我們可以看到 Bitfusion 對於 GPU 的性能損耗最大偏差也不到 20%,相比於 Bitfusion 方案所帶來的共用便利和 GPU 利用率的提升是完全可以接受的。
需要注意的是 RDMA 的直通模式雖然性能最優,但是它基本上是讓虛機饒過了 hypervisor 來直接使用 RDMA 設備,在這種情況下虛機無法用到 vSphere 的一些核心功能,包括 vMotion、動態添加和刪除虛擬裝置、虛機快像、DRS (Distributed Resource Scheduler) 和高可用 HA 功能。PVRDMA 是 VMware 對於 RDMA 技術的半虛擬化實現,它不存在直通模式的這些局限,完全可以用到 vSphere 的所有功能,並且可以實現多個虛機對於 RDMA 設備的共用。
另外我們也可以看到 Bitfusion 方案的性能損耗也取決於深度學習模型和 batch size 的大小,大的 batch size 有助於降低性能損耗,這是值得我們在真實環境中配置 Bitfusion 平臺時借鑒的。
測試環境
下面列出測試所用的軟硬體環境供大家參考。
表1:測試硬體
表2:測試軟體
本文的內容和測試資料來自于英文博客 Machine Learning Leveraging NVIDIA GPUs with Bitfusion on VMware vSphere (Part 2 of 2)。
延伸閱讀
將 VMware vSphere / vSAN 軟體與 Intel 的最新硬體平臺技術相結合,可以為用戶交付最佳的超融合架構平臺,幫助用戶簡化資料中心管理,降低採購和運維成本,輕鬆應對企業在數位化轉型中面對的各種挑戰,是現代應用的理想運行平臺。
- VMware vSAN 是最佳的存儲方案平臺,具有管理簡便、高性能、低成本、易擴展的特點,在 vSAN 平臺上可以支援任何類型的應用。
- Intel 至強處理器提供最強計算能力,基於傲騰 (Optane) 和 3D NAND 技術的固態盤是理想的快取記憶體,乙太網融合網卡提供穩定的網路頻寬和低網路延遲。
Comments
0 Comments have been added so far