FOSSBYTES TECH SIMPLIFIED LOGO

Microsoft thông báo rằng họ sẽ hỗ trợ thiết bị GPU cho Hệ thống con Windows dành cho Linux 2 (WSL2). Bản xem trước của tính năng theo yêu cầu này sẽ được phát hành cho người dùng Windows 10 Insider Fast ring trong vài tháng tới.

Nhưng tính năng này có ý nghĩa gì đối với người dùng Windows 10 và Linux (bản địa)? Tại sao và bằng cách nào Microsoft có thể thực hiện điều này? Đây chính xác là những gì tôi sẽ thảo luận trong bài viết này. Vì vậy, hãy đi sâu vào để biết tất cả về DirectX trên Linux.

DirectX là gì?

DirectX là một công nghệ Windows độc quyền do Microsoft sở hữu và phát triển. Nó bao gồm một bộ API (Giao diện lập trình ứng dụng) như Direct3D, DirectDraw và DirectMusic cho phép giao tiếp giữa phần cứng và phần mềm trên nền tảng Windows.

DirectX giúp tạo và quản lý hình ảnh, âm thanh và hiệu ứng video chất lượng cao trong các ứng dụng chạy trên Windows bằng cách tận dụng các tính năng hiệu suất cao của phần cứng như GPU và card âm thanh.

Thiếu hỗ trợ GPU trong hệ thống con của Windows dành cho Linux

Microsoft đã phát triển hệ thống con của Windows cho Linux cho các nhà phát triển nhận thấy nền tảng Linux phù hợp hơn để phát triển. Nhưng WSL2 không có hỗ trợ cho các thiết bị GPU vì hiện tại Windows không thể gán hoặc chia sẻ GPU hệ thống với hệ thống khách Linux.

Do đó, nếu bạn muốn chạy khối lượng công việc học máy trên GPU của mình, bạn sẽ phải sử dụng Windows 10 thay vì WSL2. Điều này đã dẫn đến sự gia tăng nhu cầu bởi các nhà phát triển muốn có hiệu suất cao cho khối lượng công việc tính toán nặng sử dụng sức mạnh GPU.

DirectX đến với WSL2

Để đáp ứng nhu cầu này, Microsoft có kế hoạch hỗ trợ tăng tốc phần cứng GPU trong Linux VM chạy trên WSL2. Hiện tại, hỗ trợ GPU chủ yếu nhằm vào khối lượng công việc tính toán/ML sử dụng D3D12, NVIDIA CUBA và API DirectML trên Windows 10.

Giải pháp chưa được công bố cho các ứng dụng Linux sử dụng DirectX trong WSL2. Tuy nhiên, Microsoft cũng đã tiết lộ rằng họ sẽ cung cấp các ứng dụng Linux với giao diện đồ họa thay vì dòng lệnh.

Để thêm hỗ trợ cho GPU trong WSL2, Microsoft đang sử dụng công nghệ WDDM GPU Paravirtualization (GPU-PV) tích hợp công nghệ ảo hóa GPU vào WDDM (Windows Display Driver Model). GPU-PV cũng được sử dụng trong Trình bảo vệ ứng dụng của Bộ bảo vệ Windows, Hộp cát Windows hoặc trình giả lập Hololens 2.

Dxgkrnl: Trình điều khiển hạt nhân mới cho Linux

WDDM v2.5 trở lên có hỗ trợ riêng cho ảo hóa GPU, nhưng nó hiện chỉ khả dụng cho khách Windows. Do đó, Microsoft có kế hoạch phát triển một trình điều khiển nhân Linux mới ‘Dxgkrnl’ để sử dụng nó cho các khách hàng Linux và tận dụng giao thức GPU-PV đưa GPU vào chế độ người dùng Linux.

Trình điều khiển dxgkrnl
Kiến trúc trình điều khiển dxgkrnl

Dxgkrnl là trình điều khiển GPU ảo sẽ nằm trong nhân Linux của phiên bản WSL và kết nối với các máy chủ Windows để giao tiếp với GPU vật lý. Nó cho thấy thiết bị GPU para-virtualized/dev/dxg ở chế độ người dùng của phiên bản Linux chạy trong WSL.

/dev/dxg trưng bày một tập hợp các lệnh gọi hệ thống IOCTL (điều khiển đầu vào/đầu ra) của nhân Linux mô phỏng lớp dịch vụ nhân WDDM D3DKMT gốc trên Windows 10. Nếu hệ thống của bạn có một hoặc nhiều GPU, khách Linux sẽ phát hiện tất cả các GPU và sử dụng tài nguyên một cách linh hoạt mà không phải cạnh tranh với các ứng dụng Windows.

Các ứng dụng Linux được đối xử bình đẳng với các ứng dụng Windows để chia sẻ cùng một GPU. Hệ thống Windows chủ không đặt bất kỳ hạn chế hoặc phân vùng tài nguyên nào giữa Linux và Windows.

Nó có mang lại lợi ích cho người dùng Linux bản địa không?

Hiện tại, không có ứng dụng Linux nào sử dụng DX12 vì nó không phải là mã nguồn mở và do đó không có hỗ trợ riêng cho Linux. Tuy nhiên, Linux có thể chạy một số ứng dụng Windows sử dụng DX12, nhờ vào WINE, Vulkan và DXVK.

Nói về DX12 mới, người dùng máy tính để bàn Linux không liên quan gì đến ‘DirectX trên Linux.’ Điều này là do trình điều khiển Dxgkrnl chỉ hoạt động như một đường dẫn để gửi dữ liệu giữa không gian người dùng Linux khách đang chạy trong WSL2 và hệ thống Windows chủ.

Vì vậy, nếu bạn phát triển hoặc sử dụng một ứng dụng Linux với DX12, bạn phải sử dụng nó trong một máy ảo trên Windows 10 để làm cho nó hoạt động.

Nhưng nếu bạn là một người rất hâm mộ WSL2 và không muốn khởi động kép Linux cùng với Windows, bạn sẽ sớm có thể sử dụng GPU và thực hiện công việc ML chuyên sâu của mình trên Linux VM chạy trên Windows 10. Microsoft cũng đã đẩy bản thảo mã trình điều khiển của nó, hiện đang được các nhà phát triển Linux xem xét.

This post is also available in: Spanish German Tiếng Việt Italian Indonesian

LEAVE A REPLY

Please enter your comment!
Please enter your name here