ถอดรหัส Turing GPU ฉบับย่อ จากงาน NVIDIA GeForce RTX Editor’s Day

เมื่อเร็ว ๆ นี้ทาง NVIDIA ได้จัดงาน GeForce RTX Editor’s Day ขึ้นที่ประเทศไทย โดยในงานครั้งนี้ไม่ได้มีเฉพาะสื่อคนไทยเท่านั้นแต่ยังมีสื่อจากประเทศในกลุ่มอาเซียนเข้าร่วมฟังบรรยายในครั้งนี้ด้วย แม้ว่าพวกเราจะเคยเห็นการเปิดตัวและมีโอกาสชมการถ่ายถอดสดการเปิดตัวในงานที่ต่างประเทศมาบ้างแล้ว แต่การพบปะพูดคุยกับทีมงานเอ็นวิเดียโดยตรงในครั้งนี้ก็ทำให้เราได้รับข้อมูลและรายละเอียดในเชิงลึกมากยิ่งขึ้น

เริ่มต้นการบรรยายด้วยการกล่าวถึงจุดเริ่มต้นของการสร้างกราฟิกแบบ Ray Tracing ที่มีการพัฒนากันมาตั้งแต่ปี 1979 (จริง ๆ มีก่อนแต่ว่า 1979 เป็นจุดที่เริ่มยอมรับในประสิทธิภาพ) จนมาถึงปัจจุบันคือปี 2018 ว่ามีการพัฒนาไปมากน้อยขนาดไหน แม้ว่าเทคนิคการสร้างกราฟิกแบบ Ray Tracing จะไม่ใช่เรื่องใหม่ แต่ว่ากว่าจะมีการพัฒนาฮาร์ดแวร์ที่มีประสิทธิภาพสูงพอที่จะสร้างภาพกราฟิกในแบบ Real-Time โดยใช้เทคนิค Ray Tracing นั้นก็ต้องใช้เวลามากพอสมควร และกราฟิกชิปของ NVIDIA ที่ใช้สถาปัตยกรรม Turing คือสิ่งที่ถูกสร้างขึ้นมาเพื่อตอบสนองต่อสิ่งนี้

แม้ว่าเราจะเคยเห็น NVIDIA เผยโฉม Real-Time Ray Tracing ด้วยกราฟิกการ์ด Titan V ที่เป็นสถาปัตยกรรม Volta มาก่อนหน้านี้แล้ว แต่นั่นก็ยังเทียบไม่ได้กับกับสถาปัตยกรรมล่าสุดอย่าง Turing ที่เปิดตัวมาพร้อมกับ Quadro RTX เป็นครั้งแรก และนำมาใช้กับ GeForce RTX ในเวลาต่อมา การบรรยายครั้งนี้มีรายละเอียดค่อนข้างมาก แต่ว่าเราจะนำเฉพาะส่วนสำคัญ ๆ ที่มีผลและเกี่ยวข้องกับเกมมาเล่าสู่กันฟังครับ

สถาปัตยกรรม TURING

กราฟิกการ์ดรุ่นก่อนหน้าของเอ็นวิเดียก็คือ GeForce GTX 10 Series ซึ่งทั้งหมดนั้นเป็นกราฟิกที่ใช้สถาปัตยกรรมที่ชื่อว่า “Pascal” ส่วนกราฟิกการ์ด GeForce RTX 20 Series ที่เปิดตัวมาล่าสุดนี้ใช้กราฟิกสถาปัตยกรรมที่ชื่อว่า “Turing”

การปรับเปลี่ยนจากสถาปัตยกรรม Pascal มาสู่ Turing นั้นถือเป็นการก้าวกระโดดที่สำคัญอย่างมากของอุตสาหกรรมกราฟิกทั้งหมดเลยก็ว่าได้ เพราะ Turing มาพร้อมกับความสามารถในการรองรับ Real-Time Ray Tracing ซึ่งปกติแล้วกราฟิกการ์ดทั่วไปจะไม่สามารถประมวลผลด้าน Ray Tracing เพื่อสร้างกราฟิกที่มีเฟรมเรตสูง ๆ สำหรับการเล่นเกมได้ ตามปกติเราจะใช้เทคนิค Ray Tracing ในการสร้างภาพนิ่ง หรือถ้าเป็นภาพเคลื่อนไหวก็จะเรนเดอร์ออกมาทีละเฟรม แล้วนำแต่ละเฟรมมาเรียงกันให้เป็นภาพเคลื่อนไหวในภายหลัง และที่ Turing สามารถทำงานในลักษณะนี้ได้ก็เพราะทางเอ็นวิเดียได้ออกแบบกราฟิก Turing ขึ้นมาใหม่ที่ไม่ได้มีเฉพาะ Shader สำหรับการสร้างภาพกราฟิกเท่าั้น แต่ยังมีส่วนประมวลผลแบบใหม่อีกสองส่วนเพิ่มเข้ามาด้วยได้แก่ Tensor Core และ RT Core

