“ราคาคุ้น NVIDIA ทำนิวไฮ”, “หุ้น NVIDIA พุ่ง 200%”, “มูลค่า NVIDIA แซง Apple แล้ว” พาดหัวลักษณะนี้น่าจะเป็นที่ชาชินในช่วง 1-2 ปีที่ผ่านมา หลังกระแส AI บูมมากขึ้น
หลายๆ คนน่าจะรู้อยู่แล้วว่าปัจจัยที่ทำให้ NVIDIA ขึ้นมาสู่ระดับนี้ได้ คือการครองตลาด GPU ที่ถูกนำไปใช้ในการเทรน AI จนถึงขนาดที่ว่า บริษัทไอทีใหญ่ๆ หรือบริษัทวิจัยที่ต้องการ GPU ของ NVIDIA ไปใช้งาน มีแต่เงินอย่างเดียว ก็ใช่ว่าจะได้ของไป แต่ยังต้องรอคิวหลักหลายเดือน จนถึงปีเลยด้วยซ้ำไป
แต่คำถามคืออะไรที่ทำให้การ์ดจอ NVIDIA เข้าไปเป็นตัวเลือกหลัก (และอาจจะตัวเลือกเดียว) ของบริษัทที่ต้องการเทรน AI ทั้งที่คู่แข่ง GPU ใหญ่ๆ อย่าง AMD ก็มี? เป็นเพราะ GPU ของ NVIDIA ดีกว่าอย่างเดียวเหรอ? บทความนี้พาจะไขเหตุผลเบื้องลึกกว่านั้น
หากจะอธิบายอย่างง่าย ก็ต้องเข้าใจพื้นฐานการทำงานของ GPU ก่อนว่า GPU ถูกออกแบบมาให้รองรับการประมวลผลที่เรียกว่าการประมวลผลแบบขนาน (Parallel Computing) หรือสามารถรองรับการประมวลงาน 1 คำสั่ง (task) ที่แบ่งส่วนประมวลผลได้พร้อมๆ กันในเวลาเดียวกันได้รวดเร็วกว่า จากการที่มีจำนวนคอร์ประมวลผลมหาศาล หลักหลายพันคอร์ในปัจจุบัน
ตัวอย่างของงานที่แบ่งส่วนประมวลผลได้ คือการประมวลผลภาพกราฟิคบนคอมพิวเตอร์ GPU จะรับคำสั่งในการประมวลผลเฟรม 1 เฟรมจาก CPU (1 คำสั่ง) แต่ต้องประมวลผลจากชุดข้อมูลที่หลากหลายพร้อมๆ กัน ไม่ว่าเป็นโพลีกอน 3 มิติต่างๆ ในเฟรม แสงตกกระทบของแต่ละโพลีกอน การสะท้อนแสงของโพลีกอน เอามาเรียงเป็นแต่ละพิกเซลบนหน้าจอเป็นต้น
เปรียบเทียบกับกรณีของ CPU ที่ถูกออกแบบมาให้ประมวลผลได้ทีละงาน (Serial Computing) ต่อคอร์ประมวลผล แม้จะมีความพยายามในการพัฒนาให้ CPU รองรับการประมวลผลแบบขนานมากขึ้น เช่น เทคโนโลยี Hyper-Threading ของ Intel (1 คอร์มี 2 เธรด ประมวลผลได้ 2 งานพร้อมกัน) หรือการเพิ่มจำนวนคอร์ในซีพียูยุคใหม่ก็ตาม (แต่ก็แค่หลักสิบ) แต่ก็ยังถือว่ายังไม่เหมาะและช้ากว่าการประมวลผลแบบขนานบน GPU ได้อยู่ดี
ภาพจาก Lawrence Livermore National Laboratory
ขณะที่การเทรนโมเดล AI ไม่ว่าจะ Machine Learning หรือ Deep Learning ก็เป็นงานประเภท แบ่งส่วนประมวลผลได้ เลยเป็นสาเหตุ GPU ถูกนำมาใช้งาน
จุดเริ่มต้นของ NVIDIA ในปี 1993 คือ Jensen Huang ผู้ก่อตั้งและซีอีโอมองเห็นโอกาสว่าเกม กำลังกลายเป็นความท้าทายในแง่วิศวกรรมด้านการประมวลผล เลยตั้งบริษัทของตัวเองเพื่อพัฒนา GPU โดยเฉพาะ ซึ่งตัว GPU ของ NVIDIA ก็ได้รับความนิยมในตลาดมากขึ้นเรื่อยๆ
ในช่วงแรก งานด้านกราฟิคเป็นเวิร์คโหลดเดียวที่เหมาะสมกับการใช้ GPU แต่จุดเปลี่ยนคือการเกิดขึ้นของแนวคิด GPGPU (General-Purpose Graphics Processing Unit) ที่มองว่า ความสามารถในการประมวลผลขนานของ GPU มันสามารถนำไปใช้สำหรับเวิร์คโหลดอื่นๆ ได้ ทำให้ในช่วงปี 2006 NVIDIA เลยปล่อยซอฟต์แวร์ของตัวเองที่ชื่อว่า CUDA ออกมาให้นักพัฒนา
CUDA (Compute Unified Device Architecture) เป็นซอฟต์แวร์เฟรมเวิร์ค ที่เปิดให้นักพัฒนาสามารถเขียนเกมหรือแอป ให้สามารถจัดการเวิร์คโหลดและการประมวลผลของ GPU ได้โดยตรงและมีประสิทธิภาพมากขึ้นผ่าน API ซึ่งจุดประสงค์ของการปล่อย CUDA ออกมา ไม่ใช่แค่ต้องการให้นักพัฒนาเกม สามารถสั่งงาน GPU ได้อย่างมีประสิทธิภาพมากขึ้นแต่เพียงอย่างเดียว แต่ยังเปิดโอกาสให้นักพัฒนาแอปประเภทอื่นๆ สามารถเขียนแอปที่ดึงประสิทธิภาพของ GPU ออกมาได้มากขึ้นเช่นกัน ตามแนวคิดของ GPGPU
เมื่อ NVIDIA เป็นทั้งเจ้าของฮาร์ดแวร์ GPU และซอฟต์แวร์ CUDA การทำงานร่วมกันระหว่าง 2 เลเยอร์นี้เลยค่อนข้างแนบแน่น แม้ในตลาดช่วงแรกจะมีซอฟต์แวร์ที่เป็นโอเพนซอร์สอย่าง OpenCL มาเป็นตัวเลือกให้นักพัฒนา แต่ด้วยข้อได้เปรียบของการเป็นเจ้าของแพลตฟอร์ม ทำให้ NVIDIA ค่อนข้างกีดกันและไม่ซัพพอร์ตให้ OpenCL สามารถดึงประสิทธิภาพของ GPU ออกมาได้มากเท่า ส่งผลให้ CUDA ค่อนข้างได้รับความนิยมมากกว่า
อีกหนึ่งจุดเปลี่ยนที่สำคัญ ที่ทำให้ CUDA กลายเป็นมาตรฐานของโลก AI คือรายงานวิจัย “Large-scale Deep Unsupervised Learning using Graphics Processors” เมื่อปี 2009 โดยทีมวิจัยสแตนฟอร์ด มี Andrew Ng ร่วมทีม รายงานนี้แสดงให้เห็นว่าการใช้ GPU ที่มีราคาถูก (ในสมัยนั้น) คือการ์ด NVIDIA GeForce GTX 280 สามารถเร่งความเร็วในการฝึก AI แบบ Deep Learning ได้อย่างชัดเจน เป็นเหมือนใบเบิกทางสำหรับการฝึก AI ประสิทธิภาพสูง
เมื่อ NVIDIA มีแพลตฟอร์มที่แข็งแรงทั้งฮาร์ดแวร์และซอฟต์แวร์ ทำให้เมื่อมีงานวิจัย AI มากขึ้น นักวิจัย AI ก็เลยเลือก ที่จะใช้แพลตฟอร์มของ NVIDIA ในการเทรน AI ประกอบกับฝั่ง NVIDIA เองก็พัฒนา CUDA ให้ตอบโจทย์งานสายนี้อยู่ตลอด เช่นการออกไลบรารี cuDNN สำหรับ Deep Learning หรือ cuBLAS สำหรับการคำนวนพีชคณิตเชิงเส้น (linear algebra) เป็นต้น
ในอีกด้าน เหล่าซอฟต์แวร์เฟรมเวิร์คสำหรับ Deep Learning ที่ได้รับความนิยมอย่าง TensorFlow หรือ PyTorch ก็เขียนมารองรับ CUDA ได้แบบเนทีฟ ก็ยิ่งเป็นตะปูตอกฝาโลงให้ NVIDIA / CUDA ผูกขาดตลาดชิป AI ไปกลายๆ ไม่รวมแง่การตลาด NVIDIA เองก็มีความร่วมมือกับนักวิจัยหลายๆ แหล่ง เช่น U Berkeley หรือ Meta ในการปรับจูนโมเดล AI ให้ทำงานได้ดีขึ้นบน CUDA
ในอุตสาหกรรมเองก็มีความพยายามจะทลายกำแพงผูกขาดเรื่องนี้ของ NVIDIA เช่นกัน อย่าง AMD ก็มีการทำเฟรมเวิร์ค ROCm ขึ้นมาเพื่อทดแทน CUDA, Intel บวกกับพันธมิตร Arm, Google, Samsung, Qualcomm พยายามพัฒนา oneAPI มาสู้ หรือการพยายามผลักดันภาษาสำหรับเทรน AI ที่ใช้งานง่ายกว่า CUDA อย่างโครงการ Triton ของ OpenAI เป็นต้น
ปัญหาของเฟรมเวิร์คหรือภาษาเหล่านี้ อาจเป็นปัญหาเชิงไก่กับไข่ คือจำนวนผู้ใช้งานยังไม่เยอะ เพราะเครื่องมือหรือการซัพพอร์ตต่างๆ ยังไม่เท่า CUDA ที่เริ่มต้นมาก่อนและพัฒนามาตลอด มี ecosystem ที่แข็งแรงกว่า ไม่มีอะไรจูงใจให้ นักพัฒนา องค์กรหรือนักวิจัยเปลี่ยนซอฟต์แวร์หรือภาษาในการเทรน AI มากพอ เพราะการเปลี่ยนก็มีต้นทุน และเมื่อจำนวนคนใช้งานยังไม่เยอะ ก็ไม่มีการลงทุนเพื่อพัฒนาต่อยอดเครื่องมือเพิ่มเท่าไหร่นัก
ขณะที่โลก AI มีเทคโนโลยีและโมเดลใหม่ๆ ออกมาให้ทดลองอยู่ทุกวัน โค้ดที่นักวิจัยแชร์ออกมามักรองรับ CUDA เป็นหลัก การใช้งานเทคโนโลยีอื่นๆ อาจจะรองรับงานได้บางส่วน แต่มีปัญหากับหลายโครงการ หาชุมชนที่พบปัญหาและแนวทางแก้ไขได้ยากกว่า ขณะที่วงการวิ่งไปข้างหน้าอย่างรวดเร็ว ทุกคนจึงถูกกดดันให้อิงกับเทคโนโลยีที่มีการรองรับมากที่สุดเพื่อที่จะวิ่งตามให้ทัน
คนที่พอจะสรุปภาพรวมของตลาดอุตสาหกรรมนี้ได้ดีที่สุด น่าจะเป็น Raja Koduri ที่เคยเป็น Chief Architect ทั้งฝั่ง Intel และ Radeon (ฝ่ายกราฟิคของ AMD) ที่ต้องสู้รบกับ NVIDIA มาทั้งชีวิต เขาเล่าเอาไว้บน X ว่าตัวเขาเคยถูกทีมวิศวกรมองค้อน ตอนที่สั่งให้เปลี่ยนจากการใช้ GeForce ไปเป็นการ์ดจอตัวอื่น ซึ่งเป็นภาพสะท้อนว่า ต้นทุนเรื่องเวลาและต้นทุนของวิศวกร มันมีมูลค่ามากกว่าราคาของ GPU ไม่ว่าจะรุ่นไหนก็ตาม
Raja เล่าด้วยว่าสาเหตุหนึ่งที่ NVIDIA ครองตลาด (ในภาพรวม) คือการมีผลิตภัณฑ์ GPU ทั้งฝั่งเกมมิ่งและฝั่งดาต้าเซ็นเตอร์ ซึ่งมีสถาปัตยกรรมและ stack เดียวกัน ความเข้าถึงง่ายของ GPU เกมมิ่งที่วางขายทั่วโลก ในราคาไม่แพง เป็นประตูที่เปิดโอกาสให้นักพัฒนาตัวเล็กๆ สามารถซื้อมาทดลองใช้งาน ลองโค้ดดิ้งบนแพลตฟอร์มของ NVIDIA ได้ง่ายๆ
และทั้งหมดนี้ก็น่าจะเป็นภาพสะท้อนเบื้องหลังของกราฟหุ้น NVIDIA ที่พุ่งสูงขึ้นเรื่องๆ ในช่วง 1-2 ปีที่ผ่านมา จนแซง Microsoft, Apple, Amazon ที่ลอยลำมานาน ขึ้นมาเป็นบริษัทเทคที่มูลค่าสูงที่สุดในโลกได้