รู้จักจีพียูสถาปัตยกรรม NVIDIA Turing พลังมังกร 3 หัวทำ Ray Tracing พลิกโลกกราฟิก

by mk
22 August 2018 - 10:54

ข่าวที่น่าสนใจของโลกกราฟิกช่วงนี้หนีไม่พ้นการเปิดตัวจีพียูสถาปัตยกรรม NVIDIA Turing ที่ยักษ์เขียว NVIDIA ทยอยเปิดตัวการ์ดจอทั้ง Quadro RTX สำหรับมืออาชีพ และ GeForce RTX สำหรับเกมมิ่ง ในเวลาห่างกันเพียงไม่กี่วัน

NVIDIA ชูว่า Turing เป็นการอัพเกรดครั้งใหญ่นับตั้งแต่การเปิดตัว CUDA Core ในช่วงปลายปี 2006 หรือประมาณ 12 ปีก่อน และโดยเนื้อในแล้ว Turing ก็มีความแตกต่างจากรุ่นพี่ Pascal (GeForce 10) ที่ออกในปี 2016 อย่างมีนัยสำคัญ บทความนี้จะอธิบายข้อมูลโดยสรุปว่า Turing มีอะไรบ้าง

ไม่ได้มีแต่คอร์ GPU แต่ยังมีคอร์ AI และคอร์ RT

ถ้าติดตามพัฒนาการของวงการจีพียู จะเห็นว่าในยุคของ GeForce ก่อนหน้านี้ (นับจนถึง Pascal) เป็นพัฒนาการในเชิงปริมาณ เช่น เพิ่มคล็อคหรือเพิ่มจำนวนคอร์ CUDA เป็นหลัก บวกกับฟีเจอร์รายล้อมอื่นๆ ที่ไม่ได้อยู่ในตัวจีพียูโดยตรง เช่น อัพเกรดแรมเป็น GDDR5X/HBM2 หรือเปลี่ยนชนิดของบัสเป็น NVLink แต่ในภาพรวมแล้วก็ยังเป็นการอัดประสิทธิภาพของจีพียูให้มากขึ้นกว่ารุ่นก่อน

ทิศทางนี้เริ่มเปลี่ยนแปลงในปี 2017 พร้อมกับสถาปัตยกรรม Volta ที่เพิ่มคอร์ประเภทที่สองคือ Tensor Core สำหรับเร่งการประมวลผล machine learning (ML) สำหรับใช้ในงานประมวลผล AI ซึ่งกำลังมาแรงในรอบ 2-3 ปีนี้

Volta มีสินค้าออกขายจริงเพียงแค่ 2 ตัวคือ Tesla V100 กับ Titan V ซึ่งไม่ใช่สินค้าสำหรับคอนซูเมอร์โดยตรง ทำให้ชื่อเสียงของ Tensor Core ยังจำกัดอยู่เฉพาะในแวดวง AI เป็นหลัก

พอมาถึงปี 2018 กับสถาปัตยกรรม Turing ที่เป็นผู้สืบทอดตัวจริงของ Pascal ก็มีคอร์ประเภทที่สามเพิ่มเข้ามาคือ RT Core (RT ย่อมาจาก Ray Tracing) ที่ NVIDIA คุยว่าจะเข้ามาพลิกโฉมวงการกราฟิกไปอย่างสิ้นเชิง

เท่ากับว่า Turing มีคอร์ประมวลผลทั้งหมด 3 แบบ ได้แก่ CUDA Core แบบดั้งเดิม, Tensor Core สำหรับงาน AI และ RT Core สำหรับงานกราฟิกแบบใหม่ คอร์ทั้งสามเปรียบเสมือนมังกร 3 หัวที่จะช่วยเร่งพลังประมวลผลกราฟิกจากเดิมอย่างก้าวกระโดด

ทำไมต้องมี RT Core? รู้จักเทคนิค Ray Tracing

หลังจากนี้ไป คำว่า ray tracing จะแมสขึ้นมาก ก่อนอื่นเรามารู้จักแนวคิดของมันดีกว่าครับ