Shader/Compute เป็นการประมวลผลโดยใช้ CUDA Core เหมือนกับกราฟิกชิปรุ่นอื่น ๆ ของเอ็นวิเดียในรุ่นที่ผ่าน ๆ มา หรือบางครั้งเราก็จะเห็นทางเอ็นวิเดียใช้คำว่า Programmable shaders ซึ่งหมายความว่า Shader Unit นั้นสามารถถูกตั้งโปรแกรมให้ปรับเปลี่ยนการทำงานเพื่อการประมวลผลในลักษณะต่าง ๆ ตามกระบวนการของ Graphics Pipe Line ได้ ซึ่งในกระบวนการเขียนโปรแกรมก็อาจจะเรียกส่วนนี้ว่าการเปลี่ยนคอนเท็กซ์ (Context) หรือเปลี่ยนบริบทของการทำงานนั่นเอง

Tensor Core เป็นคอร์ประมวลผลที่ถูกออกแบบมาเพื่อรองรับชุดคำสั่งในรูปแบบเมทริกซ์ได้ครั้งละ 4x 4 โดยเฉพาะ ซึ่งเป็นลักษณะเฉพาะของการประมวลผลทางด้าน AI และเอ็นวิเดียก็เคยให้เราได้เห็นส่วนของ Tensor Core มาก่อนหน้านี้แล้วในกราฟิกที่ใช้สถาปัตยกรรม Volta และนำมาผลิตเป็นกราฟิกการ์ดแล้ว เช่น Quadro GV100 และ TITAN V เป็นต้น

RT Core ซึ่งเป็นคอร์ประมวลผลชุดคำสั่งสำหรับการเรนเดอร์ด้วยเทคนิค Ray Tracing โดยเฉพาะ ซึ่งตามปกติแล้วการใช้เทคนิค Ray Tracing นั้นจะให้เฟรมเรตที่ไม่สูงเพราะต้องประมวลผลข้อมูลเรื่องของแสงและเงาเป็นจำนวนมาก แต่เมื่อมี RT Core ที่ทำหน้าที่ประมวลผลชุดคำสั่งทางด้านนี้โดยเฉพาะ และยังทำงานร่วมกับ Tensor Core จึงทำให้ GeForce RTX มีประสิทธิภาพสูงมากพอที่จะทำงานในลักษณะ Real-Time Ray Tracing

ดังนั้นในการประมวลผลของกราฟิก GeForce RTX อย่างเต็มรูปแบบใน 1 เฟรม ก็จะประกอบไปด้วยขั้นตอนต่าง ๆ ดังภาพด้านบนนี้ครับ (ยังไม่รวมขั้นตอนของ Graphics Pipe Line ที่บางส่วนอาจจะไปแทรกและรวมอยู่กับขั้นตอนต่าง ๆ)

 

ยกเครื่อง Shader Unit ใหม่หมด

ถ้าเราเทียบกันระหว่างสถาปัตยกรรมของ Pascal ใน GTX 10 Series กับ Turing ใน RTX 20 Series แบบเจาะลึกไปอีกสักนิด เราก็จะพบว่านอกเหนือจากส่วนประมวลผลพิเศษที่เพิ่มเข้ามาอย่าง Tensor Core และ RT Core แล้ว ส่วนประมวลผลแบบดังเดิมอย่าง Shader Unit ก็ได้รับการยกเครื่องใหม่ทั้งหมดด้วย คือถ้าไม่มี Tensor Core กับ RT Core เพิ่มเข้ามา การปรับปรุงเฉพาะ Shader Unit กับเทคโนโลยีอื่น ๆ ที่เพิ่มเข้ามาก็ทำให้ Turing มีประสิทธิภาพสูงกว่า Pascal อยู่ดี

ในสถาปัตยกรรม Pascal ส่วนที่เป็น Shader Unit หรือส่วนของ CUDA Core นั้น จะถูกออกแบบมาให้ทำงานกับชุดคำสั่งในลักษณะของ Floating Point หรือการประมวลผลทางด้านทศนิยม ซึ่งกราฟิกต่าง ๆ ในเกมก็มีการใช้ชุดคำสั่งในรูปแบบนี้เป็นหลัก และการออกแบบสถาปัตยกรรมกราฟิกชิปแบบนี้ก็มีให้เห็นอยู่ทั่วไปในกราฟิกหลายสถาปัตยกรรมด้วย

