Dengan ketersediaan compute shaders untuk DirectX dan OpenGL sekarang mungkin untuk mengimplementasikan banyak algoritma tanpa melalui pipa rasterisasi dan sebagai gantinya menggunakan komputasi tujuan umum pada GPU untuk menyelesaikan masalah.
Untuk beberapa algoritma ini tampaknya menjadi solusi kanonik intuitif karena mereka secara inheren bukan berbasis rasterisasi, dan shader berbasis rasterisasi tampaknya menjadi solusi untuk memanfaatkan daya GPU (contoh sederhana: membuat tekstur noise. Tidak perlu quad dirasterisasi di sini ).
Diberikan algoritma yang dapat diimplementasikan dengan dua cara, apakah ada manfaat kinerja (potensial) umum daripada menggunakan penghitung komputasi vs menggunakan rute normal? Apakah ada kekurangan yang harus kita perhatikan (misalnya, apakah ada semacam overhead yang tidak biasa untuk beralih dari / untuk menghitung shader saat runtime)?
Apakah mungkin ada manfaat atau kelemahan lain yang perlu dipertimbangkan ketika memilih di antara keduanya?
sumber
Jawaban:
Tidak ada jawaban yang tepat jika Anda akan mendapat manfaat langsung dari compute shadrs / appraoch GPGPU, ini sangat tergantung pada jenis algoritma yang Anda implementasikan, compute shaders dan CUDA / OpenCL adalah pendekatan yang lebih umum untuk mengatasi beberapa keterbatasan hack bahasa shading lama. manfaat paling penting yang akan Anda dapatkan:
Nah menurut saya , jika Anda ingin pergi rute komputasi shader, meskipun algoritma tertentu mungkin lebih cocok, ada pertimbangan tertentu yang perlu Anda pertimbangkan:
Namun saya yakin ini bagus untuk masa depan, dan akan menjadi pengalaman belajar yang luar biasa. Semoga berhasil!
sumber