AI News HubLIVE
站内改写

現在你可以將Thunderbolt外接GPU連線到Mac上玩遊戲和加速AI

本文介紹瞭如何透過Thunderbolt將桌面級NVIDIA RTX 5090 GPU連線到M4 MacBook Air,並在Linux虛擬機器中使用PCI直通技術實現遊戲和AI推理。文章詳細描述了技術挑戰,包括macOS缺乏驅動、PCI BAR對映導致的核心崩潰、DMA問題及解決方案,並提供了多項遊戲和AI基準測試結果。

文章情報

工程師進階

要點

  • 使用Thunderbolt外接GPU到Mac,需透過PCI直通到Linux虛擬機器。
  • macOS Apple Silicon不提供NVIDIA/AMD GPU驅動,需藉助Hypervisor.framework。
  • 技術難點包括PCI BAR對映導致的核心崩潰及DMA配置問題。
  • 基準測試顯示,外接RTX 5090在1080p遊戲和AI推理中效能表現良好,但低於原生桌面。

為什麼重要

這條新聞值得關注,因為使用Thunderbolt外接GPU到Mac,需透過PCI直通到Linux虛擬機器。

技術影響

可能影響模型選型、推理成本、產品能力和評測基準。

你是否曾想過將一塊完整的桌面級GPU連線到你的MacBook Air上?現在,透過Thunderbolt eGPU技術,這已成為現實。本文作者成功地將一塊NVIDIA RTX 5090顯示卡透過Thunderbolt 4介面連線到了M4 MacBook Air上,並在Linux虛擬機器中實現了GPU直通,從而能夠執行遊戲和進行AI推理。

Thunderbolt eGPU的原理是將PCIe訊號透過USB-C線纜進行隧道傳輸,從計算機的角度看,外接裝置就像一個略慢的PCIe裝置。在Linux和Windows上,eGPU基本可以即插即用,但macOS(尤其是Apple Silicon機型)缺少對NVIDIA和AMD顯示卡的驅動程式支援,因此無法直接使用。

為了解決驅動問題,作者採用了在macOS上執行Linux ARM64虛擬機器,並透過Hypervisor.framework將GPU直通給虛擬機器的方法。QEMU作為虛擬機器管理器,需要處理PCI BAR(基址暫存器)對映和DMA(直接記憶體訪問)等關鍵問題。在最初嘗試對映PCI BAR時,主機核心頻繁崩潰,導致整個系統凍結。經過排查,發現崩潰的原因是記憶體對映標誌中缺少HV_MEMORY_EXEC標誌——這個細微差別導致QEMU在訪問裝置記憶體時觸發了核心錯誤。

另一個重大挑戰是Apple Silicon上的DMA支援。Apple的I/O虛擬化架構不允許直接在VM中使用物理DMA地址,因此作者開發了一個名為“apple-dma-pci”的驅動程式,透過將實體地址對映到虛擬地址來橋接DMA操作,並處理了NVIDIA GPU的對齊要求等相容性問題。最終,解決方案包括在QEMU中取消MMIO區域的執行許可權,並透過自定義驅動實現DMA重對映。

效能方面,作者進行了一系列基準測試:在《賽博朋克2077》1080p低畫質下可達144 FPS,而M4 MacBook Air的整合GPU僅能執行30 FPS;在《古墓麗影:暗影》4K中,eGPU配置可達33 FPS,大幅領先整合GPU的8 FPS。AI推理方面,使用tinygrad框架的測試顯示,相比原生Metal推理,eGPU方案的效能約為十分之一,但透過最佳化的Linux驅動和CUDA支援,仍可獲得可用的推理速度。

作者指出,這一方案並非面向普通使用者,而是為技術愛好者提供了一種在Mac上使用高階顯示卡的途徑。未來,隨著macOS虛擬化框架的改進和新驅動的出現,eGPU在Mac上的應用有望更加成熟。目前,該專案已開源,感興趣的讀者可以自行嘗試。