Tentang kemunculan dukungan CUDA di WSL 2

Microsoft, menanggapi berbagai permintaan pengguna, disajikan pada konferensi Build pada Mei 2020 fitur baru Windows Subsystem untuk Linux 2 (WSL 2) - dukungan untuk akselerator video. Ini akan memungkinkan Anda untuk menjalankan aplikasi komputasi ad-hoc di WSL 2. Dukungan GPU akan membuka jalan bagi alat profesional dan membantu menyelesaikan tugas di WSL 2 yang saat ini hanya mungkin di Linux. Sekarang tugas-tugas seperti itu dapat diselesaikan di Windows, menggunakan kemampuan GPU.



Sangatlah penting di sini bahwa WSL hadir dengan dukungan untuk arsitektur komputasi paralel paralel perangkat keras dan perangkat lunak NVIDIA CUDA .



Materi yang kami terbitkan telah diterjemahkan oleh para ahli NVIDIA. Di sini kita akan berbicara tentang apa yang diharapkan dari CUDA di Pratinjau Publik WSL 2.





Menjalankan kerangka kerja AI yang digunakan di Linux dalam wadah WSL 2



Apa itu WSL?



WSL adalah fitur Windows 10 yang memungkinkan Anda untuk menggunakan alat baris perintah Linux secara langsung di Windows tanpa harus berurusan dengan kompleksitas penerapan konfigurasi boot ganda. WSL adalah lingkungan kemas yang terintegrasi dengan Microsoft Windows. Ini memungkinkan Anda untuk menjalankan aplikasi Linux dengan aplikasi Windows tradisional dan dengan aplikasi modern yang didistribusikan melalui Microsoft Store.



WSL terutama merupakan alat pengembang. Jika Anda mengerjakan beberapa proyek dalam wadah Linux, itu artinya Anda dapat melakukan hal yang sama secara lokal, pada komputer Windows, menggunakan alat Linux yang sudah dikenal. Biasanya, untuk menjalankan aplikasi seperti itu di Windows, Anda perlu menghabiskan banyak waktu mengkonfigurasi sistem, Anda memerlukan beberapa kerangka kerja pihak ketiga, perpustakaan. Sekarang, dengan rilis WSL 2, semuanya telah berubah. WSL 2 membawa dukungan penuh untuk kernel Linux ke dunia Windows.



Teknologi WSL 2 dan GPU Paravirtualization (GPU-PV) telah memungkinkan Microsoft untuk mengambil dukungan Linux pada Windows ke tingkat berikutnya, sehingga memungkinkan untuk menjalankan beban kerja komputasi GPU. Di bawah ini kita akan berbicara lebih banyak tentang bagaimana penggunaan GPU di WSL 2 terlihat.



Jika Anda tertarik dalam topik dukungan untuk akselerator video dalam WSL 2, lihatlah ini bahan dan ini repositori.



CUDA di WSL



Untuk memanfaatkan fitur GPU di WSL 2, Anda harus memiliki driver video yang mendukung Microsoft WDDM di komputer Anda . Driver tersebut dibuat oleh produsen kartu video seperti NVIDIA.



Teknologi CUDA memungkinkan pengembangan program akselerator video NVIDIA. Teknologi ini didukung dalam WDDM, di Windows, selama bertahun-tahun. Wadah WSL 2 baru dari Microsoft menyediakan kapabilitas komputasi berakselerasi GPU yang dapat dimanfaatkan teknologi CUDA, yang memungkinkan program berbasis CUDA berjalan di lingkungan WSL. Untuk detail lebih lanjut, lihat CUDA di Panduan Pengguna WSL.



Dukungan CUDA di WSL termasuk dalam driver NVIDIA untuk WDDM 2.9. Driver ini cukup mudah untuk diinstal pada Windows. Driver mode pengguna WSL CUDA (libcuda.so) secara otomatis tersedia di dalam wadah, dan loader dapat mendeteksinya.



Tim pengembangan driver NVIDIA telah menambahkan dukungan untuk WDDM dan GPU-PV ke driver CUDA. Ini dilakukan agar driver ini dapat bekerja di lingkungan Linux yang berjalan di Windows. Driver ini masih dalam status Pratinjau, rilis mereka akan dilakukan hanya ketika rilis WSL resmi dengan dukungan GPU berlangsung. Detail tentang rilis driver dapat ditemukan di sini .



Gambar berikut menunjukkan diagram tentang cara menghubungkan driver CUDA ke WDDM di dalam tamu Linux.





