รู้ทัน HYDRA Engine



รู้ทัน HYDRA Engine แนวทางใหม่ของ Muti-GPU
สวัสดีครับ เพื่อนนักโพสต์ และนักอ่านกระทู้ที่รักทุกท่าน (รวมถึงท่านนักท่องเน็ตที่หลงเข้ามาด้วย)
เมื่อเร็วๆนี้ทางเว็บไซด์ฮาร์ดแวร์ต่างประเทศหลายเว็บเริ่มมีการนำเสนอบท ความเกี่ยวกับกับเมนบอร์ดที่สามารถทำ Multi-GPU ด้วยเทคโนโลยี HYDRA Engine กันไปแล้ว ซึ่งเสียงตอบรับก็ออกมาดีมากๆเลยครับ
ดังนั้นวันนี้กระผมขออนุญาตินำเสนอบทความเกี่ยว HYDRA Engine ให้ทุกท่านได้รู้ทันกับเจ้าเทคโนโลยีใหม่แห่งการทำมัลติ GPU ตัวนี้กันนะครับ


HYDRA Engine ความสำคัญอย่างไร
หลายคนคงสงสัยว่า ทำไมเราจำเป็นต้องใช้เทคโนโลยี HYDRA Engine ด้วยในเมื่อเรามีเทคโนโลยีสำหรับทำ Muti-GPGPU กันอยู่แล้ว
ไม่ว่าจะเป็น SLi จาก NVIDIA, CrossFireX จาก AMD และ Muti-Chrome จาก S3
คำตอบคือ HYDRA Engine สามารถทำในสิ่งที่ ระบบเทคโนโลยีMulti-GPU ของทั้ง 3 ค่ายยังทำไม่ได้ครับ

ตัวอย่างเช่น
- HYDRA Engine สามารถทำ Multi-GPU ระหว่างการ์ดจอ AMD และ NVDIA ได้
- HYDRA Engine สามารถทำ Multi-GPU ระหว่างการ์ดรุ่นเก่าและใหม่ได้ เช่าการทำ Multi-GPU ระหว่างการ์ดตระกูล G90 และ GT200 หรือการทำทำ Multi-GPU ระหว่าง HD4xxx กับ HD5xxx
- HYDRA Engine สามารถลดปัญหาที่เกิดจาการทำ Muti-GPGPU ในบัจจุบันเช่น ปัญหา micro-stuttering เป็นต้น (ตรงนี้เป็นจุดที่สำคัญที่สุด ซึ่งผมจะอธิบายให้ฟังในหัวข้อถัดไป)

ก่อนจะไปดูว่า Hydra Engine ทำงานยังไงเรามาทบทวนความรู้เก่ากันก่อนนะครับ

ทบทวนการประมวลผล 3 มิติของ GPU (1 ตัว)
1. ทำการประมวลผลทางโครงสร้าง 3มิติ (Geometry) ทำการสร้างโครงสร้างของวัตถุ 3มิติขึ้นมาด้วยการนำรูปสามเหลี่ยมมาต่อกันเป็นวัตถุ 3 มิติ (รูป สามเหลี่ยมดังกล่าวเรียกว่า Polygon) , ทำการจัดวางตำแหน่งของวัตถุ 3 มิติ ตามค่าพิกัดที่เกมส์ หรือโปรแกรมต่างๆกำหนดมาให้, หากวัดถุมีการซ้อนทับกันก็จะมีการตัด Polygon ในส่วนที่โดนบังออกเพื่อประหยัดหน่วยความจำ
2. ทำการสร้างพื้นผิวให้วัตถุโดยเติมลวดลาย ใส่สี ตลอดจนการลงแสงและเงาให้วัตถุ โดยทั้งหมดนี้จะอยู่ในรูปของจุดภาพหรือ Pixel นั้นเองครับ เราเรียกขั้นตอนนี้ว่า Pixel Processing ครับ
3.นำภาพที่ได้ไปเก็บในแรมบนการ์ดจอ และสงไปแสดงผลบนจอภาพให้เราได้ชมกัน

การประมวลผลแบบ Multi-GPU ของ AMD และ NVDIA เลือกใช้
AMD CrossfireX มีวิธีการประมวลผล Multi-GPU ให้เลือกใช้ 3 แบบได้แก่
1. Supertiling mode
2. Scissor mode
3. AFR (Alternate Frame Rendering)

