คำถามติดแท็ก gpu

2
ค่าใช้จ่ายในการเปลี่ยนสถานะคืออะไร?
โปรแกรมเมอร์ควรมีความคิดที่ดีเกี่ยวกับค่าใช้จ่ายของการดำเนินการบางอย่างเช่นค่าใช้จ่ายในการเรียนการสอนบน CPU, ค่าใช้จ่ายของ L1, L2, หรือ L3 Cache, ค่า LHS เมื่อพูดถึงกราฟิกฉันรู้ว่าฉันไม่รู้ตัวเลยว่ามันคืออะไร ฉันมีในใจว่าถ้าเราสั่งพวกเขาโดยค่าใช้จ่ายการเปลี่ยนแปลงสถานะเป็นดังนี้ การเปลี่ยนเครื่องแบบของ Shader การเปลี่ยนแปลงบัฟเฟอร์จุดสุดยอดที่ใช้งานอยู่ การเปลี่ยนแปลงหน่วยพื้นผิวที่ใช้งานอยู่ การเปลี่ยนแปลงโปรแกรม shader ที่ใช้งานอยู่ การเปลี่ยนบัฟเฟอร์เฟรมที่แอ็คทีฟ แต่นั่นเป็นกฎง่ายๆที่อาจจะไม่ถูกต้องและฉันก็ไม่รู้ว่าคำสั่งของขนาดนั้นคืออะไร หากเราพยายามใส่หน่วย, ns, รอบสัญญาณนาฬิกาหรือจำนวนคำสั่งเราพูดถึงเท่าไหร่?

3
เหตุใดเราจึงมีกรอบกราฟิกเช่น OpenGL และ DirectX เมื่อเกมสามารถวาดพิกเซลได้โดยตรง
เกมและแอพพลิเคชั่นที่เน้นกราฟิกอื่น ๆ ใช้เฟรมเวิร์กเช่น OpenGL และ DirectX พวกมันต้องการคุณสมบัติเช่น pixel shader และ DX12 แต่ทำไมเราต้องใช้เฟรมเวิร์กและฟีเจอร์ GPU ทั้งหมดเมื่อเราสามารถวาดทุก ๆ พิกเซลทีละพิกเซลได้? ขั้นแรกเกมจะต้องรวบรวมในลักษณะดังนั้นจึงถูกวาดพิกเซลโดยพิกเซล สิ่งนี้มีแนวโน้มที่จะทำให้เกมใช้งานได้ดี แต่จะเร็วกว่าและทำงานกับ GPU สี 32 บิตใด ๆ (แม้กระทั่งเก่า) ฉันรู้ว่าเกม 3 มิติแรกถูกวาดทีละพิกเซล แต่ทำไมพวกเขาถึงไม่ทำในตอนนี้

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

2
โดยทั่วไปแล้วการกรองแบบแอนไอโซทรอปิกจะนำไปใช้กับ GPU สมัยใหม่ได้อย่างไร?
การกรอง Anisotropic "รักษาความคมชัดของพื้นผิวที่สูญเสียไปตามปกติโดยความพยายามในการหลีกเลี่ยงการใช้นามแฝงของพื้นผิวแผนที่ MIP" บทความ Wikipedia ให้คำแนะนำเกี่ยวกับวิธีการนำไปใช้ ("ตรวจสอบพื้นผิว (... ) สำหรับการวางแนวของ Anisotropy") แต่มันไม่ได้อ่านอย่างชัดเจนสำหรับฉัน ดูเหมือนจะมีการใช้งานที่หลากหลายตามที่แนะนำโดยการทดสอบที่แสดงในบันทึกของงานนำเสนอแบบจำลองโดยประมาณสำหรับการแสดงผลตามร่างกาย : การคำนวณที่เป็นรูปธรรมดำเนินการโดย GPU (สมัยใหม่) ในการเลือกระดับ MIP ที่ถูกต้องเมื่อใช้ตัวกรอง anisotropic คืออะไร

