什麼是GPU直通?
GPU 直通是一種虛擬化技術,它允許將實體圖形處理單元(GPU) 直接指派給單一虛擬機器 (VM)。這使得虛擬機器能夠像在裸機硬體上運行一樣存取 GPU 的全部功能。 GPU 直通繞過了虛擬機器管理程式的抽象層,為圖形密集型或運算密集型工作負載提供接近原生效能。
此功能在虛擬桌面基礎架構(VDI)、人工智慧等用例中至關重要。 AI )、機器學習(ML)和高效能運算( HPC在需要GPU加速才能獲得最佳效能的情況下,直通模式與共享或模擬GPU資源不同,它將整個GPU分配給一個虛擬機,從而提供最大的吞吐量和最小的延遲。
GPU 直通通常使用 KVM(基於核心的虛擬機器)、VMware ESXi 和 Citrix Hypervisor 等虛擬化平台來實現,並且通常與現代中央處理器 (CPU) 和主機板中提供的 IOMMU(輸入/輸出記憶體管理單元)技術結合使用。
GPU直通的工作原理
GPU 直通是透過硬體和軟體層面的虛擬化支援相結合的方式實現的,特別是 PCI Express( PCIe )利用IOMMU技術實現設備直通。這使得實體GPU可以直接對應到客戶虛擬機,繞過主機系統的控制,並使虛擬機能夠直接、低延遲地存取GPU。
硬體配置
要使 GPU 直通功能正常運作,伺服器必須支援 IOMMU(輸入/輸出記憶體管理單元),可實現裝置隔離和記憶體位址重新映射。 PCIe 裝置.在英特爾平台上,此功能稱為英特爾 VT-d;在AMD 系統,它被稱為AMD -六、兩者都必須得到支持CPU主機板晶片組和韌體。
要啟動 IOMMU,使用者必須在系統 BIOS 或 UEFI 設定中啟用它。這通常涉及啟用虛擬化擴充(VT-d 或 UEFI)。 AMD -Vi)並確保PCIe 如果平台支持,則啟用存取控制服務 (ACS)。某些系統可能還需要停用安全啟動或快速啟動等功能才能實現完整的直通功能。
驅動程式安裝
將 GPU 指派給虛擬機器後,必須在客戶作業系統 (OS) 上安裝對應的廠商特定驅動程序,例如NVIDIA 、 AMD或Intel GPU 驅動程式。這些驅動程式使客戶作業系統能夠識別和利用實體 GPU 的全部功能,包括 3D 加速、用於平行運算的CUDA核心以及硬體加速渲染管線。
在某些情況下,可能需要在客戶機中停用虛擬機器管理程式層級的圖形接口,以防止驅動程式衝突,從而確保只使用直通 GPU。
虛擬機器管理程式設定
IOMMU 啟動後,下一步是設定支援此功能的虛擬機器管理程式。 PCIe 直通模式。常用的選擇包括 KVM/QEMU、VMware ESXi 和 Citrix Hypervisor(以前稱為 XenServer)。這些平台使用底層虛擬化驅動程式和 API 來實現直接連接。 PCIe 設備分配給客戶虛擬機器。
例如,在 KVM 環境中,設備直通透過 vfio-pci 核心模組進行配置,從而確保安全隔離的設備存取。 VMware ESXi 使用 DirectPath I/O 將 GPU 直接暴露給虛擬機,以最小的虛擬化開銷實現接近原生效能。
裝置綁定
GPU 直通的關鍵步驟是將 GPU 從宿主機系統分離並綁定到虛擬機器。這可以透過解除 GPU 的綁定來實現。 PCIe 從任何預設主機驅動程式取得位址,並將其綁定到直通驅動程序,例如 vfio-pci。
GPU 綁定後,宿主機作業系統將完全無法存取該 GPU,且只能由指定的虛擬機器使用。這可以防止衝突並確保獨佔 GPU 存取權限,這對於即時渲染、模擬或深度學習模型訓練等對延遲敏感的工作負載至關重要。
GPU直通的優勢與挑戰
GPU 直通使虛擬機器能夠直接存取實體 GPU,繞過虛擬機器管理程式的抽象層,從而提供接近原生效能。這使其非常適合計算密集型工作負載,例如: AI 訓練、電腦輔助設計 (CAD) 渲染和即時模擬。為虛擬機器分配專用 GPU 還可以提高隔離性和效能穩定性,這在生產環境中至關重要。
除了提升原始效能之外,直通功能還能透過在虛擬桌面、遠端工作站和容器化應用程式中啟用 GPU 加速來擴展虛擬化功能。它使企業能夠在更少的實體伺服器上整合工作負載,同時保持每個虛擬機器的高效能,從而提高硬體利用率和營運效率。
然而,GPU直通帶來了一些技術挑戰。它需要IOMMU支援。 CPU 主機板層面,正確的BIOS或UEFI配置,以及支援直通功能的GPU都至關重要。許多消費級GPU缺乏完整的虛擬化支持,這可能導致在客戶作業系統中出現相容性問題或驅動程式問題。
設定複雜性是另一個因素,通常需要修改核心、精確綁定設備以及進行虛擬機器管理程式層級的調優。故障排除通常非常耗時,尤其是在無頭伺服器上,而且變更通常需要重啟,因為直通 GPU 的熱插拔支援有限或不可用。
GPU直通的硬體需求
實現 GPU 直通需要支援 IOMMU 虛擬化功能的伺服器硬件,例如 Intel VT-d 或AMD -Vi,以及正確的BIOS或UEFI配置。 CPU主機板晶片組和韌體必須全部相容,且GPU必須支援直通功能,這通常見於NVIDIA A100等企業級顯示卡。 AMD 本能 MI 系列。
此外,系統應提供足夠的PCIe 提供充足的通道和電源,以支援全尺寸 GPU。伺服器平台針對高密度 GPU 工作負載進行了最佳化,通常配備先進的PCIe 為了在管理良好的資料中心環境中實現高效的直通配置,需要拓撲結構、強大的冷卻架構和韌體級直通支援。
常見問題解答
- 如何啟用GPU直通?
透過啟動 IOMMU 支援(VT-d 或)來啟用 GPU 直通。 AMD在系統 BIOS 或 UEFI 中找到對應的設定(-Vi),然後設定您的虛擬機器管理程式(例如 KVM 或 VMware ESXi),將 GPU 直接指派給虛擬機器。您還需要將 GPU 從主機驅動程式解綁,並在客戶虛擬機器中安裝對應的 GPU 驅動程式。 - GPU直通需要兩塊GPU嗎?
雖然並非絕對必要,但建議使用兩塊GPU。一塊專用於主機系統,另一塊專用於虛擬機器。這樣可以確保主機能夠維持顯示輸出和系統穩定性,同時虛擬機器使用的GPU完全隔離。 - GPU直通功能是否支援容器化?
是的,如果虛擬機器本身俱有直接的 GPU 存取權限,則可以在容器中使用 GPU 直通。此外,諸如 NVIDIA Docker 或 GPU 操作框架之類的容器專用解決方案也為 Kubernetes 環境提供了 GPU 存取權限。