Mesa 23.1 啟用了 RadeonSI Rusticl 支持,而對於剛剛開始開發的下一季度的 Mesa 23.2,Rusticl 已經有了一個重要的項目:共享虛擬內存 (SVM) 支持。
OpenCL 2.0 中添加的共享虛擬內存允許主機和 GPU 設備輕鬆共享指針和其他基於指針的數據結構。 SVM 的共享虛擬地址空間還對一致訪問、同步和其他功能提出了要求,這些功能為更多用例打開了 OpenCL。
Red Hat 的 Rusticl 開發人員 Karol Herbst 已將 Mesa 合併請求維護了四個月,以提供細粒度系統 SVM 支持,同時該代碼已在一夜之間合併到新啟動的 Mesa 23.2 開發週期中。
Karol 指出,除了會遇到驅動程序錯誤外,它對於 Nouveau Gallium3D 驅動程序來說基本上工作正常。 Rusticl 中的 SVM 支持還減少了一項功能,該功能目前是較舊但未維護的 Gallium3D Clover 狀態跟踪器的優勢。
Karol 在提交中進一步解釋為 Rusticl 啟用 SVM:
目前它是全有或全無。支持細粒度系統 SVM 的驅動程序可以啟用它以獲得完整的 SVM 支持。
較低級別可以由 userptrs 模擬,並將 bo 放置在 GPU VM 中的相同位置,但這需要在驅動程序端進行相當多的返工。
目前在內核端支持 mmu_notifiers 是使用 Rusticl 獲得 SVM 支持的唯一方法。
唯一將鎵位連接到 atm 的驅動程序是 Nouveau,但我懷疑對於 iris 和 radeonsi 也不應該太難。
請參閱此合併請求 如果對這一千行新代碼的更多詳細信息感興趣。