การเปิดตัว Blender 3.2 ในสัปดาห์นี้ทำให้รองรับการเรนเดอร์ AMD GPU บน Linux ผ่านอินเทอร์เฟซ HIP ของ AMD ร่วมกับสแต็คการคำนวณ ROCm ด้วยความกระตือรือร้นที่จะได้เห็น AMD GPU รองรับบน Linux ได้ในที่สุด ฉันจึงเริ่มลองใช้ซอฟต์แวร์ Blender open-source 3D modeling รุ่นใหม่นี้อย่างรวดเร็ว ขณะที่เห็นว่าประสิทธิภาพของ AMD RDNA2 HIP นั้นเป็นอย่างไรเมื่อเปรียบเทียบกับ GPU NVIDIA GeForce RTX 30 ที่ได้รับความนิยมมาอย่างยาวนาน รองรับบากภายใต้ Blender

ในขณะที่ Blender 3.1 รองรับ AMD HIP บน Windows นั่นไม่ใช่กรณีสำหรับ Linux และเฉพาะตอนนี้ในการเปิดตัว Blender 3.2 ในสัปดาห์นี้เท่านั้นที่มี AMD HIP รองรับบิลด์ Linux ของ Blender วิธีนี้ช่วยให้เร่งความเร็ว GPU ได้เมื่อมีการตั้งค่าสแต็กการประมวลผล ROCm แต่นั่นก็หมายความว่าจะไม่มีการสนับสนุนหากเพียงแค่ใช้ไดรเวอร์ Mesa และการสนับสนุนแบบสำเร็จรูปอื่นๆ บนลีนุกซ์รุ่นต่างๆ

ผู้ใช้ Linux ส่วนใหญ่ ขออภัย ห้ามใช้งานด้วยการตั้งค่า ROCm stack ณ จุดนี้ เนื่องจากจำเป็นต้องตั้งค่าด้วยตนเองผ่านไดรเวอร์ Radeon Software สำหรับ Linux หรือขั้นตอนการติดตั้ง ROCm ด้วยตนเอง ถึงอย่างนั้น การสนับสนุนการแจกจ่าย Linux ก็มีจำกัด เป็นเวลากว่าหนึ่งเดือนแล้วที่ Ubuntu 22.04 LTS ออกวางจำหน่ายแล้ว และโชคไม่ดีที่ยังไม่มีการรองรับสำหรับ Ubuntu รุ่นใหม่ล่าสุดที่รองรับระยะยาว ตอนแรกฉันพยายามแก้ไขมันบน Ubuntu 22.04 เพียงต้องการบิต ROCm แต่อย่างใดและไม่ต้องกังวลเกี่ยวกับส่วนประกอบ DKMS/Vulkan/OpenGL แต่ GNU toolchain package ต่างจาก Ubuntu 20.04 กับ 22.04 ทำให้ปวดหัวมากขึ้น… ดังนั้น ในระบบทดสอบ ฉันเพิ่งเช็ดมันและกลับไปทำการติดตั้ง Ubuntu 20.04

ในตอนแรก แม้กระทั่งบน Ubuntu 20.04 LTS ฉันพบปัญหาเช่นเดียวกับการได้รับการสนับสนุน AMD HIP เปิดใช้งานสำหรับ Blender ไดรเวอร์แบบแพ็คเกจบนไซต์ AMD ใช้สำหรับส่วนประกอบ Radeon Software 22.10.2 ในขณะที่ดำเนินการตามเส้นทางการติดตั้ง ROCm ทำให้ได้ส่วนประกอบไดรเวอร์ 22.10.3 ที่ใหม่กว่า ด้วยการแก้ไขบางอย่าง ในที่สุดฉันก็ได้ Blender 3.2 ทำงานกับ HIP/ROCm ได้สำเร็จ! น่าเสียดายที่ลีนุกซ์รุ่นส่วนใหญ่ยังไม่ได้ทำแพ็คเกจซอฟต์แวร์ AMD ROCm เนื่องจากความซับซ้อนและปัญหาอื่นๆ ในขณะเดียวกัน AMD เน้นการสนับสนุน ROCm Linux อย่างเป็นทางการในการกระจาย Linux ระดับองค์กรทั่วไปเพียงไม่กี่รายการ ในการเปรียบเทียบ สแต็คไดรเวอร์ที่เป็นกรรมสิทธิ์ของ Linux ของ NVIDIA นั้นแทบจะได้รับการสนับสนุน/มีให้ใน Linux ดิสทริบิวชันเกือบเป็นสากล นานมากแล้วที่ฉันจำความปวดหัวได้ครั้งสุดท้ายเพียงแค่ติดตั้งไดรเวอร์ NVIDIA Linux อย่างถูกต้อง

