วันนี้ที่รอคอย NVIDIA เปิดซอร์สไดรเวอร์ GPU ฝั่งเคอร์เนลบนลินุกซ์แล้ว

by peat_psuwit
12 May 2022 - 08:13

ผู้ใช้ลินุกซ์หลายๆ คนอาจจะรอคอยให้ NVIDIA เปิดซอร์สของไดรเวอร์ GPU บนลินุกซ์สักที วันนี้ ความฝันได้เข้าใกล้ความจริงอีกขั้น เมื่อ NVIDIA เริ่มปล่อยซอร์สของไดรเวอร์ GPU ของตัวเองในฝั่งเคอร์เนลแล้ว

โค้ดดังกล่าวมาพร้อมกับไดรเวอร์รุ่น R515 (ยังเป็นเบต้าอยู่) และยังไม่รวมถึงโค้ดในฝั่ง userspace ที่จะยังปิดซอร์สต่อไป ไดรเวอร์ฝั่งเคอร์เนลตัวใหม่นี้สามารถใช้ร่วมกับจีพียูตระกูล Turing เป็นต้นไป (นั่นคือตั้งแต่ GTX 16xx และ RTX 20xx) เนื่องจากไดรเวอร์ใช้ GPU System Processor (GSP) ซึ่งเป็นชิปใหม่ที่รับผิดชอบการเริ่มการทำงานและการบริหารจัดการจีพียู

NVIDIA กล่าวว่าไดรเวอร์ตัวนี้ "พร้อมใช้งานจริง" ("production" quality) สำหรับจีพียูฝั่งศูนย์ข้อมูลแล้ว แต่ยังไม่เสถียรพอสำหรับจีพียูฝั่งเดสก์ท็อปและเวิร์คสเตชัน แต่สัญญาว่าจะพัฒนาให้มีความเสถียรและฟีเจอร์เทียบเท่าไดรเวอร์เคอร์เนลตัวเดิม (ที่ปิดซอร์ส) ต่อไป

ผู้ใช้สามารถเลือกระหว่างการติดตั้งไดรเวอร์ของ NVIDIA ว่าจะใช้ไดรเวอร์เคอร์เนลตัวเดิมหรือตัวใหม่ สำหรับในดิสโทรต่างๆ NVIDIA ระบุว่า Canonical (Ubuntu), SUSE และ Red Hat จะ package ไดรเวอร์เคอร์เนลตัวใหม่ในดิสโทรของตัวเองในอนาคต

ในแง่ของการส่งโค้ดกลับเข้าสู่โครงการต้นน้ำลินุกซ์ NVIDIA ระบุว่าเนื่องจากโค้ดบางส่วนถูกพัฒนาขึ้นให้ใช้ร่วมกันระหว่าง OS จึงทำให้ดีไซน์ของโค้ดแตกต่างจากลินุกซ์ และยังไม่สามารถส่งโค้ดกลับไปได้ แต่ NVIDIA มีแผนจะทำงานร่วมกับชุมชนและพาร์ทเนอร์เพื่อดูว่าจะส่งโค้ดกลับไปได้อย่างไร ในระหว่างนี้โครงการ Nouveau ที่เป็นไดรเวอร์โอเพนซอร์สเดิมสามารถอ้างอิงโค้ดนี้เพื่อพัฒนาฟีเจอร์ใหม่ๆ ตามได้ (เช่นเรื่องของ power management ที่เป็นปัญหามาอย่างยาวนาน)

สำหรับเหตุผลที่ NVIDIA เปิดซอร์สออกมาครั้งนี้ เว็บไซต์ Phoronix คาดว่าน่าจะมาจากความนิยมของจีพียู NVIDIA ในศูนย์ข้อมูล เนื่องจากการเปิดโค้ดทำให้องค์กรใหญ่ๆ สามารถตรวจสอบโค้ดที่รันในเครื่องของตัวเองได้ อีกทั้งการที่เป็นโค้ดโอเพนซอร์สจะทำให้สามารถใช้ฟีเจอร์ของลินุกซ์บางอย่างที่สงวนไว้สำหรับโค้ดโอเพนซอร์สเท่านั้น (เช่นระบบตรวจวัดอุณหภูมิของการ์ด หรือ DMA-BUF)

ถือเป็นก้าวที่สำคัญของ NVIDIA ที่จะเริ่มสนับสนุนโอเพนซอร์ส แม้ว่าจะช้าไปหน่อยและยังไม่มีโค้ดในฝั่ง userspace แต่ก็เป็นสัญญาณที่ดีว่า NVIDIA จะเป็นมิตรกับโอเพนซอร์สมากขึ้นในอนาคต

โค้ดใหม่นี้ใช้สัญญาอนุญาต MIT ควบคู่กับ GPLv2 ผู้ที่สนใจสามารถเข้าไปศึกษาโค้ดได้ที่ GitHub

ที่มา: NVIDIA, Phoronix

เพิ่มเติม: ทั้งนี้ เนื่องจากชิป GSP จำเป็นต้องมีเฟิร์มแวร์เป็นของตัวเอง คุณ Hector Martin (ปัจจุบันเป็นนักพัฒนาหลักของ Linux สำหรับ Apple M1) ได้ออกมาให้ความเห็นว่า โค้ดส่วนใหญ่ที่เคยอยู่ในไดรเวอร์เคอร์เนล น่าจะถูกย้ายไปยังเฟิร์มแวร์ของ GSP จึงทำให้สามารถเปิดโค้ดได้ ซึ่งหมายความว่า NVIDIA ก็ไม่ได้เปิดโค้ด "ไดรเวอร์" เสียทีเดียว ผมเห็นว่ามุมมองนี้น่าสนใจดี จึงขออนุญาตเพิ่มเติมในภายหลังครับ

Blognone Jobs Premium