1
พื้นผิวการค้นหายังคงใช้เพื่ออะไรหรือไม่?
ฉันรู้เมื่อไม่นานมานี้ (5-10 ปี?) ว่ามันเป็นที่นิยม / มีประสิทธิภาพในการอบข้อมูลออกเป็นพื้นผิวแล้วอ่านข้อมูลจากพื้นผิวมักใช้การแก้ไขพื้นผิวในตัวเพื่อรับการแก้ไขเชิงเส้นของอบ ออกข้อมูล ตอนนี้เวลาในการคำนวณมีราคาถูกกว่าเมื่อเทียบกับเวลาในการค้นหาพื้นผิว คำถามของฉันคือพื้นผิวที่ถูกอบยังคงใช้สำหรับอะไร? ใครบ้างมีกรณีการใช้งานสำหรับพวกเขาในสถาปัตยกรรมสมัยใหม่? ดูเหมือนว่าพวกเขาจะกลับมาหรือไม่? (เช่นถ้าเทคโนโลยีหน่วยความจำหรือสถาปัตยกรรม GPU พื้นฐานเปลี่ยนแปลง)
14 texture  gpu  hardware 

1
เหตุใดจึงต้องการประสิทธิภาพการทำงานในการเขียนโปรแกรม GPU?
ฉันได้อ่านบทความต่อไปนี้เกี่ยวกับวิธีการสแกนแบบขนานใน CUDA: https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch39.html ในบทความมีความสำคัญในการทำให้การสแกน "ทำงานมีประสิทธิภาพ" กล่าวอีกนัยหนึ่งอัลกอริทึม GPU ไม่ควรทำการเพิ่มเติมนอกเหนือจากอัลกอริทึมของ CPU, O (n) ผู้แต่งนำเสนออัลกอริทึมสองอันหนึ่ง "ไร้เดียงสา" ที่เพิ่ม O (nlogn) และอีกหนึ่งพวกเขาคิดว่า "มีประสิทธิภาพในการทำงาน" อย่างไรก็ตามอัลกอริทึมที่มีประสิทธิภาพในการทำงานทำซ้ำสองเท่าของลูป จากความเข้าใจของฉัน GPUs เป็นเพียงโปรเซสเซอร์ SIMD ขนาดใหญ่และควรทำงานในขั้นตอนล็อค การวนซ้ำหลายครั้งในอัลกอริทึม "ประสิทธิภาพในการทำงาน" ดูเหมือนจะบอกเป็นนัยว่าเธรดจำนวนมากจะไม่ได้ทำงานและลดประสิทธิภาพในระยะยาว ฉันกำลังคิดถึงอะไร

1
ทำไมรูปสามเหลี่ยมที่อยู่ติดกันจึงไม่เคยทับซ้อนกันเมื่อแรสเตอร์?
ขออภัยสำหรับคำถาม noob ต่อไปนี้เป็นเพียงฉันไม่สามารถหาคำตอบที่น่าพอใจทุกที่ ... เมื่อฉันสร้างรูปสี่เหลี่ยมที่มีแกนเรียบง่ายประกอบด้วยสามเหลี่ยมสองรูปฉันไม่เข้าใจว่าทำไมไม่มีสิ่งประดิษฐ์ใด ๆ ที่มองเห็นได้บนขอบทแยงมุมที่สามเหลี่ยมเหล่านั้นมาบรรจบกัน พิกเซลบางส่วนนั้นต้องอยู่ในรูปสามเหลี่ยมทั้งคู่ใช่ไหม ดังนั้นถ้า fragshader ของฉันเปล่งสีโปร่งใสบางส่วน - สีดำ 50% พูดเสมอ - แล้วไม่ควรมีเส้นทแยงมุมสีดำที่มองเห็นได้ในรูปสี่เหลี่ยมที่เกิดขึ้นหรือไม่ เห็นได้ชัดว่ามันดีมากที่นี่ไม่ใช่ปัญหาจริงที่ต้องเขียนรหัสฉันแค่ไม่เข้าใจว่าทำไมมันถึงไม่ได้ ความมหัศจรรย์ของ GPU คืออะไรที่ทำให้สิ่งนี้เป็นจริง
11 opengl  gpu  rasterizer 