ส่วนสถาปัตยกรรม Turing ทางเอ็นวิเดียได้ออกแบบให้ Shader Unit มีทั้งส่วนประมวลผลที่เป็นแบบ Floating Point (FP) และส่วนประมวลผลชุดคำสั่งที่เป็นแบบ Integer (INT) เพิ่มเข้ามาด้วย ซึ่งตามปกติถ้ามีชุดคำสั่งแบบ INT จะเป็นหน้าที่ของซีพียูเป็นหลัก ทีนี้พอมีหน่วยประมวลผลแบบ INT เพิ่มเข้ามาในตัว Turing GPU ก็จะทำให้รูปแบบการเขียนโปรแกรมทั้งหมดเปลี่ยนไป ชุดคำสั่งแบบเดิมที่เคยต้องพึ่งพาความสามารถของซีพียู ก็สามารถโยกย้ายให้มาทำงานอยู่บนตัว Turing GPU ได้ แต่ไม่ได้หมายความว่าใช้ชุดคำสั่งเดิมที่ใช้กับซีพียูนะ แต่ต้องเขียนใหม่ด้วยเครื่องมือหรือไลบรารีจากทางเอ็นวิเดีย ถ้าเป็นแบบนี้ก็เท่ากับว่าเกมในอนาคตที่พัฒนามาโดยปรับแต่งให้ทำงานร่วมกับกราฟิกการ์ด GeForce RTX จากเอ็นวิเดียโดยเฉพาะก็อาจจะมีการพึ่งพิงประสิทธิภาพของซีพียูน้อยลงด้วย

การทำงานของ FP และ INT ใน Turing นั้นแม้ว่าจะทำงานพร้อม ๆ กัน แต่ก็จะเป็นไปในลักษณะที่เรียกว่า “Concurrent Execution” คือสามารถประมวลผลไปพร้อม ๆ กันได้โดยที่งานแต่ละงานในระหว่างการทำงานจะไม่เกี่ยวข้องกันโดยตรง แต่งานภายในที่ตัว FP หรือ INT ทำเองนั้นจะเป็นลักษณะ Parallelism หรือการประมวลผลแบบขนานที่ต้องช่วยกันทำงานเดียวกันหรือต่างงานไปพร้อม ๆ กันแต่จะมีส่วนที่ต้องเกี่ยวข้องกันโดยตรง

Ray Tracing ของ RTX ดีกว่า GTX อย่างไร

เมื่อพูดถึง Ray Tracing ที่จริงแล้วกราฟิกการ์ดอื่น ๆ ก็สามารถประมวลผลได้เช่นกันเพียงแต่ว่ามันจะทำงานได้ค่อนข้างช้าถึงช้าที่สุด ดังนั้นทางเอ็นวิเดียจึงได้เพิ่ม RT Core เข้ามาเป็นส่วนหนึ่งของ GPU ด้วยเลยเพื่อนำหน้าที่ช่วยการประมวลผลขั้นตอนการสร้างแสงและเงาสะท้อนโดยเฉพาะ และนั่นทำให้กราฟิกการ์ดในตระกูล GeForce RTX รวมไปถึง Quadro RTX ที่เปิดตัวไปก่อนหน้านี้ สามารถประมวลผลเพื่อสร้าง Ray Tracing ในแบบ Real Time ได้ เพราะตามปกติแล้วภาพที่เป็น Ray Tracing บนกราฟิกการ์ดทั่วไปจะให้เฟรมเรตที่ต่ำถึงต่ำมากจนไม่สามารถถูกนำมาใช้ในเกมที่ต้องการเฟรมเรตสูง ๆ ได้นั่นเอง สองภาพด้านล่างนี้เป็นการแสดงให้เห็นถึงขั้นตอนการประมวลผล Real-Time Ray Tracing ในขั้นตอนสร้างภาพกราฟิกบางส่วน

จากภาพทั้งสองทางด้านบนจะเห็นได้ว่ากระบวนการสร้างแสงและเงาอย่างมีประสิทธิภาพมันจำเป็นที่จะต้องเกิดขึ้นพร้อม ๆ กัน ในกระบวนการของ Pascal (GTX 10 Series) การสร้าง Ray Tracing จะไปแทรกอยู่ในการประมวลผลของ Shader Unit ซึ่งปกติก็มีงานเยอะอยู่แล้ว ถ้าไปแทรกแบบนี้ผลที่ได้ก็คือ FPS ที่ลดลงอย่างแน่นอน ในขณะที่ขั้นตอนการสร้าง Ray Tracing ของ Turing (RTX 20 Series) จะถูกแยกมาประมวลผลโดย RT Core ซึ่งเป็นการออกแบบฮาร์ดแวร์ที่ทำหน้าที่นี้โดยเฉพาะทำให้ขั้นตอนการสร้างภาพต่าง ๆ มันเกิดขึ้นได้อย่างรวดเร็วกว่ามาก และส่วนของ RT Core มันทำงานในลักษณะของ Fix function ไม่ต้องมีการเปลี่ยน Context ไปมาเหมือน Shader Unit จึงทำงานได้รวดเร็วมาก

