何謂GPU直通?
GPU直通是一種虛擬化技術,可將實體圖形處理器(GPU)直接分配給單一虛擬機器(VM)。此技術使虛擬機器能完整存取GPU效能,如同在裸機硬體上運行。GPU直通技術繞過虛擬化管理程式的抽象層,為圖形密集型或運算密集型工作負載提供近乎原生的效能表現。
此功能在虛擬桌面基礎架構(VDI)、人工智慧(AI)、機器學習(ML)及高效能運算(HPC)等應用場景中至關重要,這些領域皆需GPU加速以實現最佳效能。相較於共享或模擬的GPU資源,直通模式將整顆GPU專屬分配給單一虛擬機器,可提供最大吞吐量與最低延遲。
GPU直通技術通常透過虛擬化平台實現,例如KVM(基於核心的虛擬機器)、VMware ESXi及Citrix Hypervisor,並常結合現代中央處理器(CPU)與主機板所具備的IOMMU(輸入輸出記憶體管理單元)技術。
GPU直通技術如何運作
GPU 直通功能是透過硬體與軟體層級的虛擬化支援結合而實現的,具體而言,是利用 IOMMU 技術實現的 PCI Express (PCIe) 裝置直通。這使得實體 GPU 能直接映射至客體虛擬機器,繞過主機系統的控制,讓虛擬機器得以直接且低延遲地存取 GPU。
硬體配置
要使 GPU 直通功能正常運作,伺服器必須支援 IOMMU(輸入/輸出記憶體管理單元),該功能可為PCIe 提供裝置隔離與記憶體位址重新映射。在 Intel 平台上,此功能稱為 Intel VT-d;在AMD ,則稱為AMD。CPU、主機板晶片組及韌體均須支援這兩項功能。
要啟用 IOMMU,使用者必須在系統 BIOS 或 UEFI 設定中啟用此功能。這通常涉及啟用虛擬化擴充功能(VT-d 或AMD),並確保在平台支援的情況下已啟用PCIe (存取控制服務)。部分系統可能還需要停用「安全開機」或「快速開機」等功能,才能實現完整的直通功能。
驅動程式安裝
將 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,透過繞過虛擬化管理程式的抽象層,提供近乎原生的效能表現。此特性使其特別適用於運算密集型工作負載,例如AI 、電腦輔助設計(CAD)渲染及即時模擬。為虛擬機器指派專用GPU亦能提升隔離性與效能一致性,此特性在生產環境中至關重要。
除了提升原始效能外,直通技術透過在虛擬桌面、遠端工作站及容器化應用程式中啟用GPU加速功能,進一步擴展虛擬化能力。此技術使企業得以將工作負載整合至更少的實體伺服器上,同時維持每台虛擬機器的高效能表現,進而實現更優異的硬體利用率與提升營運效率。
然而,GPU直通技術存在技術性挑戰。它CPU 板層級的IOMMU支援、正確的BIOS或UEFI設定,以及支援直通功能的GPU。許多消費級GPU缺乏完整的虛擬化支援,可能導致在虛擬作業系統中出現相容性受限或驅動程式問題。
設定複雜度是另一項考量因素,通常需要修改核心設定、精確綁定裝置,以及進行虛擬化管理程式層級的調校。故障排除往往耗時費力,尤其在無頭伺服器上更為明顯,且變更通常需要重新啟動系統,因為直通顯示卡的熱插拔支援功能有限或根本無法使用。
GPU直通的硬體需求
要實現 GPU 直通功能,需配備支援 IOMMU 虛擬化功能(例如 Intel VT-d 或AMD)的伺服器硬體,並進行適當的 BIOS 或 UEFI 設定。CPU、主機板晶片組及韌體必須完全相容,且 GPU 必須支援直通功能,此功能通常見於企業級顯示卡,例如 NVIDIA A100 或AMD MI 系列。
此外,系統應提供足夠的PCIe 供電能力,以支援全尺寸 GPU。為了在管理完善的数据中心環境中實現高效的直通配置,需要針對高密度 GPU 工作負載進行優化的伺服器平台,此類平台通常具備先進的PCIe 、強大的散熱架構,以及韌體層級的直通支援。
常見問題
- 如何啟用 GPU 直通功能?
啟用GPU直通功能的方法是:在系統 BIOS 或 UEFI 中啟用 IOMMU 支援(VT-d 或AMD),然後配置您的虛擬化平台(例如 KVM 或 VMware ESXi),將 GPU 直接分配給虛擬機器。此外,您還需要將 GPU 從主機驅動程式中解除綁定,並在客體虛擬機器中安裝適當的 GPU 驅動程式。 - 進行 GPU 直通時需要兩張 GPU 嗎?
雖然並非絕對必要,但建議配備兩張 GPU。其中一張應專供主機系統使用,另一張則專供虛擬機器使用。此配置可確保主機在直通 GPU 完全隔離給虛擬機器使用時,仍能維持顯示輸出與系統穩定性。 - GPU 直通功能是否適用於容器?
是的,若在具備直接 GPU 存取權限的虛擬機器內進行配置,即可在容器中使用 GPU直通功能。此外,針對容器的專用解決方案(如 NVIDIA Docker 或 GPU 操作框架)亦能在 Kubernetes 環境中提供 GPU 存取功能。