1
มีรูปหลายเหลี่ยมในฉากที่สามารถเข้าถึงฮาร์ดแวร์ที่ทันสมัยในขณะที่ยังคงเรียลไทม์และวิธีการที่จะได้รับ?
คำถามพื้นฐานในบางแง่มุม แต่เป็นคำถามที่หลาย ๆ คนรวมตัวเองไม่ทราบคำตอบจริงๆ ผู้ผลิต GPU มักอ้างถึงตัวเลขที่สูงมากและการแพร่กระจายระหว่างรูปหลายเหลี่ยมนับว่าเอ็นจิ้นเกมต่างๆอ้างว่าสนับสนุนบ่อยครั้งที่มีขนาดใหญ่หลายคำสั่งและจากนั้นก็ยังขึ้นอยู่กับตัวแปรจำนวนมาก ฉันรู้ว่านี่เป็นคำถามปลายเปิดที่ค่อนข้างกว้างและฉันขอโทษสำหรับสิ่งนั้นฉันแค่คิดว่ามันจะเป็นคำถามที่มีค่าที่จะได้อยู่ตรงนี้
11 gpu  optimisation 

1
ทำไม AMD ถึงใส่ SSD ลงบนบอร์ด GPU เพื่อลดความล่าช้า
เมื่อไม่นานมานี้ AMD ได้มีข่าวกับบอร์ด Radeon Pro ที่น่าสนใจซึ่งมี M2 SSD อยู่สองตัว ตามที่มีรายละเอียดเพิ่มเติม (เช่นที่นี่หรือที่นี่ ) หมายเหตุประโยชน์ส่วนใหญ่อาจไม่ได้เกิดจากแบนด์วิดท์สูง (M2 นั้นอยู่ที่ PCIe 4 เลนต่อกันดังนั้นตัวเชื่อมต่อ 16 เลนของบอร์ดควรมีมากกว่า) จากเวลาแฝงต่ำ เรื่องนี้รวมถึงการอ้างสิทธิ์ "ผลลัพธ์นี้มีความล่าช้าในการเข้าถึงหน่วยความจำต่ำกว่า 10x" คำถามของฉันคือ: ทำไม SSD ที่เชื่อมต่อ PCIe บนบอร์ด GPU ควรมีความหน่วงแฝงน้อยกว่า GPU ที่เข้าถึง RAM ระบบหลักหรืออุปกรณ์เก็บข้อมูลบนบัส PCIe ระบบหรือไม่ มันเกี่ยวกับระบบหลักอะไรที่ "เข้ามาขวางทาง" และหมายความว่า SSD ของออนบอร์ดสามารถเข้าถึงได้เร็วกว่ามาก?

2
วิธีที่มีประสิทธิภาพที่สุดในการจัดระเบียบข้อมูลจุดสุดยอดของ GPU สมัยใหม่
บอกว่าผมมีรูปแบบที่สร้างขึ้นจากจุดแต่ละคนมีposition, normal, tangentและtexcoordแอตทริบิวต์ที่สามเหลี่ยมถูกกำหนดโดยดัชนีอเนกประสงค์ หากเราเพียง แต่มุ่งเน้นไปที่คุณลักษณะจุดสุดยอดฉันรู้ว่ากลยุทธ์สองอย่างกว้าง ๆ : โครงสร้างของอาร์เรย์และอาร์เรย์ของโครงสร้าง ฉันเคยได้ยินเช่นกันว่าอาเรย์ของโครงสร้างเป็นที่ต้องการเพราะมันจะเพิ่มตำแหน่งหน่วยความจำ (และเพื่อให้ตำแหน่งแคช) ของคุณลักษณะสำหรับจุดสุดยอดที่กำหนด เป็นกรณีที่ปรับปรุงประสิทธิภาพได้จริงหรือไม่ วิธีหลักที่ฉันคิดว่าสิ่งนี้จะเกิดขึ้นได้โดยดัชนีจุดสุดยอดที่ต้องการให้ rasterizer ได้รับข้อมูลจุดสุดยอดที่มีความยาวตั้งแต่ถูกไล่ออกจากแคช หากการเข้าถึงข้อมูลจุดสุดยอดเป็นแบบสุ่มการเก็บแอตทริบิวต์ทั้งหมดสำหรับจุดสุดยอดในบรรทัดแคชเดียวกันจะทำให้สิ่งต่าง ๆ เร็วขึ้น แต่นี่ไม่ใช่ปัญหาที่สามารถลดลงได้ส่วนใหญ่โดยการปรับลำดับของข้อมูลจำเพาะสามเหลี่ยมให้เหมาะสมหรือไม่ นอกจากนี้ฉันเข้าใจว่า GPU สมัยใหม่อาจดีกว่าในการแกะเวกเตอร์ที่มีความยาวชนิดเดียวกันออกได้ดีกว่าเวกเตอร์ของโครงสร้างหลายประเภท มันจะเป็นไปได้หรือไม่สำหรับโครงร่างแบบโครงสร้างของอาร์เรย์เพื่อให้มีประสิทธิภาพเหนือกว่าโครงร่างอาร์เรย์ของโครงสร้างของข้อมูลจุดสุดยอดเดียวกันหากคำสั่งดัชนีถูกปรับให้เหมาะสม

