微軟重塑”DXGKRNL”驅動欲將其納入Linux內核中
早在2020年,微軟宣布DXGKRNL驅動為內核驅動組件,用於支持Windows Subsystem for Linux(WSL2)中的GPU加速用例。最初的DXGKRNL驅動很快就被上游內核開發者提出了各種問題,而現在,在過去的一年裡,微軟一直在重新製作這個內核驅動,並在周三發布了新版本。
DXGKRNL是他們的”DirectX”內核驅動組件,用於Windows Subsystem for Linux(WSL2),支持Hyper-V環境下的圖形加速和GPU計算。DXGKRNL也將用於他們即將推出的Android Windows子系統(WSA)。DXGKRNL作為Hyper-V虛擬計算設備的驅動程序,主要是用於GPU,但也可以擴展到其他AI/ML加速器和Windows主機的類似設備。OpenGL、Vulkan、OpenCL、OpenVINO、oneAPI和CUDA等API旨在與支持的用戶空間庫/組件一起使用時,可以在DXGKRNL上運行。
新版本的DXGKRNL解決了上游代碼審查人員在前一輪補丁中提出的問題。微軟還更好地完成了其vGPU/計算硬件虛擬化支持代碼。這些補丁也是”從頭開始重建”,比之前的補丁組織得更有效。
微軟最初也因為DXGKRNL而受到批評,因為它依靠閉源的CUDA和DirectX用戶空間組件來運行。對此,他們現在正在慶祝英特爾提供的開源用戶空間API支持,現在OpenCL/OpenVINO/oneAPI支持在這個內核驅動上用於英特爾圖形硬件。
補丁系列的介紹信指出:”在英特爾計算運行時間項目和libdxg之間,我們現在在WSL內部有一個完全開源的虛擬化計算棧的實現。我們將繼續支持針對我們的計算抽象的開源用戶空間API,以及閉源的API(CUDA、DX12),讓API所有者和合作夥伴決定什麼對他們最有意義。”
更新的微軟DXGKRNL補丁系列可以在內核郵件列表中找到。到目前為止,Greg Kroah-Hartman已經對新的補丁進行了評論,有一些技術問題需要解決,同時我們等待著看這個微軟內核驅動程序是否在2022年有機會進入主線內核,或者只是能夠讓微軟Windows主機上的Windows Subsystem for Linux / Windows Subsystem for Android受益的內容。
不計算用戶空間的工作,DXKGRNL內核驅動要增加了16800行的新代碼。
了解更多:
https://lore.kernel.org/lkml/ cover.1641937419.git.iourit@linux.microsoft.com /