NVIDIA Bertransisi Ke Driver Kernel GPU Linux Open-Source Resmi

Harinya akhirnya tiba: NVIDIA PUBLIKASIKAN MODUL KERNEL GPU LINUX MEREKA SEBAGAI SUMBER TERBUKA! Untuk banyak kegembiraan dan tanda zaman, embargo baru saja berakhir pada tonggak sejarah yang sangat menarik ini yang banyak dari kita harapkan untuk dilihat selama bertahun-tahun. Selama dua dekade terakhir NVIDIA telah menawarkan dukungan driver Linux yang hebat dengan tumpukan driver milik mereka, tetapi dengan keberhasilan upaya driver open-source AMD yang berlangsung selama lebih dari satu dekade, banyak yang meminta NVIDIA untuk membuka driver mereka. . Perangkat lunak ruang pengguna mereka tetap sumber tertutup tetapi mulai hari ini mereka telah secara resmi membuka modul kernel GPU Linux mereka dan akan mempertahankannya terus maju. Berikut ini adalah inti dari keputusan open-source penting ini di NVIDIA.

Banyak yang bertanya-tanya dalam beberapa tahun terakhir, jenis permainan open-source NVIDIA seperti apa yang sedang dikerjakan perusahaan… Kembali ke akhir tahun 2019 telah menjadi sinyal dari semacam upaya driver open-source dan berbagai gemuruh terus berlanjut sejak saat itu. Bulan lalu saya juga menunjukkan driver kernel open-source baru yang muncul sebagai bagian dari sumber NVIDIA Tegra. Nah, sekarang embargo baru saja kedaluwarsa dan tutupnya dapat diangkat – NVIDIA menyediakan solusi driver kernel open-source sepenuhnya untuk penawaran grafis mereka. Ini tidak terbatas hanya pada Tegra atau lebih tetapi tidak hanya mencakup grafik desktop mereka tetapi sudah siap produksi untuk penggunaan GPU pusat data.

Saya sangat bersemangat sejak diberitahu tentang rencana driver kernel open-source NVIDIA. Untuk mencakup semua aspek penting, di bawah ini saya telah memaparkan semua bit kunci untuk dengan mudah mendapatkan detail paling menarik dari upaya driver kernel open-source NVIDIA ini.

