เราคงเคยได้ยินว่า จำเป็นต้องใช้ 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

Intel CPU Coffee Lake Microarchitectures Hexa-core die annotated. Credit: https://en.wikichip.org/wiki/intel/microarchitectures/coffee_lake
Intel CPU Coffee Lake Microarchitectures Hexa-core die annotated. Credit: https://en.wikichip.org/wiki/intel/microarchitectures/coffee_lake

GPU

แต่ GPU มีแนวคิดในการออกแบบที่ต่างออกไปโดยสิ้นเชิงคือ ทำงานง่าย ๆ หลาย ๆ งานขนานกัน (Parallel) ให้ได้พร้อมกันจำนวนมากที่สุด (กว้าง) Optimize โดยมี Core จำนวนมาก เช่น NVIDIA Turing TU102 ดังรูปด้านล่าง ไม่มีอะไรเลย มีแต่สี่เหลี่ยมสีเขียว คือ Streaming Multiprocessors (SM) 72 ตัว ในแต่ละตัวบรรจุ 64 CUDA Core ไว้ภายใน รวมเป็น 4,608 Core

เพราะเหตุนี้ GPU จึงเหมาะกับการประมวลผล Graphic บนหน้าจอความละเอียดสูงหลายล้าน Pixel ในปัจจุบัน เพราะแต่ละ Pixel ต้องการการประมวลผลเหมือน ๆ กันในทุก ๆ จุด

และเหมาะกับใช้เทรน Deep Learning ที่มีหลายล้าน Neuron ด้วย เพราะแต่ละ Neuron ก็ต้องการการประมวลผลเหมือน ๆ กัน โดยเฉพาะ Deep Neural Network แบบ Convolutional Neural Network (CNN)

เรามาเริ่มกันเลย

Open In Colab

แชร์ให้เพื่อน:

Surapong Kanoktipsatharporn on FacebookSurapong Kanoktipsatharporn on LinkedinSurapong Kanoktipsatharporn on Rss
Surapong Kanoktipsatharporn
Solutions Architect at Bua Labs
The ultimate test of your knowledge is your capacity to convey it to another.

Published by Surapong Kanoktipsatharporn

The ultimate test of your knowledge is your capacity to convey it to another.