Driver WDDM mode pengguna yang diaktifkan CUDA berjalan pada sistem tamu Linux



Misalkan Anda adalah pengembang yang menginstal distribusi WSL pada Windows build terbaru dari Fast Ring (build 20149 atau lebih baru) Microsoft Windows Insider Program (WIP). Jika Anda telah beralih ke WSL 2 dan Anda memiliki GPU NVIDIA, Anda dapat mencoba driver dan menjalankan kode GPU Anda di WSL 2. Yang harus Anda lakukan adalah menginstal driver pada host Windows dan membuka wadah WSL. Di sini, tanpa upaya tambahan, Anda akan memiliki kesempatan untuk bekerja dengan aplikasi yang menggunakan CUDA. Gambar berikut menunjukkan bagaimana aplikasi TensorFlow menggunakan kemampuan CUDA berjalan dalam wadah WSL 2.





Wadah TensorFlow berjalan di WSL 2



Fakta bahwa teknologi CUDA sekarang tersedia di WSL memungkinkan untuk menjalankan aplikasi di WSL yang sebelumnya hanya bisa berjalan di lingkungan Linux biasa.



NVIDIA masih aktif mengerjakan proyek ini dan membuat perbaikan untuk itu. Antara lain, kami sedang berupaya menambahkan API ke WDDM yang sebelumnya dirancang khusus untuk Linux. Ini akan mengarah pada fakta bahwa di WSL, tanpa upaya tambahan dari pihak pengguna, semakin banyak aplikasi dapat berjalan.



Masalah lain yang menarik bagi kami adalah kinerja. Seperti disebutkan, dukungan GPU di WSL 2 memperlakukan teknologi GPU-PV dengan serius. Ini dapat mempengaruhi kecepatan melakukan tugas-tugas kecil pada GPU, dalam situasi di mana pemipaan tidak akan digunakan. Saat ini kami sedang bekerja untuk mengurangi kemungkinan efek tersebut.



NVML



Teknologi NVML tidak termasuk dalam paket driver asli, kami mencoba untuk memperbaikinya, berencana untuk menambahkan dukungan untuk NVML dan dukungan untuk perpustakaan lain di WSL.



Kami mulai dengan driver CUDA utama, yang akan memungkinkan pengguna untuk menjalankan sebagian besar aplikasi CUDA yang ada bahkan pada tahap awal dukungan CUDA di WSL. Tetapi ternyata, beberapa kontainer dan aplikasi menggunakan NVML untuk mendapatkan informasi GPU bahkan sebelum memuat CUDA. Inilah sebabnya mengapa menambahkan dukungan NVML ke WSL adalah salah satu prioritas utama kami. Sangat mungkin bahwa segera kami akan dapat membagikan kabar baik mengenai solusi masalah ini.



Kontainer GPU di WSL



Selain dukungan WSL 2 untuk DirectX dan CUDA, NVIDIA bekerja untuk menambahkan dukungan untuk NVIDIA Container Toolkit (sebelumnya disebut nvidia-docker2) ke WSL 2. Aplikasi GPU kemas yang dibangun oleh Ilmuwan Data untuk dijalankan di lingkungan Linux lokal atau cloud sekarang dapat, tanpa modifikasi apa pun, berjalan di WSL 2 pada komputer Windows.



Beberapa paket WSL khusus tidak diperlukan untuk ini. Pustaka runtime NVIDIA (libnvidia-container) dapat secara dinamis mendeteksi libdxcore dan menggunakannya saat kode dijalankan di lingkungan WSL 2 yang dipercepat GPU. Ini terjadi secara otomatis setelah menginstal paket Docker dan NVIDIA Container Toolkit, seperti di Linux. Ini memungkinkan Anda untuk menjalankan wadah menggunakan fitur GPU di WSL 2 tanpa usaha ekstra.



Kami sangat menyarankan mereka yang ingin menggunakan opsi ini --gpusmenginstal versi terbaru alat Docker (19.03 atau lebih baru). Untuk mengaktifkan dukungan WSL 2, ikuti instruksi untuk distribusi Linux Anda dan instal versi terbaru yang tersedia nvidia-container-toolkit.



Bagaimana itu bekerja? Semua tugas khusus untuk WSL 2 diselesaikan menggunakan perpustakaan libnvidia-container . Sekarang perpustakaan ini dapat, pada saat runtime, mendeteksi keberadaan libdxcore.so dan menggunakan perpustakaan ini untuk mendeteksi semua GPU yang terlihat oleh antarmuka ini.