Apa yang dicakup oleh inisiatif open-source NVIDIA ini – NVIDIA `s modul kernel terbuka sudah dianggap “siap produksi, ikut serta” untuk GPU pusat data. Untuk GeForce dan GPU workstation, kode modul kernel terbuka dianggap sebagai “kualitas alfa” tetapi akan ditingkatkan dengan rilis mendatang. NVIDIA telah menghentikan pendekatan modul kernel monolitik untuk dukungan GPU pusat data mereka untuk fokus pada solusi driver kernel terbuka ini (dan modul kernel berpemilik mereka yang ada menggunakan GSP). Hanya Turing dan GPU yang lebih baru yang akan didukung oleh driver kernel sumber terbuka ini. GPU Pra-Turing dibiarkan menggunakan driver kernel berpemilik yang ada atau driver DRM Nouveau dalam hal ini. Turing dan yang lebih baru adalah persyaratan yang sulit karena bergantung pada GPU System Processor (GSP).

Prosesor Sistem GPU dan arsitektur driver yang muncul belakangan ini adalah untuk memindahkan beberapa tugas inisialisasi/manajemen GPU ke GPU daripada dijalankan pada CPU. GSP adalah firmware biner saja yang dimuat saat run-time. Driver kernel sumber terbuka secara eksplisit bergantung pada prosesor grafis yang didukung GSP. GSP adalah blok berbasis RISC-V yang menggantikan mikrokontroler Falcon sebelumnya pada GPU NVIDIA sebelumnya.

Komponen modul kernel terdiri dari driver kernel NVIDIA, integrasi NVIDIA-DRM, driver NVIDIA-Modeset untuk pengaturan tampilan/mode , NVIDIA-UVM untuk Unified Video Memory.

Ini adalah kode kernel open-source asli – MIT/GPL berlisensi ganda! NVIDIA telah mengindikasikan bahwa Canonical / Ubuntu, Red Hat, dan SUSE semuanya bersiap untuk mengemas dan menggunakan modul kernel terbuka. Dimulai dengan cabang R515 baru dari driver NVIDIA Linux, penginstal driver akan memiliki opsi bagi pengguna apakah mereka ingin menggunakan modul kernel berpemilik yang ada atau beralih ke kode driver terbuka. Kode driver kernel terbuka juga akan tersedia di GitHub. NVIDIA juga akan menerima kontribusi komunitas untuk kode di mana ada kelebihan atau bug yang ditangani, tetapi memerlukan CLA untuk menandatangani kode ke NVIDIA. Pustaka ruang pengguna NVIDIA dan driver OpenGL / Vulkan / OpenCL / CUDA tetap sumber tertutup — pengumuman hari ini adalah tentang semua kegembiraan di ruang kernel.

Ambisi utama untuk driver kernel Linux NVIDIA – Tidak akan pergi ke hulu meskipun jangka pendek / dalam bentuk saat ini. Pada titik ini API/ABI tidak distabilkan dan kode driver kernel terbuka akan diikat ke rilis driver tertentu. NVIDIA pada akhirnya bekerja untuk menstabilkan API/ABI serta antarmuka firmware GSP. Setelah mereka menyelesaikan semua teknis ini, driver (atau apa pun bentuknya di masa mendatang) mungkin akan terlihat di-upstream ke dalam kernel. Per praktik upstreaming kernel Linux, juga perlu ada dukungan ruang pengguna open-source yang memanfaatkan driver kernel ini.

Kode kernel open-source ini saat ini dibagi menjadi komponen OS-agnostik dan lapisan antarmuka kernel. Ini berasal dari driver berpemilik NVIDIA di Linux yang sebagian besar merupakan kode yang dibagikan di Windows / Linux / FreeBSD / Solaris. Agar dapat di-upstream di kernel Linux, kemungkinan perlu lebih difaktorkan ulang untuk memenuhi Linux, seperti halnya DAL/DC AMD yang awalnya mengalami kesulitan upstreaming karena banyaknya abstractions.

Nouveau (komunitas open-source) prospek seputar driver kernel baru ini – Akhirnya, ya, Nouveau dapat menggunakan kode yang dibuka hari ini. Bertanya tentang hal itu kepada NVIDIA, mereka mengatakan bahwa mudah-mudahan Nouveau akan dapat menggunakan firmware GSP / modul kernel terbuka tetapi pertama-tama kemungkinan akan membutuhkan waktu untuk menstabilkan antarmuka firmware GSP dan faktor lainnya. Jadi di masa depan ketika driver kernel ini dalam kondisi yang lebih baik, kode Mesa Nouveau mungkin akan berakhir dengan antarmuka driver kernel ini sebagai alternatif untuk driver kernel Nouveau DRM yang dalam bentuk yang agak kasar untuk perangkat keras yang lebih baru daripada GTX 600/700 seri Kepler. Plus agar kode kernel ini dapat di-upstream, itu akan membutuhkan ruang pengguna yang terbuka — yaitu kode Nouveau Mesa dari NVIDIA yang kemudian memutuskan untuk membuka perpustakaan ruang pengguna mereka.

Motivasi NVIDIA untuk akhirnya menjadi lebih open-source – Ini tampaknya merupakan upaya untuk meningkatkan integrasi dan dukungan Linux mereka. Pengumuman NVIDIA yang keluar hari ini mengatakan “Rilis ini merupakan langkah besar dalam meningkatkan pengalaman menggunakan GPU NVIDIA di Linux, memungkinkan integrasi yang lebih erat dengan OS serta memberdayakan pengembang untuk men-debug, mengintegrasikan, dan berkontribusi kembali.” Tampaknya juga penggunaan perusahaan / pusat data memainkan peran dalam strategi ini dengan juga membicarakan komputasi rahasia dan bagaimana dukungan GPU pusat data sudah dianggap sebagai kualitas “produksi” di depan workstation dan dukungan GPU GeForce konsumen. Pengumuman NVIDIA hari ini juga akan membahas manfaat pengembang untuk driver kernel open-source dengan penelusuran/debugging yang lebih baik dan integrasi yang lebih baik di sekitar versi kustom dari kernel Linux.

Perbedaan fitur dengan driver kernel baru ini – Menjadi driver kernel open-source akan akhirnya menghasilkan beberapa manfaat — sekarang driver terbuka ini sudah memiliki dukungan DMA-BUF tidak seperti driver berpemilik mereka. Tapi sampai kode ini matang, mungkin ada perbedaan kinerja dan area lain untuk perbaikan dengan perangkat keras konsumen / workstation dari dukungan kualitas “alpha”. Tetapi pada akhirnya NVIDIA mengatakan mereka akan memiliki paritas fitur dan kinerja dengan kode kernel berpemilik.

Saat ini ini adalah perubahan khusus Linux – Setidaknya pada cabang R515, NVIDIA hanya menyediakan dukungan driver kernel open-source untuk Linux sistem. Saya bertanya tentang dukungan FreeBSD mengingat dukungan BSD NVIDIA yang sudah lama ada dengan driver berpemilik mereka dan apakah kode open-source ini cukup portabel untuk bekerja pada salah satu BSD. Saya hanya diberitahu bahwa untuk R515, ini hanya untuk Linux. Kami akan melihat apakah nanti NVIDIA memutuskan untuk membuka driver GPU kernel FreeBSD mereka, yang juga dapat membantu tumpukan NVIDIA berjalan di beberapa BSD lainnya. Meski begitu, driver FreeBSD milik NVIDIA menawarkan opsi grafis terbaik saat ini untuk pengguna FreeBSD. Driver grafis sumber terbuka Intel dan Radeon terus di-porting dari kernel Linux tanpa dukungan/dukungan resmi dari Intel atau AMD dan umumnya selalu sejumlah rilis di belakang keadaan kernel Linux upstream terbaru.

Itulah sinopsis dari apa yang terjadi dengan upaya driver kernel open-source NVIDIA. Nantikan pengujian driver NVIDIA R515 Linux dan lihat pengalaman dan kinerja saat ini dari menggunakan driver kernel terbuka ini dengan driver ruang pengguna OpenGL/Vulkan sumber tertutup, dll. NVIDIA berkomentar kepada saya bahwa “Ini out-of- modul kernel pohon terbuka hanyalah satu langkah menuju dukungan yang lebih baik di Linux.”

NVIDIA bertahun-tahun yang lalu telah memberikan dukungan driver GPU Linux yang baik, meskipun sumber tertutup (kecuali menghitung yang pertama, xf86-video-nv DDX yang minimal berguna)… Sekarang mereka akhirnya menjelajah ke driver kernel open-source.

Selamat kepada NVIDIA karena akhirnya bergerak maju dengan solusi driver kernel open-source untuk rangkaian produk grafis mereka. Bisa dibilang sudah lama tertunda dan disayangkan bahwa mereka tidak membuka sumber komponen driver ruang pengguna mereka, tetapi ini adalah langkah yang hebat dan lebih baik daripada status quo. Driver kernel terbuka ini masih merupakan pekerjaan dalam proses terutama untuk gamer GeForce Linux tetapi merupakan awal yang baik dan akan membantu dalam memungkinkan integrasi kernel yang lebih baik / pengalaman pengaturan yang ditingkatkan dan mengelola instalasi driver berpemilik NVIDIA di seluruh distribusi dengan lebih baik — setelah memiliki API/ABI yang stabil untuk driver dan terutama jika/ketika ambang batas dilanggar untuk dapat melakukan upstream driver kernel. Ini juga akan sangat bagus setelah proyek Nouveau open-source dapat memanfaatkan GSP atau driver ini secara langsung sehingga mereka dapat fokus pada dukungan driver Mesa open-source mereka. Nouveau masih terbatas pada Gallium3D/OpenGL hari ini dan beberapa dukungan OpenCL tetapi mudah-mudahan seiring waktu mereka akan dapat menyediakan driver NVIDIA Vulkan open-source yang sesuai untuk Mesa dan secara keseluruhan meningkatkan pengalaman NVIDIA open-source di Linux.

Setidaknya dalam waktu dekat driver grafis Radeon Linux AMD memimpin dengan tumpukan open-source untuk grafis diskrit — baik pengguna dan komponen driver kernel-space menjadi open-source dan hanya terbatas pada mikrokode/firmware sumber tertutup. Intel Arc Graphics yang akan datang mengambil rute yang mirip dengan AMD dengan kernel terbuka penuh dan komponen ruang pengguna dan firmware/mikrokode GuC/HuC. Kita akan melihat bagaimana hal ini mengubah penerimaan di antara para gamer Linux dengan hanya memiliki driver kernel terbuka, tetapi setidaknya dalam jangka panjang harus menyediakan integrasi / kemudahan penggunaan yang lebih sesuai jika semuanya berjalan sesuai dengan rencana pengembangan driver terbuka mereka. Pemurni perangkat lunak bebas masih akan menganggap NVIDIA terlarang karena kurangnya dukungan ruang pengguna sumber terbuka — setidaknya sampai Nouveau diadaptasi untuk menggunakan driver ini dan memiliki driver Vulkan yang terbuka, dll.

Ya, pangsa pasar game Linux kecil dan NVIDIA sepertinya tidak mengejar upaya ini hanya untuk menggairahkan para penggemar open-source. Permainan sebenarnya di sini kemungkinan besar untuk memastikan daya tarik NVIDIA yang berkelanjutan di Linux di pusat data. Driver kernel terbuka akan mengatasi beberapa masalah oleh organisasi atas masalah keamanan dengan driver biner mencemari kernel dan modul NVIDIA sering menjadi satu-satunya driver kernel sumber tertutup pada banyak sistem Linux. Driver kernel NVIDIA terbuka juga akan memungkinkan integrasi yang lebih baik dengan fitur Linux baru seputar komputasi rahasia/aman dan area lainnya. Pelanggan besar HPC dan pengguna pusat data sering kali tidak terlalu peduli dengan perangkat lunak ruang pengguna sumber tertutup (dan sering kali menjalankan aplikasi pengguna sumber tertutup) dan lebih peduli dengan kualitas dan fungsionalitas — di mana NVIDIA memiliki reputasi luar biasa untuk CUDA dan semua perangkat lunak ruang pengguna yang matang namun terdepan untuk komputasi GPU. Sementara itu, AMD memiliki tumpukan komputasi ROCm open-source yang masih matang dan untuk grafis Intel HPC, semuanya masih menyatu di sana dengan berbagai upaya oneAPI, jadi sementara vendor lain mungkin memiliki tumpukan perangkat lunak open-source sepenuhnya, penawaran komputasi mereka tidak serta berpengalaman sebagai NVIDIA yang sekarang dapat memanfaatkan driver kernel terbuka.

Saya telah mengikuti dengan cermat dukungan driver Linux NVIDIA selama hampir dua dekade dan ini adalah upaya open-source terbaik yang mereka lakukan saat ini.

Sebagai buka driver kernel, sekarang akan dapat menggunakan simbol/fungsi kernel khusus GPL. Sudah driver ini memiliki dukungan DMA-BUF yang akan menarik untuk beberapa penggunaan perusahaan / pusat data. Area lain yang dapat membantu adalah integrasi yang lebih baik juga dengan subsistem HWMON, misalnya, untuk menyediakan integrasi yang lebih baik di sana dan menggunakan antarmuka yang sama seperti yang digunakan oleh driver tampilan/grafik kernel DRM/KMS open-source daripada mengandalkan sekarang berbagai alat dan antarmuka khusus NVIDIA untuk pemantauan.

Juga akan menarik untuk melihat apakah Modul Kernel GPU Terbuka NVIDIA ini menghentikan driver kernel DRM Nouveau… Yah, itu tidak akan sepenuhnya karena jangan lupakan driver kernel baru ini hanya berfungsi dengan GPU Turing dan yang lebih baru. Sementara itu sweet spot yang lebih tua saat ini untuk driver kernel Nouveau adalah seri GTX 600/700 Kepler (dan GTX 750 Maxwell1) tetapi GPU yang lebih baru tidak memiliki firmware manajemen daya yang tepat / re-clocking dan dengan demikian kinerjanya dalam kondisi buruk. Nouveau pada GPU NVIDIA generasi terbaru pada dasarnya hanya cukup baik untuk menggerakkan layar karena kemampuan untuk melakukan re-clock ke kondisi kinerja puncak, kinerja grafis 3D-nya sejujurnya adalah sampah. Jadi NVIDIA Open Kernel Driver tentu lebih unggul untuk seri GeForce RTX 20/30 sementara kartu grafis GTX 900 / GTX 10 kemungkinan akan dibiarkan dalam keadaan canggung di luar tumpukan driver berpemilik.

Kita akan melihat seiring waktu bagaimana komunitas berkontribusi atau bukan kode driver kernel NVIDIA open-source ini karena ada juga CLA yang dapat mematikan beberapa kontributor. Tapi mudah-mudahan Nouveu akan merangkul menggunakan driver kernel ini sehingga mereka dapat memfokuskan upaya mereka pada dukungan NVIDIA open-source dalam Mesa untuk meningkatkan driver Gallium3D mereka untuk OpenCL dan OpenGL dan mudah-mudahan beralih untuk membuat driver Vulkan yang mumpuni. Maju dan klon dari GitHub ke nikmati sumber driver kernel NVIDIA open-source. Driver beta R515 Linux dapat diunduh di NVIDIA.com.

Itulah berita seputar NVIDIA Bertransisi Ke Driver Kernel GPU Linux Open-Source Resmi, semoga bermanfaat. Disadur dari Phoronix.com.