NVIDIA SLi มีวิธีการประมวลผล Multi-GPU ให้เลือกใช้ 2 แบบได้แก่
1. AFR
2. Split-frame (เหมือนกับ Scissor mode ของ AMD เลยครับ )

รู้จักกับข้อดีข้อเสียของทั้ง 3 วิธีกัน


ภาพ แสดงทำงานของ Multi-GPU แบบ Supertiling mode

1. Supertiling mode แบ่ง Frame ออกเป็นช่องๆคล้ายตารางหมากรุก ช่องละ 32 x 32 Pixel แล้วให้ทำการส่งช่องต่างให้ GPU แต่ละตัวประมวลผลในจำนวนช่องที่เท่าๆกัน
ข้อดี
ทำให้ GPU ทั้ง 2 ตัวรับงานมาทำได้อย่างสมดุลกันมากที่สุดใน 3 วิธี
ข้อเสีย
OpenGL ไม่สนับสนุนวิธีนี้ จึงทำให้วิธีนี้ได้รับความนิยมน้อยที่สุด


ภาพ แสดงทำงานของ Multi-GPU แบบ Scissor mode หรือ Split-frame

2. Scissor mode หรือ Split-frame แบ่ง Frame ออกเป็นส่วนและส่งแต่ละส่วนให้ GPU แต่ตัวประมวลผล
ข้อดี
ทำง่าย มีปัญหาน้อย
ข้อเสีย
ให้ประสิทธิภาพออกมาน้อยกว่า วิธีการแบบ AFR
ใช่ทรัพยากรไม่คุ้มค่า ตัวอย่างเช่นเรามีการ์ด 2 ตัวแล้วนำมาทำมัลติ GPU ด้วยวิธี Scissor mode หรือ Split-frame ในการทำงาน 1 frame การ์ดทั้ง 2 ตัวจะต้องโหลดข้อมูลของ frame นั้นๆทั้ง frame มาไว้บนการ์ดทั้ง 2 ตัว เหมือนๆกัน จากนั้นการทั้ง 2 ตัวจะต้องทำการ ประมวลผลทางโครง 3มิติ (Geometry) ของ frame นั้นๆทั้ง frame เหมือนๆกัน จากนั้นการ์ดทั้ง 2 ตัวก็ช่วยกันทำการสร้างพื้นผิวให้วัตถุ (Pixel Processing) โดยแบ่งกันคนละครึ่งเฟรม จากนั้นก็นำเฟรมมารวมกันและส่งไปแสดงผลบนจอภาพ สรุปคือวิธีนี้มันจะช่วยกันทำงานในขั้นตอน Pixel Processing เท่านั้นเองครับ


ภาพ แสดงทำงานของ Multi-GPU แบบ AFR (Alternate Frame Rendering)

3. AFR (Alternate Frame Rendering) คือ แบ่งให้ GPU แต่ละตัวประมวลผลตัวละ Frame สลับกันไปเรื่อยๆ เช่น GPU ตัวที่ 1 จะประมวลผล frame คี่ เช่น Frame ที่ 1, 3, 5 ... และ GPU ตัวที่ 2 จะประมวลผล frame คู่ เช่น Frame ที่ 2, 4, 6 ... เป็นต้น
ข้อดี
ให้ FPS Max และ FPS Average สูงที่สุดใน 3 วิธี (BenchMark ออกมาแล้วดูดี)
ใช้ทรัพยากรได้คุ้มค้ากว่า Scissor mode หรือ Split-frame
เป็นวิธีที่นิยมใช้กันมากที่สุดใน 3 วิธี

ข้อเสีย