ray tracing เป็นเทคนิคการเรนเดอร์ภาพอย่างหนึ่งของวงการคอมพิวเตอร์กราฟิก โดยเป็นการยิงลำแสง (ray) ให้กระทบวัตถุในโลก 3D แล้วติดตามวัดค่า (tracing) การกระทบของลำแสงลำนั้น

จุดเด่นของเทคนิค ray tracing คือความสมจริงของภาพ เพราะเป็นการเลียนแบบการทำงานของการมองเห็นแสงกระทบวัตถุในโลกจริง เมื่อเทียบกับการเรนเดอร์ภาพแบบเดิมที่เรนเดอร์ทั้งภาพพร้อมกัน (rasterrization)

อย่างไรก็ตาม ข้อเสียของ ray tracing คือเปลืองทรัพยากรในการประมวลผลมาก เพราะต้องติดตามลำแสงแต่ละลำแยกกันต่างหาก โดยเฉพาะในกรณีที่มีลำแสงเป็นจำนวนมากๆ (หลักแสนหรือล้านลำ) หรือมีความซับซ้อนในแง่แหล่งแสงหลายแหล่งพร้อมกัน อีกทั้งยังต้องคำนวณทีละพิกเซลที่กระทบกล้องที่แทนสายตาของผู้เล่นด้วย

ปัจจัยเหล่านี้ทำให้ ray tracing ถูกใช้ในงานที่ไม่ต้องการความเร็ว เช่น ภาพยนตร์ที่สามารถเรนเดอร์รอไว้ล่วงหน้าได้ แต่ในเกมที่ต้องเรนเดอร์ภาพใหม่ทุกครั้ง ray tracing ถือเป็นเทคนิคที่มี "ราคา" แพงเกินกว่าที่จะรับไหว ถือเป็นสิ่งหรูหราที่อยู่ในโลกของภาพยนตร์แต่ยังไม่มาถึงโลกของเกม

ภาพจาก NVIDIA ซีนที่ปิดการทำ ray tracing (ซ้าย) กับเปิดใช้ ray tracing (ขวา)

จุดเปลี่ยนเกมของเรื่องนี้คือ NVIDIA สามารถสร้าง RT Core ที่เป็นหน่วยประมวลผลเฉพาะการทำ ray tracing ได้อย่างมีประสิทธิภาพขึ้นมาก ตรงนี้ตัวเลขของ NVIDIA มีสถิติวัดเป็นหน่วยใหม่ขึ้นมาคือ 10 Gigaray/sec หรือ 1 หมื่นล้านลำแสงต่อวินาที

RT Core สามารถทำงานสมรรถนะสูงขนาดนี้ได้อย่างไร? ตรงนี้ NVIDIA ยังไม่เผยรายละเอียดทางเทคนิคออกมามากนัก แต่ผลลัพธ์คือการทำ ray tracing แบบเรียลไทม์ที่เคยเป็นแค่ความฝัน กลับกลายเป็นความจริงได้แล้วในการ์ดจอระดับคอนซูเมอร์

วิดีโอเดโมของ NVIDIA ในการทำ ray tracing สะท้อนแสงบนผิวรถ Porsche

AI เกี่ยวอะไรกับการประมวลผลกราฟิก?

ถัดจาก RT Core และการทำ Ray Tracing แล้ว หลายคนอาจสงสัยว่าแล้ว Tensor Core ที่ใช้งานด้าน AI จะมาเกี่ยวข้องอะไรกับโลกของกราฟฟิกล่ะ

คำตอบของ NVIDIA คือโลกกราฟิกนำ AI มาช่วยเสริมการเรนเดอร์ภาพหลายอย่างให้ดูสมจริงขึ้น ตัวอย่างที่จับได้ชัดเจนคือการทำ Up-Res หรือขยายกราฟิกความละเอียดต่ำเป็นความละเอียดสูง เป็นการใช้ AI สร้างภาพบางส่วนขึ้นมาใหม่ ให้ผลที่ดีกว่าเทคนิค bicubic filtering ที่ใช้กันแต่เดิม

ภาพจาก NVIDIA

