NVIDIA เปลี่ยนผ่านสู่ Linux GPU kernel modules แบบโอเพนซอร์สอย่างสมบูรณ์
(developer.nvidia.com)- NVIDIA เปิดซอร์ส Linux GPU kernel modules ภายใต้ไลเซนส์คู่ GPL และ MIT ตั้งแต่ไดรเวอร์ R515 เมื่อเดือนพฤษภาคม 2022
- ในเวลานั้นครอบคลุม GPU สำหรับการประมวลผลในดาต้าเซ็นเตอร์เป็นหลัก ส่วน GeForce และ Workstation GPU ยังอยู่ในสถานะอัลฟา
- หลังจากนั้น NVIDIA ได้ประกาศว่าในการออกรีลีสถัด ๆ ไป จะมีการรองรับ Linux สำหรับ GeForce และ Workstation ที่แข็งแกร่งและสมบูรณ์ยิ่งขึ้น และ open kernel modules ของ NVIDIA จะเข้ามาแทนที่ไดรเวอร์แบบปิดในท้ายที่สุด
- ตอนนี้ผ่านไป 2 ปีแล้ว โดยสามารถให้ประสิทธิภาพของแอปพลิเคชันได้เทียบเท่าหรือดีกว่าด้วย GPU kernel modules แบบโอเพนซอร์ส และยังเพิ่มความสามารถใหม่ที่สำคัญดังต่อไปนี้:
- รองรับ Heterogeneous Memory Management (HMM)
- Confidential Computing
- สถาปัตยกรรมหน่วยความจำแบบสอดคล้องกันของแพลตฟอร์ม Grace
- และอื่น ๆ
- ตอนนี้จึงเป็นช่วงเวลาที่เหมาะสมในการเปลี่ยนผ่านสู่ GPU kernel modules แบบโอเพนซอร์สอย่างเต็มรูปแบบ และจะเริ่มใช้การเปลี่ยนแปลงนี้ในไดรเวอร์รีลีส R560 ที่กำลังจะมาถึง
GPU ที่รองรับ
- ไม่ใช่ GPU ทุกตัวที่จะเข้ากันได้กับ GPU kernel modules แบบโอเพนซอร์ส
- แพลตฟอร์มรุ่นใหม่อย่าง NVIDIA Grace Hopper และ NVIDIA Blackwell จำเป็นต้องใช้ GPU kernel modules แบบโอเพนซอร์สเท่านั้น และไม่รองรับไดรเวอร์แบบ proprietary บนแพลตฟอร์มเหล่านี้
- แนะนำให้ GPU รุ่นใหม่ที่ใช้สถาปัตยกรรม Turing, Ampere, Ada Lovelace และ Hopper เปลี่ยนมาใช้ GPU kernel modules แบบโอเพนซอร์ส
- GPU รุ่นเก่าที่ใช้สถาปัตยกรรม Maxwell, Pascal และ Volta ไม่รองรับ GPU kernel modules แบบโอเพนซอร์ส จึงควรใช้ไดรเวอร์ proprietary ของ NVIDIA ต่อไป
- หากเป็นระบบที่มีทั้ง GPU รุ่นเก่าและรุ่นใหม่ปะปนกันในเครื่องเดียว ให้ใช้ไดรเวอร์ proprietary ต่อไป
- NVIDIA มีสคริปต์ช่วยตรวจจับตัวใหม่เพื่อแนะนำว่าควรเลือกไดรเวอร์แบบใด ดูรายละเอียดได้ในส่วน "การใช้สคริปต์ตัวช่วยติดตั้ง" ท้ายโพสต์นี้
การเปลี่ยนแปลงในตัวติดตั้ง
- โดยทั่วไป เวอร์ชันไดรเวอร์เริ่มต้นที่ติดตั้งผ่านทุกวิธีการติดตั้งกำลังเปลี่ยนจากไดรเวอร์ proprietary ไปเป็นไดรเวอร์โอเพนซอร์ส ทั้งนี้มีบางสถานการณ์เฉพาะที่ต้องให้ความสนใจเป็นพิเศษ:
- package manager ที่มี CUDA metapackage
- ไฟล์ปฏิบัติการ
- สคริปต์ตัวช่วยติดตั้ง
- รายละเอียดของ package manager
- Windows Subsystem for Linux
- CUDA Toolkit
การใช้ package manager ที่มี CUDA metapackage
- เมื่อติดตั้ง CUDA Toolkit ผ่าน package manager (ไม่ใช่ไฟล์ run) จะมี metapackage สำหรับการติดตั้งที่มักใช้งานโดยทั่วไป เมื่อติดตั้งแพ็กเกจระดับบนสุด
cudaระบบจะติดตั้งทั้ง CUDA Toolkit และไดรเวอร์รีลีสที่จับคู่กัน
การใช้ไฟล์ปฏิบัติการ
- หากติดตั้ง CUDA หรือไดรเวอร์ NVIDIA ด้วยไฟล์
.runตัวติดตั้งจะตรวจสอบฮาร์ดแวร์และติดตั้งไดรเวอร์ที่เหมาะสมที่สุดสำหรับระบบโดยอัตโนมัติ นอกจากนี้ยังสามารถใช้ UI toggle เพื่อเลือกได้ว่าจะใช้ไดรเวอร์ proprietary หรือไดรเวอร์โอเพนซอร์ส
การใช้สคริปต์ตัวช่วยติดตั้ง
- ตามที่กล่าวไว้ก่อนหน้านี้ หากไม่แน่ใจว่าควรเลือกไดรเวอร์ใดสำหรับ GPU ในระบบ NVIDIA ได้สร้างสคริปต์ตัวช่วยเพื่อแนะนำขั้นตอนการเลือกให้
- วิธีใช้งานคือ ให้ติดตั้งแพ็กเกจ
nvidia-driver-assistantผ่าน package manager ก่อน จากนั้นจึงรันสคริปต์
รายละเอียดของ package manager
- เพื่อให้ได้ประสบการณ์ที่สอดคล้องกัน NVIDIA แนะนำให้ใช้ package manager ในการติดตั้ง CUDA Toolkit และไดรเวอร์ อย่างไรก็ตาม ระบบจัดการแพ็กเกจหรือโครงสร้างแพ็กเกจที่ใช้ในแต่ละดิสโทรอาจแตกต่างกันไปตามดิสโทรนั้น ๆ
- ส่วนนี้อธิบายรายละเอียดเฉพาะ ข้อควรระวัง หรือขั้นตอนการย้ายระบบที่จำเป็นสำหรับแพลตฟอร์มต่าง ๆ
Windows Subsystem for Linux
- Windows Subsystem for Linux (WSL) ใช้ NVIDIA kernel driver ของระบบปฏิบัติการ Windows ฝั่งโฮสต์ จึงไม่ควรติดตั้งไดรเวอร์เฉพาะบนแพลตฟอร์มนี้ หากใช้ WSL อยู่ก็ไม่จำเป็นต้องเปลี่ยนแปลงหรือดำเนินการใด ๆ
CUDA Toolkit
- การติดตั้ง CUDA Toolkit ไม่มีการเปลี่ยนแปลงเมื่อทำผ่าน package manager เพียงรันคำสั่งต่อไปนี้:
$ sudo apt-get/dnf/zypper install cuda-toolkit
ข้อมูลเพิ่มเติม
- สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีติดตั้งไดรเวอร์ NVIDIA หรือ CUDA Toolkit โปรดดูส่วน "การติดตั้งไดรเวอร์" ในคู่มือการติดตั้ง CUDA
ความเห็นของ GN⁺
-
การที่ NVIDIA เปิดซอร์ส GPU kernel modules ถือเป็นการเปลี่ยนแปลงเชิงบวกอย่างมากต่อระบบนิเวศของ GPU computing เพราะจะช่วยให้ผู้ใช้และนักพัฒนาสามารถดีบักและแก้ปัญหาที่เกี่ยวข้องกับไดรเวอร์ NVIDIA GPU ได้ง่ายขึ้น
-
การเปลี่ยนไปสู่โอเพนซอร์สจะมอบความยืดหยุ่นและความโปร่งใสมากขึ้นแก่ผู้ใช้ที่นำ NVIDIA GPU ไปใช้งานในด้าน HPC, AI และ machine learning โดยเฉพาะในสภาพแวดล้อมองค์กร ซึ่งจะช่วยบรรเทาความกังวลด้านความปลอดภัยและเสถียรภาพเมื่อต้องนำโซลูชัน NVIDIA GPU มาใช้
-
อย่างไรก็ตาม ในกระบวนการเปลี่ยนผ่านสู่อโอเพนซอร์ส อาจเกิดปัญหาความเข้ากันได้กับแอปพลิเคชันเดิมที่อิงกับไดรเวอร์ proprietary ได้ และ NVIDIA ควรนำเสนอแนวทางที่ชัดเจนรวมถึงเส้นทางการย้ายระบบในเรื่องนี้
-
การเปรียบเทียบกับแพลตฟอร์ม GPU computing แบบโอเพนซอร์สคู่แข่งอย่าง AMD ROCm ก็เป็นประเด็นที่น่าสนใจเช่นกัน โดยคาดว่าการเปลี่ยนผ่านสู่โอเพนซอร์สของ NVIDIA จะยิ่งทำให้การแข่งขันในด้าน GPU computing เข้มข้นขึ้น
-
ต่อจากนี้หวังว่า NVIDIA จะเปิดรับการมีส่วนร่วมจากชุมชนอย่างจริงจัง และปรับปรุงประสิทธิภาพกับเสถียรภาพของ GPU kernel modules แบบโอเพนซอร์สอย่างต่อเนื่อง ซึ่งจะช่วยเร่งการเข้าถึงอย่างแพร่หลายและนวัตกรรมของ GPU computing
4 ความคิดเห็น
ลินุส ทอร์วัลดส์: NVIDIA! ติ๊ง! คิว!
คำพูดเดียวที่ทรงพลังมาก.. F*ck..!
ก็อาจจะเป็นแบบนั้นได้ ฮ่าๆ
ความเห็นจาก Hacker News
จำได้ว่าเมื่อหลายปีก่อน Nvidia เคยถูกแฮ็กอย่างร้ายแรง
เคอร์เนลโมดูลของ Nvidia แบ่งออกเป็นสององค์ประกอบ
การใช้ Sway และ Wayland กับ Nvidia ยุ่งยากเกินไป เลยย้ายไปใช้ AMD
สงสัยว่าสถานการณ์ไดรเวอร์ Nvidia บน Linux ตอนนี้เป็นอย่างไร
Nvidia เปลี่ยนไปใช้ GPU kernel module แบบโอเพนซอร์สทั้งหมดแล้ว
หวังว่าการเปลี่ยนแปลงนี้จะทำให้การติดตั้ง/อัปเกรดไดรเวอร์ Nvidia บน Linux ง่ายขึ้น
โยน tarball มาให้แล้วบอกว่า "เอาไปเลย!" มันไม่มีความหมาย
ในฐานะคนขี้สงสัยที่อ่านรายละเอียดอย่างถี่ถ้วน ผมคิดว่านี่เป็นก้าวที่ดี
จำได้ว่าครั้งหนึ่ง Linus เคยมองกล้องแล้วชูนิ้วกลางให้ Nvidia
การที่อย่างน้อยปล่อยเคอร์เนลโมดูลออกมาก็มีความหมาย