CPU และ GPU แตกต่างกันอย่างไร? ควรจะเลือกใช้ยังไงดี?

74
74
            สวัสดีครับเพื่อน ๆ ชาว IT เราเขียนเรื่องเกี่ยวกับ Cloud กันมาเยอะแล้ว วันนี้เปลี่ยนแนวมาเป็นเรื่องของ Hardware กันบ้างนะครับ ซึ่งก็คือ CPU และ GPU นั่นเองครับ  หลายๆคนคงเคยได้ยินคำว่า GPU กันมาบ้างแล้วสำหรับสาย Gaming แต่อาจจะยังไม่ได้เจาะลึกเข้าไปใน Concept ว่าจริง ๆ แล้ว GPU คืออะไร? มีการใช้งานกับแค่อุตสาหกรรม Gaming อย่างเดียวหรือไม่ ? มาหาคำตอบกันใน Blog นี้นะครับ!!
 
 
            ก่อนที่เราจะเริ่มเปรียบเทียบกันระหว่าง GPU กับ CPU มาดูที่นิยามของแต่ละตัวกันก่อนนะครับ ว่าคืออะไรและใช้ทำอะไรได้บ้าง
 
               CPU (Central Processing Unit) – เป็น Microprocessor ชนิดหนึ่ง โดย CPU แปลเป็นไทยตรงตัวคือ หน่วยประมวลผลกลาง อธิบายให้เข้าใจง่าย ๆ CPU เปรียบได้เหมือนกับสมองของคอมพิวเตอร์ ซึ่งเป็นสิ่งที่จำเป็นต้องมีเนื่องจากต้องใช้สำหรับงานประเภทวิศวกรรมและ Software ที่ใช้ในองค์กร ซึ่งมี Process การทำงานของคอมพิวเตอร์หลากหลายรูปแบบที่ใช้ CPU อย่างเดียวไม่เพียงพอ ทำให้ GPU มีส่วนช่วยในการเพิ่มประสิทธิภาพของการประมวลผล
 
               GPU (Graphics Processing Unit) – เป็น Microprocessor ชนิดพิเศษที่ใช้งานเป็นหลักในการออกแบบวิธีที่จะ Render รูปภาพให้ไวที่สุด GPU ทำหน้าที่รับผิดชอบในการประมวลผลจาก Application ที่มีการใช้งาน Graphic สูง ซึ่ง GPU ถูกสร้างมาเพื่อแก้ไขข้อจำกัดของ CPU และช่วยลดภาระของคอมพิวเตอร์ในการประมวลจาก Application เหล่านั้น แต่ในยุคสมัยปัจจุบัน GPU ไม่ได้เพียงแต่ประมวลผลได้ในเรื่องของ Graphic rendering เท่านั้น แต่ยังมีความสามารถมากพอที่จะคำนวณผลลัพธ์ทางคณิตศาสตร์เพื่อนำเอาไปใช้งานในด้านอื่นๆ นอกจากสายงานที่เกี่ยวข้องกับการใช้งาน Graphic ได้อีกด้วย
 

