ทดสอบความเร็ว CPU Rendering หลายๆวิธี

ถึงเวลาจะต้องเรนเดอร์งานแอนิเมชั่น Blender แล้ว แต่ว่าเพราะใช้ Blender Internal ไม่ใช่ Cycles ก็เลยใช้ GPU ไม่ได้…

ทดสอบความเร็ว CPU Rendering หลายๆวิธี

ถึงเวลาจะต้องเรนเดอร์งานแอนิเมชั่น Blender แล้ว แต่ว่าเพราะใช้ Blender Internal ไม่ใช่ Cycles ก็เลยใช้ GPU ไม่ได้ (แล้วก็ไม่มีใช้ด้วยที่จริง เล่น Overwatch ปรับ low หมดบน Macbook ได้นี่ก็บุญแล้ว)

ฉาก

เทียบกันที่ภาพเดียวโดยขนาด 1920x1080 ในฉากมี Ambient Occlusion + Indirect Lighting + Mist + Material ที่เป็นสีใสที่ใช้ raycast อยู่พอสมควร อันนี้เป็น MV BMS ของคุณ tanacoro ที่ทำอยู่ เดดไลน์สิ้นเดือนนี้

เรนเดอร์เอง

Mac mini Mid 2011 — i5 2.3 GHz — 60–80 วินาที

Macbook Pro Early 2015 — i5 2.9 GHz ~30 วินาที

คอมยืมเพื่อนเรนเดอร์ i3 3.9 GHz ~23 วินาที

คอมยืมเพื่อนอีกเครื่องนึง Xeon E5–2620 v3 ~16 วินาที

อนึ่ง animation เต็มๆนี้น่าจะต้องเรนเดอร์ประมาณ 10,000 frames เห็นเวลาต่างกันระดับแค่ 10 วิแบบนี้ เวลาท้ายสุดต่างกันเป็นวัน

ซึ่ง CPU Rendering นี้จะขึ้นกับจำนวน core เป็นสำคัญ เวลาเรนเดอร์จะเห็นว่ามีช่องช่วยกันคิด ไอ้จำนวนช่องที่มีพร้อมกันได้ก็ขึ้นกับ core ที่มีนั่นแหละ เช่นในภาพข้างล่างนี้จะรู้ได้ว่าเรามี 4 cores

ใช้บริการ render farm

มีหลายเจ้า ครั้งนี่จะลองใช้ Render Street (http://render.st)

ยังไม่อยากเอาเหมาเดือนเลยจ่ายขั้นต่ำ 5$ ไป

เรนเดอร์ไป 30 frames เสีย 0.44$ ดังนั้นราคาเฟรมละ 0.014$

render.st 32 thread Dual Xeon E5 ~17 วินาที

ถ้าคิดเป็นวันก็ประมาณ 1.9 วัน แต่เสียเงิน 140$ (4638 บาท) เพื่อทำ animation ยาว 2 นาทีกว่า (พ่อง)

ใช้บริการ AWS EC2

บริการสำเร็จรูปดูจะแพงไป เรามาลองเช่าคอมเน้นๆ CPU เพื่อมาเรนเดอร์กันดูว่าราคาจะเป็นไง

เราจะเลือกใช้ instance C4 เนื่องจากเห็นเขาโฆษณาว่าเน้น computing

ใครจะลองเองหลังลง Blender ได้แล้วต้องลง libGLU ด้วยนะครับ

sudo yum -y install mesa-libGLU-devel

ลองแล้วได้ว่าไหงเวลาเท่าๆกับของเครื่องตัวเองก็ไม่รู้ (นี่ Xeon E5–2666 v3 Haswell เลย) อันนี้ 0.1$ ต่อชั่วโมง ดังนั้น 1 ชม.ได้ 120 เฟรม ต้องเปิด 3.4 วันถึงจะเสร็จ เสีย 8.16$ (270 บาท)

ไม่รู้ตั้งอะไรผิดตรงไหน แต่ยังไง Render Street น่าจะถูกและดีกว่า ก็เลยปิด instance ไป (เสียไป 0.12$)

สรุปคือ

ถ้ารีบแล้วมีโปรเจค Blender ในเดือนเดียวกันเยอะๆ คิดว่า Render Street ก็น่าสนใจ (50$ = 1600 บาท พอๆกับค่า Adobe) แต่ความเร็วก็จะช้ากว่าที่เทสให้ดูด้วย

มีข้อจำกัดนิดหน่อย แล้วก็แบบรายเดือนเป็นแบบใช้ CPU ได้เท่านั้น

ค่าไฟหอปกติเดือนละ 2000 กว่าบาท เพราะงั้นยังไงเรนเดอร์เองก็ถูกกว่า แต่ต้องไม่รีบเพราะหลายวันกว่าจะได้ผลมาดูว่าพลาดตรงไหนอีกมั้ย

เทคนิค!

ดูจากกราฟจะเห็นว่าถ้าเราใช้เทคนิคอะไรก็ตามที่ต้องทำ Occlusion Culling (AO, Indirect Lighting, Environment Lighting, etc.) มันจะมีช่วง CPU ว่างงานเกิดขึ้น วิธีใช้ให้เป็นประโยชน์คือเปิด Blender 2 อันแล้วเล็งให้มันใช้ช่องว่าง ซึ่งไม่ต้องเล็งมากก็ได้เพราะเดี๋ยวมันจะ converge ไปเป็นแบบนั้นเอง (น่าจะ)

ก่อน
หลัง

ขอบคุณผู้สนับสนุนงานเรนเดอร์ครั้งนี้ Thanik และ Chiangmai ด้วยที่ให้ยืม resource ว่างงานครับ