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上的應用有望更加成熟。目前,該項目已開源,感興趣的讀者可以自行嘗試。