Tensor Core ทำหน้าที่อะไร

มาขยายความในส่วนของ Tensor Core กันสักนิดครับ อย่างที่เกริ่นไปในช่วงแรกว่า Tensor Core นั้นจะทำหน้าที่ในการประมวลผลชุดคำสั่งแบบพิเศษซึ่งจะเป็นรูปแบบของการประมวลผลทางด้าน AI และ Deep learning ซึ่งชุดคำสั่งที่นำมาประมวลผลตรงนี้จะอยู่ในรูปแบบของข้อมูลที่เป็น “เมทริกซ์” แน่นอนว่าคำสั่งในลักษณะนี้ไม่ว่าจะเป็นซีพียูหรือกราฟิกชิปรุ่นไหนก็สามารถประมวลผลได้ แต่ว่าประสิทธิภาพในการทำงานที่ได้นั้นก็จะไม่สูงเพียงพอต่อการทำงานเช่นกัน ดังนั้นเอ็นวิเดียจึงได้สร้าง Tensor Core ขึ้นมาและมีการทำงานในรูปแบบ Fix function เหมือนกับ RT Core ที่ออกแบบมาให้ทำงานเฉพาะด้าน จึงสามารถประมวลผลได้รวดเร็วกว่ากราฟิกทั่วไปหลายเท่าตัว

รูปด้านบนนี้เป็นการเปรียบเทียบอย่างง่ายว่าลักษณะการประมวลผลของชุดข้อมูลแบบเมทริกซ์ระหว่าง Pascal กับ Turing เป็นอย่างไร ของ Pascal จะทำได้ในลักษณะทำไปที่ละชุดทีละแถวแบบ 1 x 4 ในขณะที่ Turing นั้นทำได้ครั้ง 4 x 4 นั้นทำให้การประมวลผลทำได้เร็วกว่าอย่างมาก ส่วนภาพด้านล่างแสดงให้เห็นถึงลักษณะของข้อมูลที่นำมาประมวลผลใน Tensor Core

DLSS ภาพสวยด้วย AI

ตั้งแต่งานเปิดตัวครั้งแรกหลายคนก็คงจะได้เห็นการพูดถึงเทคนิคการลดรอยหยักของภาพแบบใหม่ที่เรียกว่า DLSS หรือ Deep Learning Super Sampling กันมาบ้างแล้วนะครับ ถ้าจะอธิบายแบบละเอียดมันจะยาวขอแบบสรุปสั้น ๆ เลยว่าเทคนิคนี้มันจะช่วยให้ได้ภาพที่สวยงามแต่ยังคงให้เฟรมเรตที่สูงเมื่อเทียบกับเทคนิคการลดรอยหยักแบบเดิม ๆ อย่าง TAA  ซึ่งตามปกติเทคนิค TAA ของเอ็นวิเดียเองก็ให้ประสิทธิภาพที่สูงกว่าเทคนิคการลดรอยหยักแบบอื่น ๆ อยู่แล้ว แต่ DLSS จะให้ประสิทธิภาพที่สูงมากไปกว่านั้นอีก ด้วยการเรียนรู้ของระบบ AI ยกตัวอย่างง่าย ๆ เลยเช่น ถ้ามีภาพ ๆ หนึ่งให้เราดู แม้ว่าจะเป็นภาพที่ไม่มีความสมบูรณ์มานัก แต่ถ้าเรามีประสบการณ์มาก่อนเราก็จะรู้ทันทีเลยว่าภาพปลายทางที่สมบูรณ์แบบจะออกมามีหน้าตาเป็นอย่างไร การทำงานของ DLSS ก็เหมือนกันครับ คือมันไม่ต้องไปเสียเวลาคำนวณรายละเอียดทุกขั้นตอนในการลดรอยหยักเหมือนกับเทคนิคแบบ TAA แต่มันรู้ได้ด้วยระบบ AI/Deep Learning ว่าภาพที่สวยงามควรเป็นอย่างไร ข้อมูลเหล่านั้นก็จะถูกส่งไปยังขั้นตอนของการสร้างภาพได้ทันที ทำให้ประสิทธิภาพในการทำงานโดยรวมดีขึ้นนั่นเอง