Jika GPU ini perlu digunakan dalam wadah, maka, menggunakan libdxcore.so, lokasi driver diakses, ke folder yang berisi semua pustaka driver untuk sistem host Windows dan WSL 2. Pustaka libnvidia-container.so bertanggung jawab untuk mengonfigurasi wadah. sedemikian rupa sehingga memungkinkan untuk mengakses toko driver dengan benar. Perpustakaan yang sama bertanggung jawab untuk mengatur perpustakaan inti yang didukung oleh WSL 2. Diagram ini ditunjukkan pada gambar berikut.





Skema penemuan toko pengemudi dan pemetaan kontainer yang digunakan oleh libnvidia-container.so di WSL 2



Ini juga berbeda dari logika yang digunakan di luar WSL. Proses ini sepenuhnya diabstraksi dengan libnvidia-container.so dan harus setransparan kepada pengguna akhir. Salah satu batasan dari versi sebelumnya ini adalah ketidakmungkinan memilih GPU di lingkungan yang memiliki banyak GPU. Semua GPU selalu terlihat dalam wadah.



Setiap wadah NVIDIA Linux yang sudah Anda kenal dapat dijalankan dalam wadah WSL. NVIDIA mendukung alat dan alur kerja spesifik Linux yang paling menarik yang digunakan oleh para profesional. Unduh wadah yang Anda minati dari NVIDIA NGC dan cobalah.



Sekarang kami akan menunjukkan kepada Anda bagaimana menjalankan kontainer TensorFlow dan N-body di WSL 2, yang dirancang untuk menggunakan GPU NVIDIA untuk mempercepat perhitungan.



Luncurkan wadah N-body 



Instal Docker menggunakan skrip instalasi:



user@PCName:/mnt/c$ curl https://get.docker.com | sh


Instal NVIDIA Container Toolkit. Dukungan WSL 2 tersedia mulai dari nvidia-docker2 v2.3 dan dari libnvidia-container 1.2.0-rc.1 runtime library.



Mari kita mengkonfigurasi repositori stabledan experimentaldan kunci GPG. Perubahan pada kode runtime yang dirancang untuk mendukung WSL 2 tersedia di repositori eksperimental.



user@PCName:/mnt/c$ distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

user@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -

user@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

user@PCName:/mnt/c$ curl -s -L https://nvidia.github.io/libnvidia-container/experimental/$distribution/libnvidia-container-experimental.list | sudo tee /etc/apt/sources.list.d/libnvidia-container-experimental.list


Instal paket runtime NVIDIA dan dependensinya:



user@PCName:/mnt/c$ sudo apt-get update
user@PCName:/mnt/c$ sudo apt-get install -y nvidia-docker2


Buka wadah WSL dan jalankan daemon Docker di dalamnya. Jika semuanya dilakukan dengan benar, maka Anda dapat melihat pesan layanan dockerd.



user@PCName:/mnt/c$ sudo dockerd




Meluncurkan daemon Docker



Di jendela WSL lain, muat dan jalankan wadah simulasi N-body. Penting bagi pengguna yang melakukan tugas ini untuk memiliki otoritas yang cukup untuk memuat wadah. Perintah berikut mungkin perlu dijalankan menggunakan sudo. Dalam output Anda dapat melihat informasi tentang GPU.



user@PCName:/mnt/c$ docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark




Menjalankan wadah N-body



Menjalankan wadah TensorFlow



Mari kita coba di Docker, di lingkungan WSL 2, wadah populer lainnya - TensorFlow.



Unduh gambar TensorFlow Docker. Untuk menghindari masalah saat terhubung ke Docker, jalankan perintah berikut dalam mode sudo:



user@PCName:/mnt/c$ docker pull tensorflow/tensorflow:latest-gpu-py3


Simpan versi kode yang sedikit dimodifikasi dari pelajaran 15 dari tutorial TensorFlow tentang menggunakan GPU ke disk Chost. Disk ini, secara default, dipasang di wadah WSL 2 sebagai /mnt/c.



user@PCName:/mnt/c$ vi ./matmul.py
import sys
import numpy as np
import tensorflow as tf
from datetime import datetime

device_name = sys.argv[1]  # Choose device from cmd line. Options: gpu or cpu
shape = (int(sys.argv[2]), int(sys.argv[2]))
if device_name == "gpu":
    device_name = "/gpu:0"
else:
    device_name = "/cpu:0"

