NVIDIA, Açık Kaynaklı Linux GPU Çekirdek Sürücüsüne Geçiş Yapıyor.

Ve o gün geldi: NVIDIA, LINUX GPU KERNEL MODÜLLERİNİ AÇIK KAYNAK OLARAK YAYINLAYACAK! Çoğumuzun yıllardır beklediği haberdi. Son 20 yılda NVIDIA her ne kadar başarılı kapalı kodlu sürücüleri ile Linux desteği vermiş olsada, AMD’nin açık kaynak sürücülerinin başarısı ile NVIDIA’yı böyle bir karara zorlamış olabilir. Kullanıcı alanı yazılımları kapalı kaynak olarak kalıyor, ancak bugün itibariyle Linux GPU çekirdek modüllerini resmen açtılar ve ilerlemeye devam edecekler. İşte NVIDIA’nın bu çığır açan açık kaynaklı kararına ilişkin bilgi.

Son yıllarda pek çok kişi, şirketin ne tür NVIDIA açık kaynaklı oyun üzerinde çalıştığını merak ediyor… 2019’un sonuna geri dönersek, yapılanlar bir tür açık kaynaklı sürücü çabasının işaretleriydi ve o zamandan beri çeşitli söylentiler ile devam etti. Şimdi ambargo yeni sona erdi  – NVIDIA, grafik teklifleri için tamamen açık kaynaklı bir çekirdek sürücüsü çözümü sağlıyor. Bu, yalnızca Tegra ile sınırlı değildir, yalnızca masaüstü grafiklerini değil aynı zamanda veri merkezi GPU kullanımı için de hazırdır.

Bu NVIDIA açık kaynak girişiminin kapsadığı şeyler – NVIDIA’nın açık çekirdek modülleri, veri merkezi GPU’ları için zaten “üretime hazır, isteğe bağlı” olarak kabul ediliyor. GeForce ve iş istasyonu GPU’ları için, açık çekirdek modülü kodu “alfa kalitesi” olarak kabul edilir, ancak gelecekteki sürümlerle ileriye doğru artırılacaktır. NVIDIA, bu açık çekirdek sürücü çözümüne (ve GSP’yi kullanan mevcut tescilli çekirdek modülüne) odaklanmak için veri merkezi GPU desteği için monolitik çekirdek modülü yaklaşımını zaten kullanımdan kaldırmıştır. Bu açık kaynaklı çekirdek sürücüsü tarafından yalnızca Turing ve daha yeni GPU’lar desteklenecektir. İlk Turing GPU’ları, bu konuda mevcut tescilli çekirdek sürücülerini veya Nouveau DRM sürücüsünü kullanılıyor. Turing ve daha yenisi, GPU Sistem İşlemcisine (GSP) bağımlı olması nedeniyle zor bir gereksinimdir.

Son zamanlarda ortaya çıkan GPU Sistem İşlemcisi ve bu sürücü mimarisi, bazı GPU başlatma/yönetim görevlerini CPU üzerinde yürütmek yerine GPU’ya yüklemek içindir. GSP, çalışma zamanında yüklenen yalnızca ikili bellenimdir. Açık kaynaklı çekirdek sürücüsü, açıkça GSP destekli grafik işlemcilerine bağlıdır. GSP, önceki NVIDIA GPU’larında önceki Falcon mikro denetleyicilerinin yerini alan RISC-V tabanlı bir bloktur .

Çekirdek modülü bileşenleri, NVIDIA çekirdek sürücüsü, NVIDIA-DRM entegrasyonu, ekran/mod ayarı için NVIDIA-Modeset sürücüsü, Birleşik Video Belleği için NVIDIA-UVM’den oluşur.

Gerçek açık kaynaklı çekirdek kodudur – MIT/GPL çift lisanslıdır! NVIDIA, Canonical / Ubuntu, Red Hat ve SUSE’nin açık çekirdek modüllerini paketlemeye ve kullanmaya hazırlandığını belirtti. NVIDIA Linux sürücüsünün yeni R515 şubesinden başlayarak, sürücü yükleyici, kullanıcılara mevcut tescilli çekirdek modüllerini kullanmak veya açık sürücü koduna geçmek isteyip istemediğine dair bir seçeneğe sahip olacak. Açık çekirdek sürücü kodu GitHub’da da mevcut olacak . NVIDIA ayrıca, hak veya hataların ele alındığı, ancak kodun NVIDIA’ya imzalanması için bir CLA’nın gerekli olduğu durumlarda koda topluluk katkılarını kabul edecektir.NVIDIA’nın kullanıcı alanı kitaplıkları ve OpenGL / Vulkan / OpenCL / CUDA sürücüleri kapalı kaynak olmaya devam ediyor – bugünün duyurusu çekirdek alanındaki tüm heyecanla ilgili.

NVIDIA’nın Linux çekirdek sürücüsü için ana hat hedefleri – Yakın vadede / mevcut biçiminde olsa da yukarı akışa gitmeyecek. Bu noktada API/ABI stabilize değildir ve açık çekirdek sürücü kodu, belirli sürücü sürümlerine bağlı olacaktır. NVIDIA nihai olarak API/ABI’sini ve GSP üretici yazılımı arayüzünü stabilize etmek için çalışıyor. Tüm bu teknikler üzerinde çalıştıktan sonra, sürücü (ya da gelecekte ne şekilde olursa olsun) çekirdeğe yukarı akışa bakabilir. Linux çekirdeği yukarı akış uygulamalarına göre, bu çekirdek sürücüsünü kullanan açık kaynaklı kullanıcı alanı desteğinin de olması gerekir.

