ก่อนอื่นเลย ที่โพสนี่ ผมขอพูดถึงแนวคิดหลักๆดังต่อไปนี้
1. Co-Processor
2. Parallel Computing, Hybird Computing
3. FLOPs , Performanc per Watt
ซึ่ง เรื่องมันมีอยู่ว่า ปกติเราใช้ CPU ประมวลผลงานต่างๆกันมาตลอด จนกระทั่ง nVdia พัฒนา CUDA ขึ้นมา ในตระกูล Tesla ทำให้ SuperComputer ทั่วโลก เปลี่ยนจาก ใช้สถาปัตยกรรม RISC (พวก IBM) ไปใช้ Intel Xeon แล้วประมวลผลร่วมด้วย nVdia Tesla อันนี้เป็นจุดเริ่มต้นของทั้งหมด ทีนี้ nVdia เอา CUDA มาใส่ใน Geforce และ Quadro ด้วย ผลคือ ผู้พัฒนาซอฟแวร์มากมายทั้ง Adobe, Soliwork etc. ใช้ความสามารถตรงนี้แทน CPU ปกติเรนเดอร์งานกัน เป็นวัน ก็เหลือแค่ชั่วโมงเดียว อีกทั้งแนวคิดเรื่อง Hybird+Parallel Computing คือ ให้ GPU ประมวลผลได้ไม่จำกัดจำนวน สมมติคอมมีช่องต่อ PCIe 4 ช่องก็ใส่ GTX titan 4 ช่อง ไม่ต้องสนใจว่ารองรับ SLI หรือเปล่า เพราะเวลาใช้งานโปรแกรมเฉพาะทางบน linux เราเรียกใช้คำสั่ง CUDA โดยตรงผ่าน PCIe ได้เลย ผลคือ ตามรูปครับ ไม่น่าเชื่อ FLOPs ของ GPU พรุ่งกระฉูดทิ้ง***ง GPU ไปไกลมาก ทั้ง Single Precision และ Double Precision
cpu-vs-gpu.jpg
ทีนี้เมื่อ GPU มันมีประสิทธิภาพสูงเวอร์ๆ แล้วจะเอาไปทำอะไรต่อล่ะ ? เลยมีแนวคิดเรื่อง Grid Computing ผ่าน Cloud คือสร้างคอมพิวเตอร์ Server ที่มี GPU ประมวลผลขึ้นมา แล้วให้ เครื่อง Client มาใช้ทรัพยากรผ่านอินเตอร์เน็ต แต่ต่างจากระบบเก่าที่สมัยก่อนใช้แค่ virtual CPU ปัจจุบัน ใช้ได้ทั้ง CPU และ GPU นั่นหมายความว่า อนาคตหากมีบริษัทในประเทศไทยลงทุนกับระบบ Cloud infrastructure ตัวนี้ เครื่องลูกแค่ใช้ Zero Client เปล่าๆ แล้วผ่านอินเตอร์เน็ต ก็สามารถใช้งาน 3dsmax, maya, adobe ได้ครับ โดยปัจจุบัน nVidia Grid K2 สามารถทำได้แล้ว ซึ่งความสามารถเพียงพอที่จะใช้งานระดับหนึ่ง
ข้อเสียของ CPU ในการประมวลผลอีกอย่างคือ ใช้พลังงานสูง ในขณะที่ให้ค่า FLOPs ต่ำ โปรแกรมใหม่ๆ มีแนวโน้มที่จะพัฒนาโปรแกรมบน CUDA มากกว่า ถึงแม้ Intel จะออกตัว Xeon Phi มาสู้ก็พบว่าแพ้ราบคาบ
จากที่ผมดูกราฟดังกล่าว ไม่ต้องทำ Regression ก็พอทราบคร่าวๆได้ว่า อีกไม่นาน เราสามารถเช่า SuperComputer ส่วนตัวผ่าน Cloud ได้ครับ หรือเอาปัจจุบันล่าสุด เราสามารถเล่นเกมได้โดยไม่ต้องใช้ GPU แรงๆ เช่น สมมติ TV เรามี OS ในตัว เราสามาถใช้ TV เรา Remote ไปที่ Server ของผู้ให้บริการ แล้วเล่นเกมแรงๆหนักๆ GTA, Assassin's creed etc. พวกนี้ได้โดยไม่ต้องใช้การ์ดจอแยกครับ หรืออนาคตอาจจะไม่ต้องใช้ PC ก็ได้ครับ ถ้าอินเตอร์เน็ตมีความเสถียร และไม่ล่ม เป็น Fiber Optic ทั้งหมดนี่เกิดจาก GPU Computing ครับ ตัวอย่างดูได้จากตรงนี้ http://www.nvidia.com/object/cloud-gaming-benefits.html --> เล่นเกมแรงๆ บนคลาว
CPU นั้นมีข้อจำกัดอะไรบ้างที่ทำให้กราฟการพัฒนาต่ำกว่า GPU ตรงนี้ผมไม่ทราบ แต่ปัจจุบันไม่มีใครลงทุนทำ Render Farm ใหญ่ๆเหมือนสมัยก่อน แล้ว หรือลงทุนกับ Super Computer ที่ใช้ CPU ก็ไม่มีแล้วครับ อนาคตดูเหมือนจะเป็น GPU Computing ซะมากกว่า เพราะทำทั้งค่า Single และ Double FLOPs ได้สูงกว่ามาก
1. Co-Processor
2. Parallel Computing, Hybird Computing
3. FLOPs , Performanc per Watt
ซึ่ง เรื่องมันมีอยู่ว่า ปกติเราใช้ CPU ประมวลผลงานต่างๆกันมาตลอด จนกระทั่ง nVdia พัฒนา CUDA ขึ้นมา ในตระกูล Tesla ทำให้ SuperComputer ทั่วโลก เปลี่ยนจาก ใช้สถาปัตยกรรม RISC (พวก IBM) ไปใช้ Intel Xeon แล้วประมวลผลร่วมด้วย nVdia Tesla อันนี้เป็นจุดเริ่มต้นของทั้งหมด ทีนี้ nVdia เอา CUDA มาใส่ใน Geforce และ Quadro ด้วย ผลคือ ผู้พัฒนาซอฟแวร์มากมายทั้ง Adobe, Soliwork etc. ใช้ความสามารถตรงนี้แทน CPU ปกติเรนเดอร์งานกัน เป็นวัน ก็เหลือแค่ชั่วโมงเดียว อีกทั้งแนวคิดเรื่อง Hybird+Parallel Computing คือ ให้ GPU ประมวลผลได้ไม่จำกัดจำนวน สมมติคอมมีช่องต่อ PCIe 4 ช่องก็ใส่ GTX titan 4 ช่อง ไม่ต้องสนใจว่ารองรับ SLI หรือเปล่า เพราะเวลาใช้งานโปรแกรมเฉพาะทางบน linux เราเรียกใช้คำสั่ง CUDA โดยตรงผ่าน PCIe ได้เลย ผลคือ ตามรูปครับ ไม่น่าเชื่อ FLOPs ของ GPU พรุ่งกระฉูดทิ้ง***ง GPU ไปไกลมาก ทั้ง Single Precision และ Double Precision
cpu-vs-gpu.jpg
ทีนี้เมื่อ GPU มันมีประสิทธิภาพสูงเวอร์ๆ แล้วจะเอาไปทำอะไรต่อล่ะ ? เลยมีแนวคิดเรื่อง Grid Computing ผ่าน Cloud คือสร้างคอมพิวเตอร์ Server ที่มี GPU ประมวลผลขึ้นมา แล้วให้ เครื่อง Client มาใช้ทรัพยากรผ่านอินเตอร์เน็ต แต่ต่างจากระบบเก่าที่สมัยก่อนใช้แค่ virtual CPU ปัจจุบัน ใช้ได้ทั้ง CPU และ GPU นั่นหมายความว่า อนาคตหากมีบริษัทในประเทศไทยลงทุนกับระบบ Cloud infrastructure ตัวนี้ เครื่องลูกแค่ใช้ Zero Client เปล่าๆ แล้วผ่านอินเตอร์เน็ต ก็สามารถใช้งาน 3dsmax, maya, adobe ได้ครับ โดยปัจจุบัน nVidia Grid K2 สามารถทำได้แล้ว ซึ่งความสามารถเพียงพอที่จะใช้งานระดับหนึ่ง
ข้อเสียของ CPU ในการประมวลผลอีกอย่างคือ ใช้พลังงานสูง ในขณะที่ให้ค่า FLOPs ต่ำ โปรแกรมใหม่ๆ มีแนวโน้มที่จะพัฒนาโปรแกรมบน CUDA มากกว่า ถึงแม้ Intel จะออกตัว Xeon Phi มาสู้ก็พบว่าแพ้ราบคาบ
จากที่ผมดูกราฟดังกล่าว ไม่ต้องทำ Regression ก็พอทราบคร่าวๆได้ว่า อีกไม่นาน เราสามารถเช่า SuperComputer ส่วนตัวผ่าน Cloud ได้ครับ หรือเอาปัจจุบันล่าสุด เราสามารถเล่นเกมได้โดยไม่ต้องใช้ GPU แรงๆ เช่น สมมติ TV เรามี OS ในตัว เราสามาถใช้ TV เรา Remote ไปที่ Server ของผู้ให้บริการ แล้วเล่นเกมแรงๆหนักๆ GTA, Assassin's creed etc. พวกนี้ได้โดยไม่ต้องใช้การ์ดจอแยกครับ หรืออนาคตอาจจะไม่ต้องใช้ PC ก็ได้ครับ ถ้าอินเตอร์เน็ตมีความเสถียร และไม่ล่ม เป็น Fiber Optic ทั้งหมดนี่เกิดจาก GPU Computing ครับ ตัวอย่างดูได้จากตรงนี้ http://www.nvidia.com/object/cloud-gaming-benefits.html --> เล่นเกมแรงๆ บนคลาว
CPU นั้นมีข้อจำกัดอะไรบ้างที่ทำให้กราฟการพัฒนาต่ำกว่า GPU ตรงนี้ผมไม่ทราบ แต่ปัจจุบันไม่มีใครลงทุนทำ Render Farm ใหญ่ๆเหมือนสมัยก่อน แล้ว หรือลงทุนกับ Super Computer ที่ใช้ CPU ก็ไม่มีแล้วครับ อนาคตดูเหมือนจะเป็น GPU Computing ซะมากกว่า เพราะทำทั้งค่า Single และ Double FLOPs ได้สูงกว่ามาก
Comment