แล้วอะไรคือความแตกต่าง?

               สำหรับการทำงานพื้นฐานนั้น CPU และ GPU มีการทำงานที่แตกต่างกัน โดยถ้าจะให้เปรียบเทียบกับอวัยวะของมนุษย์นั้น CPU เปรียบเสมือน “สมอง” ซึ่งสามารถใช้ฟังก์ชั่นคำนวณได้ค่อนข้างหลากหลายแต่ทำงานได้แบบ 1-1 แต่สำหรับ GPU จะให้เปรียบเทียบก็คงคล้าย ๆ กับการทำงานร่วมกันของกล้ามเนื้อในร่างกาย โดย GPU จะ Focus การใช้งาน Compute ทั้งหมดไปที่ Task ที่เฉพาะเจาะจง (Compute ร่วมกันช่วยประมวลผลใน Task เดียว) เนื่องจาก CPU มีจำนวน Core น้อย (มากสุดประมาณ 24 Cores) ทำให้ CPU ถูกสร้างขึ้นมาให้ประมวลผลแบบลำดับอนุกรม เพื่อที่จะเพิ่มประสิทธิภาพการทำงานต่อ 1 Task งานให้ดีที่สุด (Compute แบ่งกันประมวลผลแยก Task งานกัน) ซึ่งก็จะใช้เวลาค่อนข้างนานถ้ามี Task เยอะ
 
               สำหรับ GPU เมื่อเทียบกับ CPU แล้วมีการใช้ Core ที่เล็กกว่าและมีจำนวนที่มากกว่าเป็นพัน ๆ ตัวในการช่วยประมวลผลแบบคู่ขนานที่สามารถทำงานได้หลาย ๆ ฟังก์ชั่นพร้อมกันได้ในเวลาเดียว ปัจจุบัน GPU ในยุคใหม่มีความสามารถสูงมากในเรื่องของการ Process มี Memory Bandwidth และประสิทธิภาพโดยรวมที่สูงกว่า CPU ในหลาย ๆ ด้าน ดีกว่าขนาดที่ว่าทำงานได้เร็วกว่า 50-100 เท่า ในการประมวลผลแบบคู่ขนาน ซึ่งนิยมใช้ในงานที่เกี่ยวข้องกับการทำ Machine Learning และ Big Data Analysis
 

ตารางความแตกต่างของ CPU กับ GPU

เราเอา GPU ไปใช้ต่อยอดอะไรได้บ้าง?

               สามารถนำไปทำเป็น GPU Computing ซึ่งก็คือการใช้งาน GPU ร่วมกับ CPU ในการประมวลผลทางวิทยาศาสตร์, ด้าน Analytics, วิศวกรรม, ด้านการบริโภคและ Application ระดับองค์กร
               ในหลาย ๆ ปีที่ผ่านมา GPU ใช้งานในการประมวลผลเกี่ยวกับการแสดงรูปภาพบนหน้าจอและการแสดงภาพเคลื่อนไหวบนจอคอมพิวเตอร์ จากที่เห็นเป็นส่วนใหญ่ในอุตสาหกรรม Gaming แต่ในด้านเทคนิคแล้ว GPU สามารถทำได้มากกว่านั้น ในปัจจุบันใน 1 Task งานนึงต้องการ Process การคำนวณหลาย ๆ ชนิดและด้วยปริมาณที่มหาศาลของการคำนวณ จึงต้องมีอุปกรณ์ที่ทำหน้าที่ได้อย่างเหมาะสมในการรองรับการประมวลผล ทำให้ Graphic Processor โดนหยิบมาใช้งาน สำหรับตัวอย่าง Task งาน มีดังนี้
 
      • เกม
GPU ที่ใช้ต้องเร็ว Render Graphic ที่มีปริมาณมหาศาลได้ แล้ว Render อะไรบ้าง? เช่น Special Effect, รูปร่าง 3 มิติ ซึ่งทั้งหมดทำแบบ Real-time แน่นอนว่าต้องใช้ Computer ที่มี Performance  สูง ๆ ในการประมวลผล โดยเกมในยุคสมัยปัจจุบันไม่เหมาะที่จะใช้ CPU ในการประมวลผลเรื่องของ Graphic แล้ว เนื่องจากจะทำให้ CPU ทำงานหนักเกินไปแล้วไปกระทบกับ Process อื่น ๆ ของเครื่องคอมพิวเตอร์ ยิ่งถ้าเป็นเกมแนว VR (Virtual Reality) GPU ยิ่งเข้ามามีบทบาทในการ Render Graphic และทำให้ภาพที่มองเห็นคล้ายกับโลกความเป็นจริงมากที่สุดด้วยแสงและเงาที่สมบูรณ์แบบ
      • จำลองการแสดงผลแบบ 3 มิติ
GPU ทำให้การใช้งาน Application ที่ใช้จำลองการแสดงภาพ 3 มิติ เช่น Computer-aided design (CAD) มีประสิทธิภาพดีขึ้น โดย Software ดังกล่าวช่วยให้คุณจำลอง Object แบบ 3 มิติได้ โดยใช้ GPU ในการแสดงผลรูปร่างที่คุณออกแบบขึ้นมาแบบ Real-time โดยคุณสามารถหมุนเมื่อดูหลาย ๆ มุม หรือจะขยับชิ้นส่วนก็ย่อมได้
      • Image Process
