แก้ไขหน่วยฟังก์ชันของ GPU: วิธีการทำงาน

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

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

แก้ไขหน่วยฟังก์ชันของ GPU

ใน GPU สิ่งที่ใกล้เคียงที่สุดกับ GPU ที่ใช้งานทั่วไปคือหน่วยคำนวณที่โปรแกรม shader ทำงาน แต่มีงานกราฟิกบางอย่างที่ดำเนินการโดยหน่วยพิเศษ

แก้ไขหน่วยฟังก์ชันบน GPU

DX12 สุดยอด

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

GPU มีสองขั้นตอนบางขั้นตอนดำเนินการผ่านโปรแกรม shader ใน Compute Units หรือ SM ส่วนอื่น ๆ ใช้หน่วยฟังก์ชันคงที่ กระบวนการนี้กำกับโดยหน่วยประมวลผลคำสั่งซึ่งเป็นหน่วยที่ย้ายข้อมูลผ่าน GPU ในขั้นตอนต่างๆของไปป์ไลน์กราฟิก

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

หน่วยฟังก์ชันคงที่ใน GPU

GPU ของ NVIDIA

ที่นี่เราจัดทำรายการหน่วยฟังก์ชันคงที่ที่ใช้บ่อยที่สุดและใช้มากที่สุดใน GPU

หากไม่มีพวกเขาก็จะเป็นหน่วยประมวลผลผ่านโปรแกรม shader ที่จะต้องทำงานเหล่านี้โดยต้องใช้ชิปขนาดใหญ่และใช้พลังงานจำนวนมาก

หน่วยฟังก์ชันคงที่สำหรับการแรสเตอร์

พวกเขามีหน้าที่ในการถ่ายสามเหลี่ยมและเปลี่ยนให้เป็นชิ้นส่วนซึ่งประกอบด้วยการฉายภาพลงบนกล้องเพื่อเปลี่ยนให้เป็นกลุ่มพิกเซลที่ GPU จะต้องปรับสี

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

หน่วยฟังก์ชันคงที่สำหรับการกรองพื้นผิว

หน่วยพื้นผิวFunción Fija

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

GPU ร่วมสมัยทั้งหมดใช้ประโยชน์จากหน่วยพื้นผิวที่จัดกลุ่ม 4 คูณ 4 โดยมีการเชื่อมต่อ 16 จุดกับแคชข้อมูลช่วยให้คุณใช้ฟิลเตอร์สองเส้นที่อัตราการพื้นผิว 100% ฟิลเตอร์ไตรลิเนียร์ที่ 50% และแอนไอโซทรอปิก 25%

นอกจากนี้ยังรวมกับ Compute Units เพื่อเรียกใช้โปรแกรม Pixel หรือ Fragment Shaders จากที่ที่มีการจัดการค่าของพื้นผิว

หน่วยฟังก์ชันคงที่สำหรับการเทสเซลล์

Teselacion

มีหน้าที่รับผิดชอบในการดำเนินการสิ่งที่เราเรียกว่าการแบ่งพื้นผิวซึ่งประกอบด้วยการแบ่งจุดยอดของแบบจำลองออกเป็นหลาย ๆ จุดโดยไม่สูญเสียรูปร่างดั้งเดิม

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

ในทางกลับกันหน่วยเทสเซลเลชันขั้นสูงสามารถใช้การทำแผนที่การกระจัดซึ่งเป็นการสร้างรูปทรงเรขาคณิตในแบบจำลองจากแผนที่การกระจัดและแม้แต่สร้างอนุภาค

หน่วยคัดแยก

มีหน้าที่ในการกำจัดรูปทรงเรขาคณิตที่ไม่จำเป็นของเวทีกล่าวคือรูปทรงที่เล็กเกินไปจะถูกซ่อนไว้โดยองค์ประกอบอื่นที่ขัดขวางการมองเห็นหรืออยู่นอกฉาก

งานของคุณคือลบสามเหลี่ยมที่ตรงตามข้อกำหนดทั้งสามนี้ออกจากรายการหน้าจอ

เอาต์พุต Raster

amd rbe ฟังก์ชัน fija

Raster OutPut หรือ ROP เป็นหน่วยที่รับผิดชอบในการสร้างบัฟเฟอร์ภาพดังนั้นจึงเป็นหน่วยที่สามารถเขียนลงใน VRAM ได้โดยตรงแม้ว่าใน GPU ร่วมสมัยจะสามารถทำได้ผ่านแคช L2 และในกรณีของ Tiles ก็ตาม Renderers ทำในหน่วยความจำภายในของ GPU เอง

ทำงานในสองขั้นตอนระหว่างไปป์ไลน์ขั้นแรกในขั้นตอนแรสเตอร์ที่สร้าง Z-Buffer ซึ่งเป็นบัฟเฟอร์ภาพที่ระบุว่าแต่ละองค์ประกอบของฉากอยู่ห่างจากกล้องมากเพียงใด ลำดับที่สองหลังจากพื้นผิวที่สร้างบัฟเฟอร์สีในรูปแบบ RGBA

หน่วยแยกเรย์สำหรับการติดตามเรย์

Ray TracingBase

เป็นหน่วยที่รับผิดชอบในการคำนวณการตัดกันของรังสีกับพื้นผิวใน Ray Tracing เรามีบทช่วยสอนเกี่ยวกับการทำงานของมันคุณสามารถค้นหาได้ในชื่อ " RT Cores สำหรับ Ray Tracing ทำงานอย่างไรและอย่างไร "