Bu açık kaynaklı çekirdek kodu şu anda işletim sisteminden bağımsız ve çekirdek arabirim katmanı bileşenlerine bölünmüştür. Bu, NVIDIA’nın Linux üzerindeki tescilli sürücüsünün büyük ölçüde Windows / Linux / FreeBSD / Solaris arasında paylaşılan koddan kaynaklanmaktadır. Tıpkı AMD’nin DAL/DC’sinin başlangıçta çok sayıda soyutlama nedeniyle yukarı akışta zorlanması gibi, Linux çekirdeğinde yukarı akışa alınması için muhtemelen Linux’a hitap edecek şekilde daha fazla yeniden faktörlenmesi gerekecekti.

Bu yeni çekirdek sürücüsü etrafında Nouveau (açık kaynak topluluğu) beklentileri – Sonunda evet, Nouveau bugün açılan bu kodu kullanabilir. Bunu NVIDIA’ya sorduklarında, Nouveau’nun GSP bellenimi / açık çekirdek modüllerini kullanabileceğini umarız, ancak önce GSP bellenim arayüzünün dengelenmesi ve diğer faktörlerin büyük olasılıkla zaman alacağını söylüyorlar. Böylece gelecekte, bu çekirdek sürücüsü daha iyi durumda olduğunda, Nouveau’nun Mesa kodu, GTX 600/700 Kepler serisinden daha yeni donanımlar için oldukça kaba bir şekle sahip olan Nouveau DRM çekirdek sürücüsüne alternatif olarak bu çekirdek sürücüsüyle arabirim oluşturabilir. . Artı, bu çekirdek kodunun yukarı akışa alınması için, açık bir kullanıcı alanına ihtiyacı olacaktır – yani NVIDIA’nın daha sonra kullanıcı alanı kitaplıklarını açmaya karar vermesi dışında Nouveau Mesa kodu.

NVIDIA’nın nihayet daha açık kaynak olma motivasyonu – Bu, Linux entegrasyonunu ve desteğini iyileştirme çabası gibi görünüyor. NVIDIA’nın bugün yaptığı duyuruda, “Bu sürüm, Linux’ta NVIDIA GPU’ları kullanma deneyimini iyileştirmede, işletim sistemiyle daha sıkı entegrasyon sağlamanın yanı sıra geliştiricilerin hata ayıklama, entegre etme ve geri katkıda bulunma konusunda yetkilendirmede büyük bir adımdır” diyor. Ayrıca, gizli bilgi işlemden ve veri merkezi GPU desteğinin iş istasyonu ve tüketici GeForce GPU desteğinden önce nasıl “üretim” kalitesi olarak kabul edildiğinden bahsederek bu stratejide kurumsal / veri merkezi kullanımının rol oynadığı görülüyor. ‘

Bu yeni çekirdek sürücüsü ile özellik farklılıkları – Açık kaynaklı bir çekirdek sürücüsü olması  sonunda bazı avantajlar sağlayacaktır – şu anda bu açık sürücü, tescilli sürücülerinden farklı olarak DMA-BUF desteğine sahiptir. Ancak bu kod olgunlaşana kadar, “alfa” kalite desteğinin tüketici/iş istasyonu donanımı ile performans farklılıkları ve diğer iyileştirme alanları olabilir. Ancak nihayetinde NVIDIA, tescilli çekirdek koduyla özellik ve performans eşliğine sahip olacaklarını söylüyor.

Şu anda bu yalnızca Linux’a özel bir değişiklik– En azından R515 şubesi itibariyle, NVIDIA yalnızca Linux sistemleri için açık kaynaklı çekirdek sürücüsü desteği sağlamaktadır. NVIDIA’nın tescilli sürücüsüyle uzun süredir devam eden BSD desteği göz önüne alındığında FreeBSD desteğini ve bu açık kaynaklı kodun herhangi bir BSD üzerinde çalışacak kadar taşınabilir olup olmadığını sordum. Bana sadece R515 için sadece Linux olduğu söylendi. NVIDIA’nın daha sonra FreeBSD çekirdek GPU sürücüsünü açmaya karar verip vermediğini göreceğiz; bu, NVIDIA sürücüsünün diğer BSD’lerin bazılarında çalışmasına da yardımcı olabilir. Yine de, NVIDIA’nın tescilli FreeBSD sürücüsü, FreeBSD kullanıcıları için bugün en iyi grafik seçeneğini sunuyor.

NVIDIA’nın açık kaynaklı çekirdek sürücüsü çabalarında neler olup bittiğinin özeti budur. NVIDIA R515 Linux sürücü testi ve kapalı kaynaklı OpenGL/Vulkan kullanıcı alanı sürücüleri vb. ile bu açık çekirdek sürücüsünü kullanmanın mevcut deneyimine ve performansına bakmak için bizi izlemeye devam edin. NVIDIA, “Bunlar dışında- ağaç açık çekirdek modülleri, Linux’ta daha iyi destek için sadece bir adımdır.”

NVIDIA’yı, grafik ürünleri yelpazesi için açık kaynaklı bir çekirdek sürücü çözümüyle nihayet ilerlediği için tebrik ederiz.

 

Kaynak: phronix