11 คะแนน โดย GN⁺ 2024-07-18 | 4 ความคิดเห็น | แชร์ทาง WhatsApp
  • 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 ความคิดเห็น

 
bbulbum 2024-07-18

ลินุส ทอร์วัลดส์: NVIDIA! ติ๊ง! คิว!

 
halfenif 2024-07-19

คำพูดเดียวที่ทรงพลังมาก.. F*ck..!

 
bbulbum 2024-07-18

ก็อาจจะเป็นแบบนั้นได้ ฮ่าๆ

 
GN⁺ 2024-07-18
ความเห็นจาก Hacker News
  • จำได้ว่าเมื่อหลายปีก่อน Nvidia เคยถูกแฮ็กอย่างร้ายแรง

    • แฮ็กเกอร์ขู่ว่าหากไม่ทำไดรเวอร์ให้เป็นโอเพนซอร์ส จะเปิดเผยข้อมูลทั้งหมด
    • เป็นไปได้ว่าแฮ็กเกอร์อาจได้สิ่งที่ต้องการแล้ว
  • เคอร์เนลโมดูลของ Nvidia แบ่งออกเป็นสององค์ประกอบ

    • องค์ประกอบแบบ "OS-agnostic" ที่ไม่ขึ้นกับระบบปฏิบัติการ
    • องค์ประกอบแบบ "kernel interface layer" ที่เฉพาะกับเวอร์ชันและการตั้งค่าของ Linux kernel
    • เมื่อนำไปรวมอยู่ในแพ็กเกจติดตั้ง Nvidia .run องค์ประกอบ OS-agnostic จะถูกแจกจ่ายเป็นไบนารี
  • การใช้ Sway และ Wayland กับ Nvidia ยุ่งยากเกินไป เลยย้ายไปใช้ AMD

    • ปัญหาหลักคือ issue บน gitlab.freedesktop.org ซึ่งตอนนี้ได้รับการแก้ไขแล้ว
  • สงสัยว่าสถานการณ์ไดรเวอร์ Nvidia บน Linux ตอนนี้เป็นอย่างไร

    • เพิ่งประกอบเดสก์ท็อปเครื่องใหม่ด้วย AMD GPU
    • อยากหลีกเลี่ยงปัญหาของไดรเวอร์แบบปิดซอร์ส หรือไดรเวอร์โอเพนซอร์สที่ไม่เพียงพอ/ล้าสมัย
  • Nvidia เปลี่ยนไปใช้ GPU kernel module แบบโอเพนซอร์สทั้งหมดแล้ว

    • หรืออาจพูดได้ว่ากำลังอยู่ระหว่างเปลี่ยนไปใช้ GPU kernel module แบบโอเพนซอร์สทั้งหมด
  • หวังว่าการเปลี่ยนแปลงนี้จะทำให้การติดตั้ง/อัปเกรดไดรเวอร์ Nvidia บน Linux ง่ายขึ้น

    • การแก้ปัญหาเวอร์ชันไม่ตรงกันระหว่างไดรเวอร์ ยูทิลิตี และ container runtime เป็นฝันร้ายมาก
  • โยน tarball มาให้แล้วบอกว่า "เอาไปเลย!" มันไม่มีความหมาย

    • จะยังซื้อ AMD ต่อไปจนกว่าจะมีการส่งไดรเวอร์เข้า upstream kernel จริง ๆ
  • ในฐานะคนขี้สงสัยที่อ่านรายละเอียดอย่างถี่ถ้วน ผมคิดว่านี่เป็นก้าวที่ดี

    • มองไม่เห็นข้อเสีย ยกเว้นความเป็นไปได้ที่วัฒนธรรมแบบกรรมสิทธิ์ของ Nvidia อาจยิ่งแข็งแรงขึ้น
  • จำได้ว่าครั้งหนึ่ง Linus เคยมองกล้องแล้วชูนิ้วกลางให้ Nvidia

    • ตอนนี้สงสัยว่าเวลานั้นผ่านไปแล้วหรือยัง ถึงเวลาคืนดีกันหรือยัง หรือว่ายังมีปัญหาอยู่
  • การที่อย่างน้อยปล่อยเคอร์เนลโมดูลออกมาก็มีความหมาย

    • แต่ก็คงไม่น่าจะมีการส่งเข้า upstream