我的輸出:
$ inxi -G
Graphics:
Device-1: Microsoft Basic Render Driver driver: dxgkrnl v: 2.0.1
Display: wayland server: Microsoft Corporation X.org driver: gpu: dxgkrnl
resolution: 1: 1920x1080~60Hz 2: 1920x1080~60Hz
OpenGL: renderer: llvmpipe (LLVM 13.0.1 256 bits)
v: 4.5 Mesa 23.0.0-devel (git-4b077ffb98)
$ lspci -v |grep -A8 VGA
lspci: Unable to load libkmod resources: error -2
系統 :
- 華碩 ZenBook UX325EA Windows 11
- WSL2 Ubuntu 22.04 傑米
- 英特爾 i7 11th / 英特爾 Iris Xe 顯示卡
答案1
正如評論中提到的,當 Ubuntu 在 WSL2 下運行時,您實際上並沒有將(大多數1 )硬體驅動程式安裝到 Ubuntu 中。
WSL2 是一個有趣的技術組合:
WSL2 本身就是一個「託管虛擬機器」。作為最終用戶,我們實際上並沒有與虛擬機器本身進行互動。無論如何,由於它是虛擬化的,我們很少會在其中安裝硬體驅動程式。例如,與 VirtualBox 互動時,您安裝 VirtualBox 顯示驅動程序,然後主持人作業系統提供了硬體顯示驅動程式。
您的 Ubuntu 發行版使用命名空間和 cgroup 在該 VM 內的「容器」內運作。這與 Docker 和其他容器技術的工作方式類似。同樣,在容器內部,我們很少安裝硬體驅動程式。容器依賴主機 VM(在本例中為 WSL2)核心和驅動程式(在本例中為虛擬 WSL2 驅動程式)。
圖形功能是透過 WSLg 提供的,它實際上使用 RDP 協定在 WSL 自動從 Windows 連接到的虛擬 RDP 會話中顯示 Wayland 和 X 應用程式。正如你可能想像的那樣,視窗您的硬體的顯示驅動程式正用於此功能。
GPU 運算任務由 WSL2 處理直接機器學習(對於 Nvidia,還有 CUDA)庫在啟動時被「注入」到發行版(容器)中。如果我理解正確的話,在 WSL2 上編寫 ML 任務是透過 DirectML 完成的,並使用該技術的 TensorFlow(1 和 2)和 PyTorch 實作。根據微軟文件:
該軟體包可加速 AMD、Intel 和 NVIDIA GPU 上的工作流程。
同樣,這是透過視窗GPU 驅動程序,在 WSL2 中執行的 DirectML 程式庫知道如何在 Linux 實作和 Windows 主機驅動程式之間代理資料。
註腳:
1 USB 驅動程式可以是此規則的例外。 WSL2 支援 USB/IP,允許 USB 裝置從 Windows 主機共用到 Linux 發行版。在這種情況下,裝置的實際硬體驅動程式必須在 Linux 中可用。