มักจะเกิดปัญหา micro-stuttering ขึ้น
ปัญหา micro-stuttering คือ ปัญหาที่เกิดขึ้นจากการไม่คงที่ของเวลาที่ใช้ในการเปลี่ยนจาก Frame หนึ่งไปยังอีก Frame หนึ่ง โดยมีหน่วยเป็น มิลิวินาที หรือ millisecond
ปัญหานี้จะเกิดกับการทำ Multi-GPU แบบ AFR เท่านั้น
ผลที่เกิดจาก micro-stuttering คือเล่นเกมแล้วกระตุกๆทั้งๆที่มีค่า FPS Max และ FPS Average สูงลิบลิ้ว หรือถ้าโชคร้ายเกมอาจจะมี Artifact (การประมวลผลกราฟิคออกมาผิดผลาด) เกิดขึ้นได้
หากเกิดเหตุการดังกล่าวขึ้น ท่านสามารถแก้ปัญหาได้ด้วยการเปลี่ยนไปใช้ Multi-GPU แบบ Scissor mode หรือ Split-frame แทนแบบ AFR ปัญหาดังกล่าวก็จะหมดไปครับ (แต่ FPS Max และ FPS Average ก็จะลดลงด้วยนะครับ )


ภาพ แสดงทำงานของ Multi-GPU โดยใช้ HYDRA Engine

การทำ Multi-GPU โดยใช้ HYDRA Engine
- HYDRA Engine จะไปรับข้อมูล 3D เข้ามาก่อน ที่ข้อมูลจะไปถึงไดรเวอร์การ์ดจอ
- HYDRA Engine ทำการวิเคราะห์ข้อมูลที่ได้
- HYDRA Engine วิเคราะห์ความสามารถในการประมวลผลของการ์ดจอแต่ตัวที่อยู่ในระบบ
- HYDRA Engine แบ่งข้อมูลที่ได้รับมากเป็น Task (งาน) โดยแต่ละ Task คือ วัตถุ 3 มิติ ที่อยู่ใน Frame นั้นเอง
- HYDRA Engine ส่ง Task ไปให้กับไดรเวอร์ของการ์ดจอแต่ละตัว(หรือของแต่ละค่ายก็ได้) โดยจำนวน Task ที่การ์ดจอแต่ละตัวจะได้รับนั้นขึ้นอยู่กับ ความสามารถของการประมวลผลที่การ์ดแต่ละตัวจะสามารถทำได้

ตัวอย่างเช่น

การทำทำ Multi-GPU ระหว่าง GTX280 กับ GTX260 ด้วย HYDRA Engine การ์ด GTX280 ก็จะได้ Task ไปประมวลผลเยอะกว่าเพราะมีประสิทธิภาพมากกว่า GTX260 จะได้ Task ไปน้อยกว่าเพราะมีประสิทธิภาพน้อยกว่า
- Task หรือวัตถุ 3 มิติ ที่ถูกแบ่งไปประมวลผลจะถูกนำกลับมารวมกันอยู่ในเฟรมตามค่าพิกัดที่มันควร อยู่ และถูกส่งไปแสดงผลบนหน้าจออีกครั้ง

ข้อดี

1. วิธีการแบ่งงานได้สมดุลที่สุดเท่าที่เคยมีมาในวงการ Multi-GPU
2. การ์ดเล็กไม่หน่วงการทำงานการ์ดใหญ่
3. เขียวและแดงสมาณฉัน กันได้
4. สามารถนำการ์ดใหม่มาทำ Multi-GPU กับการ์ดเก่าได้
5. คุณสามารถ เลือกได้ว่าจะทำ Multi-GPU กับ Hydra Engine หรือกลับไปใช้ SLi และ CrossfireX ก็ได้ ผ่านท่าน Control panel ของไดรเวอร์ Hydra Engine ครับ

ข้อเสีย

ในปัจจุบันนี้ ประสิทธิภาพ ยังไม่แน่นอน เมื่อได้ดูกราฟผลการทดสอบแล้วจะรู้เองครับ แต่ในอนาคตคิดว่าคงจะดีขึ้น
ผู้พัฒนา Hydra Engine อาจถูก NVIDIA ฟ้องได้เพราะไม่ได้ซื้อลิขสิทธิ์ SLi จาก NVIDIA อย่างถูกต้องนั้นเองครับ
ข้อจำกัด (ในขณะเวลาปัจจุบัน ที่เขียนบทความนี้)
- ไดรเวอร์การ์ดจอจะต้องเป็นไปตาม เวอร์ชั่นที่ไดรเวอร์ของ Hydra Engine รุ่นนั้นกำหนด
- ขณะนี้ Hydra Engine สนับสนุน DX9 และ DX10 เท่านั้น
- N Mode หรือ โหมด Multi-GPU สำหรับ NVIDIA สนับสนุน G9x + G2xx, G2xx + G2xx, G9x + G9x
- A Mode หรือ R Mode หรือ Multi-GPU สำหรับ AMD สนับสนุน HD4xxx + HD5xxx, HD5xxx + HD5xxx, + HD5xxx
- X Mode Multi-GPU สำหรับให้ NVIDIA และ AMD สนับสนุน G9x, G2xx, HD4xxx และ HD5xxx เอา 4 ตัวนี้มาจับคู่กันตามใจชอบเลยครับ
- N Mode และ A Mode สนับสนุน Win Vista และ Win 7
- X Mode Win 7 เท่านั้น

