DirectX 12 memperlihatkan antrian perintah untuk grafik (disebut "Direct"), menghitung atau menyalin tugas. Dalam hal fungsionalitas yang disediakan, masing-masing adalah super-set yang berikut ini. The Spesifikasi menyatakan bahwa antrian perintah dapat dijalankan secara bersamaan oleh perangkat. Namun, API tidak membatasi jumlah antrian perintah dengan cara apa pun (setidaknya saya tidak mengetahui adanya batasan).
Tampaknya, berbagai vendor menangani ini sangat berbeda:
- Intel menyatakan dalam presentasi baru - baru ini (slide 23) bahwa saat ini GPU mereka tidak mampu menangani Grafik & Komputasi secara paralel dan bahwa mesin fotokopi memiliki throughput yang lemah. Mereka menyarankan agar tidak menggunakan banyak grafik / menghitung antrian.
- AMD mulai sejak lama untuk mengiklankan penggunaan antrian / "asynchronous shaders" yang dimulai dengan Mantle dan konsol gen saat ini. Ada juga beberapa pengembang ( contoh ) yang mengkonfirmasi keuntungan kinerja yang signifikan dengan menjalankan tugas komputasi dan grafik secara paralel.
- Baru-baru ini ada beberapa keributan tentang Nvidia yang tidak mendukung asynchronous shader di perangkat keras: Menggunakan grafik yang terpisah dan antrian Compute secara bersamaan tampaknya membuat hal-hal lebih lambat yang menunjukkan emulasi driver. Operasi penyalinan paralel, di sisi lain, telah didukung oleh CUDA untuk waktu yang sangat lama, yang membuatnya jelas bahwa mesin DMA dapat bekerja secara independen.
Apakah ada cara untuk memutuskan pada saat runtime jika itu berarti untuk melakukan CommandLists ke beberapa CommandQueues alih-alih satu? (mengingat bahwa kasus sebelumnya tidak melibatkan banyak overhead teknik)
Walaupun saya dapat dengan mudah melihat bagaimana melakukan operasi memori secara paralel untuk menghitung / operasi grafis, saya merasa sangat rumit untuk menjalankan banyak proses komputasi dan grafik secara paralel (kecuali tidak ada manfaat utama perf). Juga tidak jelas bagi saya, bagaimana hal ini dapat menyebabkan kinerja yang jauh lebih baik; kecuali untuk kasus patologis di mana banyak tugas sekuensial kecil tidak dapat menghasilkan beban GPU yang cukup.