跳至主要內容

何謂GPU直通?

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 存取控制服務(ACS)則需啟用該功能。部分系統可能還需停用安全啟動或快速啟動等功能,方能實現完整的直通功能。

驅動程式安裝

在將 GPU 分配給虛擬機器後,必須在客體作業系統 (OS) 中安裝適當的廠商專屬驅動程式,例如NVIDIAAMDIntel 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工作負載優化的伺服器平台,通常具備先進的PCIe拓撲結構、強健的散熱架構及韌體層級的直通支援功能,此類平台對於在妥善管理的資料中心環境中實現高效直通配置至關重要。

常見問題

  1. 如何啟用 GPU 直通?
    GPU 直通需透過以下步驟啟用1. 在系統 BIOS 或 UEFI 中啟用 IOMMU 支援(VT-d 或AMD)2. 設定虛擬化管理程式(如 KVM 或 VMware ESXi)將 GPU 直接分配給虛擬機器3. 從主機驅動程式解除綁定 GPU4. 在虛擬機器中安裝適用的 GPU 驅動程式
  2. 進行 GPU 直通時需要兩張 GPU 嗎?
    雖然並非絕對必要,但建議配備兩張 GPU。其中一張應專供主機系統使用,另一張則專供虛擬機器使用。此配置可確保主機在直通 GPU 完全隔離給虛擬機器使用時,仍能維持顯示輸出與系統穩定性。
  3. GPU 直通功能是否適用於容器?
    是的,若在具備直接 GPU 存取權限的虛擬機器內進行配置,即可在容器中使用 GPU直通功能。此外,針對容器的專用解決方案(如 NVIDIA Docker 或 GPU 操作框架)亦能在 Kubernetes 環境中提供 GPU 存取功能。