tf.compat.v1.disable_eager_execution()
with tf.device(device_name):
    random_matrix = tf.random.uniform(shape=shape, minval=0, maxval=1)
    dot_operation = tf.matmul(random_matrix, tf.transpose(random_matrix))
    sum_operation = tf.reduce_sum(dot_operation)

startTime = datetime.now()
with tf.compat.v1.Session(config=tf.compat.v1.ConfigProto(log_device_placement=True)) as session:
        result = session.run(sum_operation)
        print(result)

#  
print("Shape:", shape, "Device:", device_name)
print("Time taken:", datetime.now() - startTime)


Berikut ini menunjukkan hasil menjalankan skrip ini berjalan dari disk yang dipasang di wadah C. Script dieksekusi, pertama, menggunakan GPU, dan kemudian menggunakan CPU. Untuk kenyamanan Anda, output yang ditampilkan di sini telah berkurang.



user@PCName:/mnt/c$ docker run --runtime=nvidia --rm -ti -v "${PWD}:/mnt/c" tensorflow/tensorflow:latest-gpu-jupyter python /mnt/c/matmul.py gpu 20000




Hasil dari mengeksekusi skrip matmul.py



Ketika menggunakan GPU dalam wadah WSL 2, peningkatan yang signifikan dari eksekusi kode diamati dibandingkan dengan pelaksanaannya pada CPU.



Mari kita lakukan satu percobaan lagi yang dirancang untuk mempelajari kinerja komputasi GPU. Ini adalah kode dari manual Notebook Jupyter. Setelah memulai wadah, Anda akan melihat tautan ke server Notebook Jupyter.



user@PCName:/mnt/c$ docker run -it --gpus all -p 8888:8888 tensorflow/tensorflow:latest-gpu-py3-jupyter




Menjalankan Jupyter Notebook



Anda sekarang harus dapat menjalankan demo di lingkungan Notebook Jupyter. Harap dicatat bahwa untuk terhubung ke Jupyter Notebook menggunakan browser Microsoft Edge, Anda harus menggunakan, bukan 127.0.0.1localhost.



Bukatensorflow-tutorialsdan luncurkan notepadclassification.ipynb.



Untuk melihat hasil percepatan perhitungan menggunakan GPU, buka menuCell, pilihRun Alldan lihat log di WSL 2-container Jupyter Notebook.





Jupyter Notebook Journal



Demo ini, dan beberapa lainnya dalam wadah ini, memungkinkan Anda untuk melihat masalah dengan lapisan virtualisasi terkait dengan beban tambahan yang terlalu tinggi pada sistem saat memecahkan masalah kecil. Kami sudah membicarakan hal ini di atas. Karena kami menjalankan model tutorial yang sangat kecil di sini, waktu eksekusi pada GPU kurang dari waktu yang diperlukan untuk menyelesaikan masalah sinkronisasi. Saat menyelesaikan tugas "mainan" seperti itu di WSL 2, CPU bisa lebih efisien daripada GPU. Kami menangani masalah ini dalam upaya membatasi manifestasinya hanya pada beban kerja sangat kecil yang tidak menerapkan perpipaan.



Gambaran umum WSL



Untuk memahami bagaimana dukungan GPU ditambahkan di WSL 2, kita sekarang berbicara tentang bagaimana rasanya menjalankan Linux di Windows dan bagaimana container melihat perangkat keras.



Microsoft memperkenalkan teknologi WSL di Build pada tahun 2016. Teknologi ini dengan cepat menemukan penggunaan luas dan menjadi populer di kalangan pengembang Linux yang perlu menjalankan aplikasi Windows seperti Office bersama dengan alat pengembangan Linux dan program terkait.



Sistem WSL 1 memungkinkan binari Linux yang tidak dimodifikasi untuk dijalankan. Namun, ia menggunakan lapisan emulasi kernel Linux yang diimplementasikan sebagai subsistem kernel NT. Subsistem ini menangani panggilan dari aplikasi Linux, mengarahkan mereka ke mekanisme Windows 10 yang sesuai.



WSL 1 adalah alat yang berguna, tetapi itu tidak kompatibel dengan semua aplikasi Linux karena itu harus benar-benar meniru setiap panggilan sistem Linux. Selain itu, operasi sistem file lambat, yang menyebabkan kinerja beberapa aplikasi yang sangat rendah.



