ทดสอบความเร็ว 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 ว่างงานครับ