แต่ถึงแม้ ROCm จะทำงานกับการ์ดใบแรก ซึ่งเป็นรุ่น RDNA2 มันทำให้เกิดข้อ จำกัด อีกประการหนึ่ง… การรองรับอุปกรณ์ GPU ที่ จำกัด มากกว่าการรองรับอุปกรณ์ที่หลากหลายของ NVIDIA สำหรับหลายรุ่น อย่างเป็นทางการ Blender 3.2 ทำงานร่วมกับการ์ดกราฟิก RDNA2 และ RDNA(1) บน Linux พร้อม HIP ฉันสามารถทดสอบกราฟิกการ์ด Radeon RX 6000 (RDNA2) ที่มีอยู่ทั้งหมดด้วย Blender 3.2 ได้แล้ว! แต่ด้วยการ์ดกราฟิก RDNA1 ที่ทดสอบทั้งหมดของฉัน พวกเขาทั้งหมดได้ผลลัพธ์ Blender 3.2 ที่มีข้อผิดพลาดในการแบ่งส่วน การลองใช้การ์ดกราฟิกรุ่นก่อน RDNA เช่น Radeon VII ที่ใช้ Vega ก็ทำให้เกิดข้อผิดพลาดในการแบ่งส่วนแม้ว่าการ์ดกราฟิก Radeon VII จะได้รับการสนับสนุนโดย ROCm compute stack

ดังนั้นสำหรับ การทดสอบรอบนี้ ฉันได้แสดงให้เห็นว่าการ์ดกราฟิก Radeon RX 6000 series สามารถทำงานร่วมกับ HIP ของ Blender 3.2 บน Linux ได้อย่างไร สำหรับการเปรียบเทียบ ฉันยังทดสอบการ์ด NVIDIA GeForce RTX 30 ทั้งหมดที่มี NVIDIA พร้อม Blender รองรับทั้งเส้นทาง CUDA และ OptiX สำหรับการเรนเดอร์บน Linux โดยที่ OptiX เป็นตัวเรนเดอร์ที่ต้องการสำหรับกราฟิกการ์ด GeForce RTX และสิ่งที่ใช้สำหรับการเปรียบเทียบนี้

กราฟิกการ์ดที่ฉันวัดประสิทธิภาพบน Blender 3.2 รวมทั้งหมด การ์ด RDNA2 และ RTX 30 ที่ฉันมี (ขออภัยที่ไม่มี RX 6900 series จาก AMD):

-Radeon RX 6400
-Radeon RX 6500 XT
-Radeon RX 6600
-Radeon RX 6600 XT
-Radeon RX 6700 XT
-Radeon RX 6750 XT
-Radeon RX 6800
-Radeon RX 6800 XT
-GeForce RTX 3060
-GeForce RTX 3060 Ti
-GeForce RTX 3070
-GeForce RTX 3070 Ti
-GeForce RTX 3080
-GeForce RTX 3080 Ti
-GeForce RTX 3090

การทดสอบทั้งหมดเป็นแบบเดียวกัน เวิร์กสเตชัน AMD Ryzen 9 5950X ที่ใช้ Ubuntu 20.04 LTS พร้อมเคอร์เนล Linux 5.13 และไดรเวอร์ AMD/NVIDIA ล่าสุด