กรณีศึกษา MSI’s Big Bang Fuzion

เมนบอร์นี้ติดตั้งชิพเซต Intel P55 และชิพ HYDRA 200 มาด้วยเพื่อช่วยให้ซึ่งมีบอร์ดนี้สามารถทำ Multi-GPU โดยใช้ HYDRA Engine ได้ครับ

HYDRA 200 ผลิตด้วยเทคโนโลยีการผลิตเทคโนโลยีการผลิต 65 nm มีหน่วยประมวลผลชนิด RISC ในตัวความเร็ว 300 MHz มี PCI-E lanse จำนวน 48 lanse แบ่งเป็น UpStream 16 และ DownStream 32 Lanse HYDRA กินไฟ 5.5 W


เรียก Control ขึ้นมา



อณุญาติให้เปิดปิด Hydra Engine เพื่อที่คุณจะได้กลับไปใช้งาน SLi และ CrossfireX ของ P55 ได้



ก่อนเล่นเกมอย่าลื่ม Add เกมเข้าไปในรายการเพื่อให้มันรู้จักกับเกมที่เราจะเล่นด้วยนะครับ

ท่านผลการทดสอบการทำ Multi-GPU ด้วย HYDRA Engine กับ เมนบอร์ดตัวนี้ได้ที่ เว็บเหล่านี้
Tomshardware.com
Guru3D.com
Bit-tech.net
Anandtech.com


ผลการทดสอบจาก Tomshardware



ผลการทดสอบ COD : Modern Warefare 2 จาก Guru3d



ผลการทดสอบจาก Bit-tech



ผลการทดสอบจาก Anandtech

ใครชอบการนำเสนอของเว็บไหนก็ตามไปดูเว็บนั้นเลยนะครับ แต่ใจของผมอยากให้อดใจรอดูผลเทสของคนไทยด้วยกันเองมากว่านะครับ คิดว่าคงอีกไม่นานนะครับ รับรองว่าแรงจนฝรั่งยังอาย
สรุป
โดยภาพรวมแล้ว ประสิทธิภาพของการทำ Multi-GPU ด้วย HYDRA Engin ถือว่าทำออกมาได้ไม่ดีเท่าไรนัก(แต่ก็ไม่มีปัญหา micro-stuttering เกิดขึ้น) แต่หากจะถามว่าผมรู้ยังไงกับเทคโนโลยีตัวนี้ ผมบอกได้เลยว่าผมชอบมันมากๆ แค่เห็น GPU ของ AMD และ NVIDIA สามารถทำงานร่วมกันได้ และได้เห็นการ์ดรุ่นเล็กสามารถทำงานกับรุ่นใหญ่ได้เท่านี้ผมก็ปลืมใจแล้ว ครับ เพียงเท่านี้ก็ถือได้ว่า Lucid Logix ผู้พัฒนา Hydra Egine ก็ได้ฝากชื่อ และผลงานชิ้นเอกไว้ในหน้าหนึ่งของประวัติศาสตร์แห่งวงการ 3D ไว้เป็นที่เรียบร้อยแล้วครับ

บทความนี้เคยเผยแพรที่

http://www.vmodtech.com/webboard/index.php?topic=5223.0

http://www.unlimitpc.com/gigotalk/showthread.php?t=14282

http://forums.overclockzone.com/forums/showthread.php?p=13267260#

1 ความคิดเห็น:

simba555 กล่าวว่า...

แล้วการ์ดจอทั้งสองค่ายจำเป็นต้องลงท้ายด้วย crossfire กับ sli ด้วยรึเปล่าครับถึงจะทำได้?