ทำไม GPU ถึงมีแรสเตอร์ไรเซอร์?


14

แม้จะมีความก้าวหน้าของ GPU สมัยใหม่ แต่ก็ยังคงมี rasterizers อยู่ ปรับแต่งได้สูงพร้อมตัวตั้งโปรแกรม แต่ก็ยังไม่สามารถตั้งโปรแกรมได้อย่างเต็มที่

ทำไมถึงเป็นอย่างนั้น?

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

การมีฮาร์ดแวร์ของฟังก์ชั่นแบบตายตัวเป็นประโยชน์ต่อการทำงานอย่างชาญฉลาดหรือไม่


1
"ทำไมหน่วยประมวลผลกราฟิกไม่อยู่ในหน่วยประมวลผลกลาง" นั่นคือคำถามที่คุณถาม?
Andreas

1
@ Andreas No คำถามของฉันเป็นไปตามที่ระบุไว้ในโพสต์ เหตุใด rasterizers จึงยังคงเป็นส่วนของฮาร์ดแวร์เมื่อสามารถทำในซอฟต์แวร์ได้ คำถามคือทำไมมันไม่ธรรมดา ... บางทีมันเป็นแค่การแสดงฉันไม่รู้นั่นคือเหตุผลที่ฉันถาม ...
mrpyo

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

Rasterizers แปลง vector polys เป็นพิกเซลจำนวนมากที่เราสามารถให้แสงได้ เมื่อเราไม่มีพิกเซลอีกต่อไปหรือหยุดใช้เรขาคณิตเวกเตอร์เราจะไม่ต้องใช้ rasterizers อีกต่อไป ไม่ว่าส่วนที่เหลือของไพพ์ไลน์ของคุณจะเป็นอย่างไรในตอนท้ายของวัน (หรือเฟรม) คุณต้องใช้พิกเซล แรสเตอร์เซอร์เพียงแค่บอกเราว่าพิกเซลที่เรามีความกังวลเกี่ยวกับรูปสามเหลี่ยมที่กำหนด ทั้งหมดนี้สามารถตั้งโปรแกรมได้ - หากคุณต้องการเอาท์พุทที่แตกต่างจากแรสเตอร์เซอร์ให้ส่งสามเหลี่ยมที่ต่างกันออกไป หรือเพียงแค่วาดทุกอย่างไปยังพื้นผิวการเรนเดอร์ในเครื่องคำนวณและเปลี่ยนมันเป็นรูปสี่เหลี่ยมมุมฉาก
3Dave

คำตอบ:


15

กล่าวโดยย่อเหตุผลด้านประสิทธิภาพคือเหตุผลว่าทำไมจึงไม่สามารถตั้งโปรแกรมได้

ประวัติและการตลาด

ในอดีตเคยมีแกนแยกต่างหากสำหรับตัวประมวลผลจุดสุดยอดและตัวแยกส่วนเพื่อหลีกเลี่ยงการออกแบบ FPU ที่ป่อง มีการดำเนินการทางคณิตศาสตร์บางอย่างที่คุณสามารถทำได้ในโค้ดส่วนของ shader เท่านั้น (เนื่องจากส่วนใหญ่เกี่ยวข้องเฉพาะกับตัวแบ่งส่วน) สิ่งนี้จะทำให้เกิดปัญหาคอขวดของฮาร์ดแวร์ที่รุนแรงสำหรับแอปพลิเคชั่นที่ไม่ได้มีศักยภาพสูงสุดของคอร์แต่ละประเภท

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

ในที่สุดก็เป็นผู้เล่นที่ยิ่งใหญ่, Intel, ตัดสินใจที่จะลงทุนใน rasterizers ตั้งโปรแกรมของพวกเขาที่มีสถาปัตยกรรม Larrabee โครงการนี้ควรจะเป็นแหวกแนว แต่ประสิทธิภาพการทำงานที่เห็นได้ชัดน้อยกว่าที่ต้องการ มันปิดตัวลงและบางส่วนของมันได้รับการกู้คืนสำหรับโปรเซสเซอร์ Xeon Phi เป็นที่น่าสังเกตว่าผู้ค้ารายอื่นไม่ได้ใช้สิ่งนี้

ความพยายามที่ Software Rasterizers

มีความพยายามในการทำให้เป็นแรสเตอร์ผ่านซอฟต์แวร์ แต่พวกเขาทั้งหมดดูเหมือนจะมีปัญหากับประสิทธิภาพ