GPU มีความสามารถในการประมวลหลายล้านรูปแบบเพื่อที่จะหาว่าแตกต่างกันตรงไหน เหมือนกันตรงไหนบ้าง ซึ่งเป็นความสามารถที่เจ๋งจนถูกเอาไปใช้ในอตุสาหกรรมมากมาย เช่น
                        – ขอบชายแดน เพื่อตรวจจับการลักลอบเข้าเมือง
                        – Security เพื่อตรวจจับความผิดปกติต่าง ๆ
                        – X-ray ทางการแพทย์ เพื่อตรวจหาความผิดปกติ เช่น มะเร็ง หรือ
                          ความผิดปกติของระบบร่างกาย เช่น กระดูกและฟัน
      • Big Data
ด้วยปริมาณมหาศาลของ GPU Core และความสามารถในการประมวลผลที่เร็วกว่า CPU 10-100 เท่า GPU จึงเป็นตัวเลือกในการใช้ Process Big Data สำหรับนักวิทยาศาสตร์หรือนักวิจัยที่ศึกษาจากข้อมูลปริมาณมหาศาล หลักการทำงานคือการจำลองข้อมูลขึ้นมาโดยสามารถนำไปใช้งานร่วมกับการจำลองข้อมูลชุดอื่น ๆ ได้ สมมติว่าเราจะจับคู่ยีนส์ในสัตว์เพื่อจะดัดแปลงพันธุกรรม สามารถใช้ Process ข้อมูลแล้ววิเคราะห์สร้างสูตรหรือหาตัวแปรที่เหมาะสมเพื่อหาความแตกต่างของยีนส์แล้วนำมาพัฒนาสายพันธุ์ต่อได้
      • Deep Machine Learning
ได้ยินกันมานานแล้วเกี่ยวกับเรื่อง Machine Learning แต่การมาของ GPU ช่วยยกระดับไปอีกขั้น สำหรับ Deep learning ที่มีการใช้ Neutral networks ที่มีความซับซ้อนในการสร้างระบบที่สามารถตรวจสอบปริมาณของข้อมูลที่ยังไม่ได้มีการแปะป้ายว่า Learning ได้ โดย GPU สามารถ Process ข้อมูลจำพวก Training Data และ Training neutral networks ที่มีปริมาณมหาศาลได้ เช่น การวิเคราะห์จากรูปภาพและวิดีโอ, การจดจำเสียงและภาษากาย, รถยนต์ขับเองได้ และอื่น ๆ อีกมากมาย
 
               สรุปก็คือ GPU ไม่ได้ถูกสร้างมาเพื่อแทนที่ CPU แต่สร้างมาเพื่อเพิ่มความสามารถของ Infrastructure ให้ดียิ่งขึ้น โดยใช้หลักการที่ว่า GPU จะดึงเอางานที่มี Process การใช้ Compute หนัก ๆ ที่เป็นส่วนหนึ่งของ Application เอาไปทำแทน แล้วเหลือส่วนที่เป็น Code ให้ทำงานบน CPU โดยจากมุมมองของผู้ใช้งาน Application ที่มีโครงสร้างหลังบ้านเป็นแบบที่กล่าวมาพบว่าหลังจากที่ User ใช้งาน ได้รับ Feedback ที่บอกว่าดีขึ้นและเร็วขึ้น
 
 
เป็นอย่างไรกันบ้างครับ หวังว่า Blog นี้จะเป็นประโยชน์ต่อท่านผู้อ่านที่กำลังสนใจที่จะปรับปรุงระบบหลังบ้านของท่าน และหวังว่าจะเป็นประโยชน์กับทุกท่านนะครับ ขอบคุณครับ
 
หมายเหตุ: Blog นี้เป็นเพียงความคิดเห็นส่วนตัว  อาจมีข้อผิดพลาด หรือการเปลี่ยนแปลงได้ตามความเหมาะสมครับ
 
 
— Cloud HM