Dengan pemikiran ini, Microsoft memutuskan untuk pergi ke arah lain dan merilis WSL 2, versi baru WSL. Kontainer WSL 2 menjalankan distribusi Linux penuh dalam lingkungan yang tervirtualisasi, tetapi masih mengambil keuntungan penuh dari sistem kontainerisasi Windows 10 yang baru.



Sementara WSL 2 menggunakan layanan Windows 10 Hyper-V, itu bukan mesin virtual tradisional, melainkan mesin pembantu virtualisasi ringan. Mekanisme ini bertanggung jawab untuk mengelola memori virtual yang terkait dengan memori fisik, memungkinkan wadah WSL 2 mengalokasikan memori secara dinamis dengan mengakses sistem host Windows.



Di antara tujuan utama pembuatan WSL 2, dimungkinkan untuk mencatat peningkatan kinerja bekerja dengan sistem file dan memastikan kompatibilitas dengan semua panggilan sistem. Selain itu, WSL 2 diciptakan sebagai upaya untuk meningkatkan tingkat integrasi WSL dan Windows. Ini memungkinkan Anda bekerja dengan nyaman dengan sistem Linux yang berjalan dalam wadah menggunakan alat baris perintah Windows. Ini juga meningkatkan kegunaan sistem file host, yang secara otomatis dipasang di direktori yang dipilih dari sistem file kontainer.



WSL 2 diperkenalkan dalam Program Windows Insider sebagai fitur Pratinjau dan dirilis dalam pembaruan terbaru untuk Windows 10, dalam versi 2004.



WSL 2, versi terbaru Windows, bahkan memiliki lebih banyak perangkat tambahan yang memengaruhi segalanya mulai dari tumpukan jaringan hingga mesin penyimpanan VHD dasar. Deskripsi semua fitur baru WSL 2 berada di luar cakupan artikel ini. Anda dapat mempelajari lebih lanjut tentang mereka di halaman ini , yang membandingkan WSL 2 dan WSL 1.



Inti Linux WSL 2



Kernel Linux yang digunakan dalam WSL 2 dikompilasi oleh Microsoft dari cabang stabil terbaru, menggunakan kode sumber yang tersedia di kernel.org. Kernel ini telah disetel khusus untuk WSL 2, dioptimalkan untuk ukuran dan kinerja untuk menjalankan Linux pada Windows. Kernel didukung melalui mekanisme Pembaruan Windows. Ini berarti bahwa pengguna tidak perlu khawatir mengunduh pembaruan keamanan terbaru dan perbaikan kernel. Semua ini dilakukan secara otomatis.



Microsoft mendukung beberapa distribusi Linux di WSL. Perusahaan, mengikuti aturan komunitas open source, diterbitkan dalam WSL2-Linux-Kernel GitHub repositori kode sumber untuk kernel WSL 2 dengan modifikasi yang diperlukan untuk integrasi dengan Windows 10. 



Dukungan GPU di WSL



Pengembang Microsoft telah menambahkan dukungan untuk GPU nyata menggunakan teknologi GPU-PV dalam WSL 2-container. Di sini, inti sistem operasi grafis (dxgkrnl) marshals panggilan dari komponen mode pengguna yang berjalan di mesin virtual tamu ke driver mode kernel di host.



Microsoft telah mengembangkan teknologi ini sebagai kemampuan WDDM, dan sejak awal sudah ada beberapa rilis Windows. Pekerjaan ini dilakukan dengan melibatkan vendor perangkat keras independen (Independent Hardware Vendor, IHV). Driver grafis NVIDIA telah mendukung GPU-PV sejak awal teknologi ini dalam versi pratinjau produk yang tersedia di Program Windows Insider. Semua GPU NVIDIA yang didukung saat ini dapat diakses oleh OS Windows yang berjalan dalam mode tamu di mesin virtual yang menjalankan Hyper-V.



Untuk menggunakan kemampuan GPU-PV di WSL 2, Microsoft harus membuat dasar kerangka grafis untuk sistem tamu Linux: WDDM dengan dukungan untuk protokol GPU-PV. Driver Microsoft baru ada di belakang dxgkrnl, sistem yang bertanggung jawab untuk mendukung WDDM di Linux. Kode driver dapat ditemukan di repositori WSL2-Linux-Kernel.



Dxgkrnl diharapkan dapat memberikan dukungan akselerasi GPU dalam wadah WSL 2 di WDDM 2.9. Microsoft mengatakan bahwa dxgkrnl adalah driver GPU Linux berdasarkan protokol GPU-PV dan itu tidak ada hubungannya dengan driver Windows yang memiliki nama serupa.