ข่าวดีก็คือ AMD HIP back-end สำหรับ Blender ทำงานได้ดีกว่า OpenCL back แบบเก่ามาก-end ที่ถูกทิ้งใน Blender 3.0… The o แบ็คเอนด์ของ OpenCL นั้นได้รับการบำรุงรักษาไม่ดี มักจะมีการปรับขนาดใน GPU ได้แย่มาก และเป็นเพียงการพังทลาย น่าเสียดายที่ผลการทดสอบประสิทธิภาพ Blender 3.2 Linux แสดงให้เห็นว่า NVIDIA ที่มี OptiX แบ็คเอนด์นั้นเร็วกว่ามาก แม้ว่าการใช้แบ็คเอนด์ CUDA ในการทดสอบเพิ่มเติมบางอย่างยังคงให้ประสิทธิภาพที่ค่อนข้างดีกว่าการ์ดกราฟิก RDNA2 ที่มี HIP เหล่านี้

ดูการใช้พลังงาน GPU ระหว่างฉาก BMW ด้วยการ์ดกราฟิกต่างๆ

น่าเสียดายที่ประสิทธิภาพ HIP ที่แย่ไม่ได้จำกัดอยู่แค่ฉากเดียวเท่านั้น แต่แสดงประสิทธิภาพ RDNA2 ที่แย่อย่างต่อเนื่องเมื่อเทียบกับซีรีส์ NVIDIA RTX 30 บน Blender 3.2 บน Ubuntu Linux

อย่างน้อยสำหรับซีพียูเดสก์ท็อปส่วนใหญ่ การใช้แบ็กเอนด์ Radeon HIP กับกราฟิกการ์ด Radeon RX 6700/6800/6900 ระดับไฮเอนด์จะยังคงให้ประสิทธิภาพการเรนเดอร์ Blender ได้เร็วกว่าการใช้การเรนเดอร์แบบ CPU ล้วนๆ

อย่างน้อย ในที่สุด Radeon HIP back-end ก็ถูกเปิดเผยภายใต้ Linux สำหรับผู้ที่ต้องการใช้ประโยชน์จากมัน หวังว่าส่วนหลังและโค้ด ROCm/HIP จะยังคงเติบโตเต็มที่ นักพัฒนา Blender ยังคงสำรวจการสนับสนุนของ Vulkan และการปรับปรุงอื่น ๆ ที่หวังว่าจะใช้งานได้ทันเวลาสำหรับการให้การสนับสนุนข้ามผู้ขายที่ดี Intel กำลังทำงานบน SYCL + oneAPI รองรับ Blender สำหรับการเร่งความเร็ว Intel Arc Graphics

อย่างน้อยการรองรับ Radeon HIP ใน Blender 3.2 สามารถทำงานได้บน Linux และ GPU ระดับไฮเอนด์จะเร็วกว่าที่ใช้ CPU การเรนเดอร์ แต่ NVIDIA รองรับด้วย OptiX และ CUDA แบ็คเอนด์ยังคงพิสูจน์ว่าเหนือกว่าในขั้นตอนนี้ น่าเสียดายที่การปรับใช้ซอฟต์แวร์ HIP Linux ที่รองรับภายนอกการแจกจ่าย Linux ที่ได้รับการสนับสนุนอย่างเป็นทางการของ AMD อาจเป็นเรื่องเจ็บปวดและในทำนองเดียวกันมากกว่าหนึ่งเดือนหลังจากการเปิดตัว Ubuntu 22.04 LTS ยังไม่มีการสนับสนุน AMD อย่างเป็นทางการสำหรับเวอร์ชันล่าสุดนี้ อูบุนตู ลินุกซ์ และยังโชคร้ายกับ RDNA1 GPU และก่อนหน้านี้ฉันเพิ่งได้รับข้อผิดพลาดในการแบ่งส่วนด้วย Blender 3.2 โดยที่ช่วง GPU ที่รองรับ NVIDIA นั้นแข็งแกร่งมากและขยายพอร์ตโฟลิโอทั้งหมดของพวกเขามาหลายชั่วอายุคน

สุดท้ายสำหรับผู้ที่อยากรู้อยากเห็นด้านล่างคือ ดูการใช้พลังงานของ GPU และข้อมูลความร้อนสำหรับฉากทดสอบ Blender ทั้งหมดในช่วงต่างๆ ที่ได้รับการเปรียบเทียบสำหรับการเปรียบเทียบ Blender 3.2 Linux