อีกเทคนิคหนึ่งที่ใช้ AI ช่วยได้คือ Deep Learning Super Sample (DLSS) หรือใช้ AI ช่วยแก้ไขขอบของวัตถุ ซึ่งเรารู้จักกันดีในชื่อการทำ anti-alias

ภาพจาก NVIDIA

นอกจากนี้ยังมีเทคนิคการใช้ AI/machine learning/deep learning กับงานกราฟิกอีกมากมาย ที่คงไม่ได้ลงรายละเอียดไว้ในที่นี้

NVIDIA ได้บุกเบิกการใช้ AI บน Tensor Core กับงานกราฟิกมาสักระยะหนึ่งแล้ว (ตั้งแต่ยุค Volta) โดยใช้ชื่อแพลตฟอร์มว่า NGX และมีงานฝั่งการสร้างโมเดลบนซูเปอร์คอมพิวเตอร์ขนาดใหญ่ เพื่อนำโมเดลการสร้างกราฟิกมารันบนจีพียูระดับคอนซูเมอร์ด้วย รายละเอียดดูได้จาก เว็บไซต์ของ NGX

NVIDIA RTX แพลตฟอร์มการประมวลผลกราฟิกยุคใหม่

เมื่อบวกพลังของ CUDA เดิม กับของใหม่คือ ray tracing (RT Core) และ AI (Tensor Core) ทำให้ NVIDIA ได้แพลตฟอร์มการประมวลผลกราฟิกแบบใหม่ที่เรียกว่า NVIDIA RTX

จากแผนภาพของ NVIDIA จะเห็นเลเยอร์ล่างสุดที่เป็นการประมวลผลของฮาร์ดแวร์ แยกออกเป็น 4 ด้านคือการประมวลผลกราฟิกราสเตอร์แบบเดิม (จีพียูรันปกติ), การทำ ray tracing (RT Core), การนำจีพียูมาประมวลผลงานทั่วไปหรือ compute (จีพียูรันงาน CUDA) และการประมวลผล AI (Tensor Core)

ส่วนเลเยอร์ถัดมาเป็นฝั่งของไลบรารีกราฟิกที่รองรับการทำ ray tracing ด้วย ตรงนี้ NVIDIA มีไลบรารีของตัวเองชื่อ Optix และไปจับมือกับไลบรารีกราฟิกยอดนิยมในตลาดอย่าง DirectX ของไมโครซอฟท์ (ฟีเจอร์ชื่อ DXR = DirectX Raytracing) และ Vulkan ที่มาแทน OpenGL (ฟีเจอร์ของ Vulkan กำลังพัฒนา) นั่นแปลว่าเกมที่เขียนบน DirectX หรือ Vulkan ก็จะใช้ประโยชน์จากการทำ ray tracing ได้ทันที

เลเยอร์บนสุดเป็นภาษาและฟอร์แมตที่ใช้เก็บข้อมูลฉากสามมิติ NVIDIA มีภาษาของตัวเองชื่อ Material Definition Language (MDL) ที่เพิ่งเปิดเป็นโอเพนซอร์ส และในวงการภาพยนตร์ก็มี Universal Scene Description (USD) ของบริษัท Pixar

การมีคอร์หลายตัวช่วยกันประมวลผลงานแต่ละอย่างร่วมกัน ทำให้เกิดเป็นการประมวลผลกราฟิกที่เรียกว่า Hybrid Rendering ซึ่งงานในโลกความเป็นจริงจะเป็นลักษณะนี้ ต้องใช้คอร์อย่างน้อย 1-2 อย่างช่วยกันเรนเดอร์ ผลเลยทำให้ประสิทธิภาพของการเรนเดอร์ดีขึ้นแบบก้าวกระโดด

ตัวอย่างประสิทะิภาพที่ NVIDIA นำมาโชว์ ก็มาพร้อมกับหน่วยวัดแบบใหม่ (อีกแล้ว) คือ 78T RTX-OPS หรือ 78 ล้านล้านคำสั่ง RTX ต่อวินาที (เป็นตัวเลขของ GeForce RTX 2080 Ti ซึ่งก็ไม่มีใครรู้ชัดเจนว่าหมายถึงอะไรแบบเป๊ะๆ) ส่วนการเปรียบเทียบกับ Pascal ก็คุยว่าเหนือกว่ากันสูงสุดถึง 6 เท่าในกรณีที่ดีที่สุด