1
การสร้างบรรทัดฐานยอดที่ใช้ร่วมกันบน GPU
ฉันส่วนใหญ่ประสบความสำเร็จในการย้ายการดำเนินการของ Marching Cubes จากซีพียูไปสู่การคำนวณด้วย OpenGL แต่ฉันยังไม่ได้แก้ไขกฎเกณฑ์บรรทัดฐานและสงสัยว่าวิธีที่ดีที่สุดจะไปเกี่ยวกับเรื่องนี้ ข้อตกลงการใช้งานของฉันเป็นการเฉพาะกับเขตข้อมูลมูลค่าไบนารี (ฉันกำลังพยายามจำลองฟังก์ชันเศษส่วน 3 มิติที่ยังไม่มีเครื่องมือประมาณระยะทาง) ดังนั้นวิธีการไล่ระดับสีและการส่งต่อความแตกต่างจะไม่ทำงาน ฉันใช้จุดสูงสุดร่วมกันและการใช้งาน CPU ของฉันใช้วิธีของ Quilez ตามที่อธิบายไว้ที่นี่เพื่อรวบรวมหน้าตามาตรฐานลงบนจุดสุดยอดแต่ละแห่ง ฉันสามารถนำการติดตั้งนี้ไปใช้กับ shader อื่นได้ แต่ปัญหาที่ฉันเห็นด้วยนี่คืออะตอมมิกจำนวนมากที่ต้องการ เนื่องจากเราสามารถใช้ atomics กับชนิดจำนวนเต็มสเกลาร์เท่านั้นและฉันไม่สามารถคิดวิธีที่จะแพ็ค 3 ลงนาม ints เป็น 1 ในทางที่สรุปได้ซึ่งหมายความว่า 3 แกน * 3 จุดยอด = 9 อะตอมเพิ่มการเรียกต่อ shader แน่นอนว่ามันจะกระจายไปทั่วหน่วยความจำดังนั้นจึงไม่เหมือนกับการกดอะตอมมิกเคาน์เตอร์เดียว 9 ครั้ง แต่มันก็ดูเหมือนว่าจะเป็นนรกมาก อีกทางเลือกหนึ่งคือการเรียกใช้ shader ต่อรูปหลายเหลี่ยมและสร้างรายการปกติของใบหน้า (ฉันอาจแพ็ค x10y10z10 ด้วยวิธีนี้) จากนั้น shader …

1
Texture Cache ทำงานอย่างไรใน GPU ที่ใช้การแสดงผลแบบกระเบื้อง
แคชทำงานอย่างไรกับการเรนเดอร์แบบเรียงต่อกัน? มีเคล็ดลับเกี่ยวกับวิธีปรับปรุงอัตราส่วนการเข้าชมแคชหรือไม่ (ตัวอย่างเช่นหากไทล์ถูกประมวลผลในแนวนอนและฉันมีเซ็กเมนต์แนวตั้งของรูปสามเหลี่ยมที่มีพื้นผิวเดียวกันมันจะทำงานได้แย่กว่าแคชมากกว่าถ้าฉันมีเลย์เอาต์สามเหลี่ยมออกมาในแนวนอนหรือไม่?)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.