เราคงเคยได้ยินว่า จำเป็นต้องใช้ GPU ในการเทรน Deep Learning ที่ Deep Learning ทำงานได้ดีในยุคปัจจุบัน ก็เพราะมี Data มหาศาลจากอินเตอร์เน็ต และ มี Hardware คือ GPU ทำให้การวิจัยอัลกอริทึมใหม่ ๆ สร้างโมเดล Deep Neural Network แบบใหม่ ๆ เทคโนโลยีพัฒนาได้อย่างรวดเร็ว
แต่มันเป็นเรื่องจริงหรือไม่ GPU มีผลแค่ไหน เทียบกับเราใช้ CPU ธรรมดา เราจะมาทดสอบกัน
CPU
CPU นั้นออกแบบมาให้ทำงานทีละงาน (Serial) ให้เร็วที่สุด ไม่ว่าจะซับซ้อนเท่าไร (ลึก) มีชุดคำสั่งพิเศษโดยเฉพาะ, รองรับแสง สี เสียง เน็ตเวิร์ค Security อุปกรณ์ต่อพ่วง, มีการ Optimize เอางานมาต่อ ๆ กันเป็น Pipeline, มีคาดเดาคำสั่งต่อไป เพื่อประหยัดเวลา, etc. ดังนั้น CPU 1 หน่วย จะใหญ่มาก แต่หลัง ๆ เริ่มมีการเพิ่มจำนวน Core เพื่อรองรับการประมวลผลแบบขนาน ดังเช่น Intel CPU Coffee Lake รูปด้านล่างมี 6 Core เรียกว่า Hexa-Core

GPU
แต่ GPU มีแนวคิดในการออกแบบที่ต่างออกไปโดยสิ้นเชิงคือ ทำงานง่าย ๆ หลาย ๆ งานขนานกัน (Parallel) ให้ได้พร้อมกันจำนวนมากที่สุด (กว้าง) Optimize โดยมี Core จำนวนมาก เช่น NVIDIA Turing TU102 ดังรูปด้านล่าง ไม่มีอะไรเลย มีแต่สี่เหลี่ยมสีเขียว คือ Streaming Multiprocessors (SM) 72 ตัว ในแต่ละตัวบรรจุ 64 CUDA Core ไว้ภายใน รวมเป็น 4,608 Core
NVIDIA Turing TU102 Full GPU with 72 SM Units Diagram. Credit: https://devblogs.nvidia.com/nvidia-turing-architecture-in-depth/ NVIDIA Turing TU102 GPU Core. Credit: https://devblogs.nvidia.com/nvidia-turing-architecture-in-depth/
เพราะเหตุนี้ GPU จึงเหมาะกับการประมวลผล Graphic บนหน้าจอความละเอียดสูงหลายล้าน Pixel ในปัจจุบัน เพราะแต่ละ Pixel ต้องการการประมวลผลเหมือน ๆ กันในทุก ๆ จุด
และเหมาะกับใช้เทรน Deep Learning ที่มีหลายล้าน Neuron ด้วย เพราะแต่ละ Neuron ก็ต้องการการประมวลผลเหมือน ๆ กัน โดยเฉพาะ Deep Neural Network แบบ Convolutional Neural Network (CNN)