ในรายละเอียดทางเทคนิคว่า RTX-OPS เป็นการวัดที่แม่นยำและสมเหตุสมผลแค่ไหน เป็นเรื่องที่ต้องพิสูจน์กันในระยะยาว แต่ที่แน่ๆ คือ Turing เปรียบเสมือน "มังกรสามหัว" ที่มีคอร์ 3 แบบช่วยกันทำงานเฉพาะทางที่ซับซ้อน ช่วยยกระดับการประมวลผลกราฟิกไปอีกขั้น

เกมและซอฟต์แวร์ต้องซัพพอร์ตด้วยจึงจะเห็นผล

ทั้งหมดที่ว่ามาคงไม่มีประโยชน์เลย หากฮาร์ดแวร์มีศักยภาพแต่ซอฟต์แวร์ดันไม่รองรับฟีเจอร์เหล่านี้ แต่แน่นอนว่ายักษ์ใหญ่ระดับ NVIDIA ทั้งทีคงไม่เปิดตัวฮาร์ดแวร์มาเฉยๆ แล้วรอให้ผู้พัฒนาซอฟต์แวร์ไล่ตามหลัง ซึ่งอาจต้องใช้เวลากันหลายปี

NVIDIA ได้ร่วมมือกับพาร์ทเนอร์จำนวนมากเพื่อปรับซอฟต์แวร์ให้รองรับ RTX มาสักระยะแล้ว ที่เปิดตัวในงานก็มากันเกือบหมดวงการ ในฝั่งซอฟต์แวร์กราฟิก มีตั้งแต่ชื่อที่คุ้นเคยอย่าง Autodesk Arnold, Adobe Dimension CC, Blender Cycles, ไปจนถึงงานเฉพาะทางเฉพาะอุตสาหกรรม เช่น ESRI ArcGIS Pro, SolidWorks, Allegorithmic Substance Designer, Pixar Renderman (รายชื่อทั้งหมด)

ส่วนสายเกมที่รองรับก็มีบิ๊กเนมเข้าร่วมพอสมควร เกมเอนจินที่ร่วมเวทีเปิดตัวคือ Unreal Engine ที่มาพร้อมเดโมจาก Star Wars

เกมจริงๆ ที่ไม่ใช่แค่เอนจิน และมาร่วมงานเปิดตัวด้วยคือ Shadow of Tomb Raider ในวิดีโอเดโม เป็นการโชว์สภาพแสงที่เปลี่ยนไปตลอดเวลา เพื่อให้เห็นการทำ ray tracing แบบเรียลไทม์ในเกม

Metro Exodus โชว์กราฟิกจากแหล่งแสงที่เป็นดวงอาทิตย์ ทะลุส่วนต่างๆ ของบ้านเข้าไปภายในบ้าน

Battlefield V มาพร้อมเอฟเฟคต์ระเบิด ลูกไฟ แสงสะท้อนบนผิวน้ำ และผิวของรถยนต์ที่มันวาว

และเกมอื่นๆ ที่โชว์โลโก้อีกมาก เช่น PUBG, We Happy Few, Hitman 2, Serious Sam 4, Final Fantasy XV, Atomic Heart

ยินดีต้อนรับสู่ RTX Family: เริ่มจาก Quadro และ GeForce รุ่นบน

การเปิดตัวสถาปัตยกรรม Turing มาพร้อมกับตัวสินค้าการ์ดจอ 2 ตระกูลคือ Quadro RTX และ GeForce RTX (2080 Ti, 2080, 2070)

การ์ดจอตัวบนๆ อย่าง Quadro RTX หรือ GeForce RTX 2080 Ti เป็นชิปตัวเดียวกันที่เรียกตามโค้ดเนมว่า "Big Turing" โดยตัดทอนจำนวนคอร์ลงมาตามระดับราคา (และ yield ของการผลิต) แต่ถ้าดูจากสไตล์ของ NVIDIA ที่เราคุ้นเคยกัน ก็คงทราบดีว่าอีกสักพักจะมีการซอยรุ่นย่อยๆ ตามมาอีกมาก