สิ่งหนึ่งที่น่าสังเกตคือความพยายามของ Nvidiaในปี 2011 ในบทความนี้ นี่ถูกปล่อยออกมาเมื่อ Larrabee ถูกยกเลิกดังนั้นจึงเป็นไปได้มากว่านี่เป็นการตอบสนองต่อสิ่งนั้น โดยไม่คำนึงถึงมีตัวเลขประสิทธิภาพบางอย่างในเรื่องนี้และส่วนใหญ่จะแสดงผลการทำงานช้ากว่าฮาร์ดแวร์ rasterizers หลายเท่า

ปัญหาทางเทคนิคกับการทำให้เป็นแรสเตอร์ซอฟต์แวร์

มีปัญหามากมายที่ต้องเผชิญในกระดาษ Nvidia นี่คือบางส่วนของปัญหาที่สำคัญที่สุดกับ rasterizers ซอฟต์แวร์ว่า:

ประเด็นสำคัญ

  • การแก้ไข: การนำฮาร์ดแวร์ไปใช้สร้างสมการการแก้ไขในฮาร์ดแวร์พิเศษ สิ่งนี้ช้าสำหรับตัวเรนเดอร์ซอฟต์แวร์เนื่องจากต้องทำในแฟรกเมนต์ shader

  • การต่อต้านนามแฝง: นอกจากนี้ยังมีปัญหาด้านประสิทธิภาพของการต่อต้านนามแฝง (โดยเฉพาะกับหน่วยความจำ) ข้อมูลเกี่ยวกับตัวอย่างย่อยพิกเซลจะต้องเก็บไว้ในหน่วยความจำบนชิปซึ่งไม่เพียงพอที่จะเก็บไว้ Julien Guertault ชี้ให้เห็นว่าแคช / แคชของพื้นผิวอาจช้าลงด้วยซอฟต์แวร์ MSAA มีปัญหาที่นี่อย่างแน่นอนเพราะมันล้นแคช (แคชที่ไม่ใช่พื้นผิว) และเข้าไปในหน่วยความจำออกจากชิป Rasterizers บีบอัดข้อมูลที่เก็บไว้ในหน่วยความจำซึ่งจะช่วยให้มีประสิทธิภาพที่นี่

  • การใช้พลังงาน: Simon F ชี้ให้เห็นว่าการใช้พลังงานจะลดลง กระดาษได้กล่าวถึง ALU ที่กำหนดเองที่อยู่ใน rasterizers (ซึ่งจะลดการใช้พลังงาน) และสิ่งนี้จะสมเหตุสมผลตั้งแต่หน่วยประมวลผลส่วนและจุดสุดยอดในอดีตที่เคยมีชุดคำสั่งที่กำหนดเอง (เช่น ALU ที่กำหนดเองเช่นกัน) แน่นอนว่ามันจะเป็นคอขวดในหลาย ๆ ระบบ (เช่นมือถือ) แม้ว่ามันจะมีผลกระทบเกินกว่าประสิทธิภาพ

สรุป

TL; DR: มีความไร้ประสิทธิภาพมากเกินไปที่การแสดงผลซอฟต์แวร์ไม่สามารถผ่านมาได้และสิ่งเหล่านี้รวมกัน นอกจากนี้ยังมีข้อ จำกัด ที่ใหญ่กว่าโดยเฉพาะเมื่อคุณจัดการกับแบนด์วิดท์ VRAM ปัญหาการซิงโครไนซ์และการคำนวณพิเศษ


ฉันไม่คิดว่าคุณต้องเก็บตัวอย่าง subpixel หากการกรองกล่องเพียงพอแล้วคุณก็สามารถใช้ค่าเฉลี่ย
joojaa

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

3
@aces อีกหนึ่งรายการที่ควรกล่าวถึงคือพลัง ฮาร์ดแวร์เฉพาะจะทำงานแบบเดียวกันโดยทั่วไปมีค่าใช้จ่ายเพียงเล็กน้อยและด้วยการควบคุมปริมาณพลังงานที่มีปัญหาอยู่แล้วโดยเฉพาะอย่างยิ่งในอุปกรณ์มือถือการตั้งโปรแกรมอย่างสมบูรณ์จะทำให้แย่ลงอย่างมาก
Simon F

@JulienGuertault Fair point แต่ฉันคิดว่าส่วนใหญ่ใช้กับ MSAA ได้ ดูเหมือนว่าผลการทดสอบจะบ่งบอกว่านี่ไม่ใช่ปัญหาใหญ่เมื่อทุกอย่างเหมาะสมกับหน่วยความจำบนชิป
เอซ

@SimonF ฉันคิดว่านั่นเป็นจุดที่ดีเช่นกัน ฉันรวมไว้ในคำตอบ
เอซ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.