Saat ini Anda dapat mengunduh versi pratinjau driver NVIDIA WDDM 2.9. Dalam beberapa bulan ke depan, driver ini akan didistribusikan melalui Pembaruan Windows di versi WIP Windows, yang membuat unduhan manual dan instalasi driver tidak diperlukan.



Memahami GPU-PV



Driver dxgkrnl membuat perangkat baru / dev / dxg tersedia dalam mode pengguna di Linux guest. Lapisan layanan kernel D3DKMT, yang tersedia di Windows, juga diangkut, sebagai bagian dari pustaka dxcore, ke Linux. Ini berinteraksi dengan dxgkrnl menggunakan satu set panggilan IOCTL pribadi.



Versi tamu Linux dari dxgkrnl terhubung ke kernel dxg pada host Windows menggunakan beberapa saluran bus VM. Kernel dxg pada host memproses apa yang berasal dari proses Linux, sama seperti apa yang berasal dari aplikasi Windows biasa menggunakan WDDM. Yaitu, kernel dxg mengirimkan apa yang diterimanya ke KMD (Kernel Mode Driver, driver mode kernel yang unik untuk setiap HIV). Driver mode kernel menyiapkan apa yang diterimanya untuk dikirim ke akselerator grafis perangkat keras. Gambar berikut menunjukkan diagram yang disederhanakan dari interaksi antara perangkat Linux / dev / dxg dan KMD.





Diagram yang disederhanakan tentang bagaimana komponen-komponen host Windows memungkinkan perangkat dxg bekerja dalam tamu Linux.



Ketika datang untuk memberikan perilaku ini pada tamu Windows, driver NVIDIA telah mendukung GPU-PV di Windows 10 untuk beberapa waktu. GPU NVIDIA dapat digunakan untuk mempercepat komputasi dan output grafis di semua aplikasi Windows 10 menggunakan lapisan virtualisasi Microsoft. Penggunaan GPU-PV juga memungkinkan bekerja dengan vGPU. Berikut ini beberapa contoh aplikasi serupa:





Begini tampilannya menjalankan aplikasi DirectX dalam wadah Windows Sandbox menggunakan akselerator video NVIDIA GeForce GTX 1070.





Akselerasi grafis dalam wadah Windows Sandbox oleh NVIDIA GeForce GTX 1070



Dukungan mode pengguna



Untuk menambahkan dukungan untuk rendering grafik ke WSL, tim pengembangan yang sesuai dari Microsoft juga memindahkan komponen mode pengguna dxcore ke Linux.



Pustaka dxcore menyediakan API yang memungkinkan Anda mendapatkan informasi tentang kartu grafis kompatibel WDDM yang tersedia di sistem Anda. Perpustakaan ini disusun sebagai pengganti tingkat rendah lintas-platform untuk alat untuk bekerja dengan adaptor DXGI di Windows dan Linux. Perpustakaan juga mengabstraksi akses ke layanan dxgkrnl (panggilan IOCTL di Linux dan panggilan GDI di Windows) menggunakan lapisan D3DKMT API, yang digunakan oleh CUDA dan komponen mode pengguna lainnya yang mengandalkan dukungan WSL WDDM.



Menurut Microsoft, pustaka dxcore (libdxcore.so) akan tersedia di Windows dan Linux. NVIDIA berencana untuk menambahkan dukungan DirectX 12 dan API CUDA ke driver. Pengaya ini menargetkan kemampuan WSL baru yang tersedia dengan WDDM 2.9. Kedua perpustakaan yang mewakili API akan terhubung ke dxcore sehingga mereka dapat memberikan instruksi dxg tentang cara menyusun permintaan KMD mereka pada sistem host.



Coba fitur WSL 2 baru



Ingin menggunakan PC Windows Anda untuk pembelajaran mesin nyata dan tugas kecerdasan buatan sambil tetap menikmati kenyamanan lingkungan Linux? Jika demikian, maka dukungan CUDA di WSL memberi Anda peluang besar untuk melakukan ini. Lingkungan WSL adalah tempat wadah Docker CUDA terbukti menjadi lingkungan komputasi yang paling populer di kalangan ilmuwan data.





Di sini Anda dapat mempelajari lebih lanjut tentang penggunaan teknologi CUDA di WSL. Di sini, di forum CUDA dan WSL, Anda dapat membagikan kesan, pengamatan, dan ide Anda tentang teknologi ini dengan kami.



Sudahkah Anda mencoba CUDA di WSL 2?






All Articles