跳至主要內容

什麼是 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 (存取控制服務)。部分系統可能還需要停用「安全開機」或「快速開機」等功能,才能實現完整的直通功能。

驅動程式安裝

將 GPU 指派給虛擬機器後,必須在客體作業系統 (OS) 中安裝適當的廠商專用驅動程式,例如NVIDIA,AMDIntel 的 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 直通技術面臨若干技術挑戰。這需要在CPU 主機板層級支援 IOMMU,正確的 BIOS 或 UEFI 設定,以及支援直通功能的 GPU。許多消費級 GPU 缺乏完整的虛擬化支援,這可能導致在客體作業系統中出現相容性受限或驅動程式問題。

設定的複雜性是另一個考量因素,通常需要修改核心、精確的裝置綁定,以及超管理程式層級的調校。故障排除往往相當耗時,特別是在無顯示器的伺服器上,而且由於直通式 GPU 的熱插拔支援有限或無法使用,變更通常需要重新開機。

GPU 直通功能的硬體需求

要實現 GPU 直通功能,需配備支援 IOMMU 虛擬化功能(例如 Intel VT-d 或AMD)的伺服器硬體,並進行適當的 BIOS 或 UEFI 設定。CPU、主機板晶片組及韌體必須相互相容,且 GPU 必須支援直通功能,此功能通常見於企業級顯示卡,例如 NVIDIA A100 或AMD MI 系列。

此外,系統應提供足夠的PCIe 供電能力,以支援全尺寸 GPU。為了在管理完善的資料中心環境中實現高效的直通配置,需要針對高密度 GPU 工作負載進行優化的伺服器平台,此類平台通常具備先進的PCIe 、強大的散熱架構,以及韌體層級的直通支援。

常見問題

  1. 如何啟用 GPU 直通功能?
    啟用GPU直通功能的方法是:在系統 BIOS 或 UEFI 中啟用 IOMMU 支援(VT-d 或AMD),然後設定您的虛擬化平台(例如 KVM 或 VMware ESXi),將 GPU 直接指派給虛擬機器。此外,您還需要將 GPU 從主機驅動程式中解除綁定,並在客體虛擬機器中安裝適當的 GPU 驅動程式。
  2. 進行 GPU 直通時需要兩張 GPU 嗎?
    雖然並非絕對必要,但建議配備兩張 GPU。其中一張應專用於主機系統,另一張則用於虛擬機器。這樣一來,主機便能維持顯示輸出與系統穩定性,同時確保用於虛擬機器的直通 GPU 處於完全隔離的狀態。
  3. GPU 直通功能是否適用於容器?
    是的,若在具備直接 GPU 存取權限的虛擬機器內進行配置,即可在容器中使用 GPU直通功能。此外,針對容器的專用解決方案(例如 NVIDIA Docker 或 GPU 操作員框架)也能在 Kubernetes 環境中提供 GPU 存取功能。