DirectX 12 แสดงคิวคำสั่งสำหรับกราฟิก (เรียกว่า "Direct") คำนวณหรือคัดลอกงาน ในแง่ของฟังก์ชั่นที่ให้มาแต่ละชุดสุดยอดของชุดต่อไปนี้ สเปคระบุว่าคิวคำสั่งที่สามารถดำเนินการควบคู่กันไปโดยอุปกรณ์ อย่างไรก็ตาม API ไม่ได้ จำกัด จำนวนคิวคำสั่งในทางใดทางหนึ่ง (อย่างน้อยฉันก็ไม่ได้ตระหนักถึงข้อ จำกัด ใด ๆ )
เห็นได้ชัดว่าผู้ขายต่างกันจัดการเรื่องนี้แตกต่างกันมาก:
- Intel ระบุไว้ในงานนำเสนอล่าสุด (สไลด์ 23) ซึ่งปัจจุบัน GPU ของพวกเขาไม่สามารถจัดการกับกราฟิกและการคำนวณแบบขนานและเครื่องถ่ายเอกสารมีปริมาณงานที่ไม่มากนัก พวกเขาไม่แนะนำให้ใช้กราฟิก / คิวการคำนวณหลายตัว
- เอเอ็มดีเริ่มต้นเมื่อนานมาแล้วในการโฆษณาการใช้งานคิว / "อะซิงโครนัสเชดเดอร์" โดยเริ่มจาก Mantle และคอนโซลคอนโซลปัจจุบัน นอกจากนี้ยังมีนักพัฒนาบางคน ( ตัวอย่าง ) ที่ยืนยันประสิทธิภาพที่เพิ่มขึ้นอย่างมีนัยสำคัญโดยการดำเนินการคำนวณและงานกราฟิกในแบบคู่ขนาน
- เมื่อไม่นานมานี้มีความกังวลเกี่ยวกับ Nvidia ที่ไม่รองรับ shader แบบอะซิงโครนัสในฮาร์ดแวร์: การใช้กราฟิกแยกกันและคิวการคำนวณในคราวเดียวดูเหมือนจะทำให้สิ่งต่าง ๆ ช้าลงซึ่งบ่งชี้ถึงการจำลองไดรเวอร์ ในทางตรงกันข้ามการดำเนินการคัดลอกแบบขนานได้รับการสนับสนุนโดย CUDA เป็นเวลานานซึ่งทำให้ชัดเจนว่าเอ็นจิ้น DMA สามารถทำงานได้อย่างอิสระ
มีวิธีใดบ้างในการตัดสินใจรันไทม์หากการส่ง CommandLists ไปยัง CommandQueues หลายรายการนั้นมีความหมายแทนที่จะเป็น Single Command? (เนื่องจากกรณีในอดีตไม่เกี่ยวข้องกับค่าใช้จ่ายด้านวิศวกรรมมาก)
ในขณะที่ฉันสามารถเห็นได้อย่างง่ายดายว่ามันมีประโยชน์ในการดำเนินการหน่วยความจำแบบขนานกับการดำเนินการคำนวณ / กราฟิกอย่างไรมันทำให้ฉันมีความซับซ้อนโดยไม่จำเป็นในการเรียกใช้การประมวลผลหลายอย่างและกระบวนการกราฟิกแบบขนานโดยไม่จำเป็น ยังไม่ชัดเจนสำหรับฉันว่าสิ่งนี้จะนำไปสู่ประสิทธิภาพที่ดีขึ้นอย่างมีนัยสำคัญอย่างไรก็ตาม; ยกเว้นกรณีทางพยาธิวิทยาที่มีงานเรียงลำดับขนาดเล็กจำนวนมากไม่สามารถสร้างภาระ GPU ได้เพียงพอ