เทคนิค MESH SHADERS

นอกจากการยกเครื่อง Shader มีส่วนประมวลผลพิเศษอย่าง Tensor Core และ RT Core แล้ว ทางเอ็นวิเดียก็ยังมีเทคนิคอื่นในการสร้างภาพกราฟิกให้มีความสวยงามในขณะที่ใช้ทรัพยากรฮาร์ดแวร์ให้น้อยลงออกมาด้วยอีกหนึ่งอย่างนั่นก็คือ MESH SHADERS ซึ่งเป็นการปรับลดขั้นตอนการประมวลผลของ Graphics Plpeline ลง แต่ทำให้ภาพสวยขึ้นแน่นอนถ้าตีความกันง่าย ๆ ก็คือภาพสวยเฟรมเรตสูง และเราสามารอธิบายแบบรวบรัดได้ดังภาพด้านล่าง


จากภาพเราจะเห็นได้ว่าทางเอ็นวิเดียมีการควบรวมขั้นตอนที่เคยเป็นหน้าที่ของ Vertex shader และ Hull sharer มาเป็น Task Shader ซึ่งกระบวนการคำนวณการสร้างรายละเอียดของโพลีกอนให้กับวัตถุในภาพที่มีความสมจริงมากยิ่งขึ้น ก่อนที่จะไปรวมกับขั้นตอนการใส่พวกเท็กซ์เจอร์ต่าง ๆ ในช่วงปลายทาง นอกจากนี้แล้วในขั้นตอนของ Domain Shader กับ Geomerty Shader ซึ่งเป็นขั้นตอนการประกอบโพลีกอนต่าง ๆ เข้าด้วยกันก่อนที่จะส่งไปให้ Raster แปลงข้อมูลออกมาเป็นข้อมูลที่พร้อมจะแสดงผลบนหน้าจอและจัดการใส่พื้นผิวต่าง ๆ ลงไปด้วย Pixcel Shader ก็จะถูกควบรวมกันโดยใช้เทคนิค Mesher Shader เพื่อกำหนดว่าพื้นที่ใดมีความสำคัญระดับใดในการใส่รายละเอียดของพวกพื้นพิวหรือเท็กซ์เจอร์ต่าง ๆ โดยมีการแบ่งโซนของภาพออกเป็นส่วน ๆ กำหนดความสำคัญให้สอดคล้องกับการมองเห็นบนหน้าจอ ทำให้ผู้ใช้งานยังคงได้รับประสบการณ์จากภาพที่สวยงามเหมือนเดิม แต่ประหยัดขั้นตอนและทรัพยาการในการประมวลผลมากยิ่งขึ้น

ส่งท้าย กับเรื่องราวที่ยังไม่จบ

ข้อมูลและประสบการณ์จากงาน NVIDIA GeForce RTX Editor’s Day ถือว่าเป็นการเปิดไปสู่โลกใหม่ของการประมวลผลทางด้านกราฟิกครับ รายละเอียดและเรื่องราวที่น่าสนใจของ GeForce GTX ยังมีอีกมากมายครับ การนำเสอนในวันนี้ถือว่าเป็นข้อมูลสำคัญเพียงบางส่วนเท่านั้น เพราะนี่คือการยกเครื่องฮาร์ดแวร์ของกราฟิกการ์ดครั้งใหญ่จริง ๆ เปรียบได้กับการเปิดตัว GeForce 256 ในปี 1999 เลยทีเดียว ซึ่งเป็นครั้งแรกที่ทำให้โลกรู้จักกับ GPU – Graphics Processing Unit เพราะก่อนหน้านั้นกราฟิกการ์ดทั้งหมดเป็นแค่ตัวช่วยหรือตัวเร่งการแสดงผลเท่านั้นยังไม่ใช่การประมวลผลอย่างเต็มรูปแบบเหมือนอย่างกราฟิกการ์ดในยุคปัจจุบัน

 

สำหรับข้อมูลแบบละเอียดครบถ้วนพร้อมผลการทดสอบ GeForce RTX 2080 และ GeForce RTX 2080 Ti อย่างเต็มรูปแบบจะตามมาในเร็ว ๆ นี้ครับ เพราะตอนนี้ทางไมโครซอฟต์ก็ได้ปล่อยตัว Windows 10 October Update ซึ่งมาพร้อมกับ DirectX Raytracing เรียกย่อ ๆ ว่า DXR ตอนนี้ก็เหลือแค่เกมที่รองรับ DXR เปิดตัวกันเท่านั้นครับ

You may also like...