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