บทความนี้จะไม่ลงรายละเอียดของการ์ดจอแต่ละตัวในแง่ผลิตภัณฑ์ ว่ามีฟีเจอร์ย่อยอะไรบ้าง เพราะเน้นไปที่ตัวสถาปัตยกรรม Turing เป็นหลักเท่านั้น (สเปกละเอียดของการ์ดจอแต่ละตัวสามารถอ่านได้จากข่าวเกี่ยวกับผลิตภัณฑ์ตัวนั้นๆ หรือในเว็บไซต์ของ NVIDIA เอง)

Turing ยังจะถูกนำไปใช้ในแง่มุมอื่นๆ เช่น เป็นจีพียูของชิป SoC ตระกูล Tegra, Xavier หรือเซิร์ฟเวอร์ประมวลผลระดับสูง (ที่เปิดตัวมาแล้วพร้อมกับ Quadro คือ NVIDIA DGX-2) และอายุสถาปัตยกรรมของมันน่าจะยาวนานไปอีกหลายปี ต่อให้มีสถาปัตยกรรมใหม่ที่อัพเกรดจาก Turing ในอีก 2-3 ปีข้างหน้า ก็น่าจะอิงอยู่บนโครงสร้างหลักที่ Turing บุกเบิกเอาไว้

อนาคตของโลกจีพียูยุค Post-Turing

การเปลี่ยนผ่านครั้งสำคัญของสถาปัตยกรรม Turing และแพลตฟอร์ม RTX ส่งผลสะเทือนทำให้ NVIDIA เลือกเปลี่ยนแบรนด์ของตัวเองจาก GTX เป็น RTX เพื่อสะท้อนให้เห็นความสำคัญของการเปลี่ยนแปลงครั้งนี้

การมาถึงของ Turing ทำให้โลกกราฟิก (โดยเฉพาะเกมและงานกราฟิกของมืออาชีพ) ต้องเปลี่ยนไป เพราะมันสามารถทำ ray tracing ได้แบบเรียลไทม์ เป็นการปลดล็อคประตูบานใหม่ให้วงการกราฟิกเกมขยับไปอีกขั้น แน่นอนว่ากว่าซอฟต์แวร์ต่างๆ จะรองรับและแสดงศักยภาพของมันออกมาได้อย่างเต็มที่ คงต้องใช้เวลาอีกหลายปี (ลักษณะเดียวกับตอนออกซอฟต์แวร์ CUDA)

ฝั่งของผู้บริโภคทั่วไปสายเกมเมอร์ ข้อดีที่เห็นได้ชัดเจนย่อมเป็นเกมที่กราฟิกสวยงาม สมจริงมากขึ้น แลกกับค่าตัวของการ์ดจอรุ่นใหม่ๆ ที่แพงขึ้นเรื่อยๆ เราย่อมจะได้เห็นกราฟิกที่มีรายละเอียดเล็กๆ น้อยๆ แตกต่างไปตามวิธีการเล่นหรือตัวละครของผู้เล่น โดยที่ยังคงคุณภาพแบบเดียวกับกราฟิกในภาพยนตร์ทุนสร้างหลายร้อยล้านดอลลาร์

ส่วนในแง่การแข่งขันในอุตสาหกรรม ต้องรอดูว่าหลังจาก NVIDIA ออกอาวุธใหญ่มาแล้ว ฝั่งของ AMD Radeon จะรับมืออย่างไร ในเมื่อของใหม่ใน Turing เริ่มเป็นสินค้าเฉพาะทางที่ผูกกับเทคโนโลยีเฉพาะค่าย มันจะเกิดปรากฏการณ์เกมดังๆ รองรับเฉพาะ ray tracing ของค่ายเขียวเพียงค่ายเดียว แบบที่เกิดกับวงการ deep learning มาก่อนหรือไม่ ก็เป็นเรื่องที่ต้องติดตามกันต่อไป

ชาบู การ์ดเทพ

Blognone Jobs Premium