Ben bir lisans projesi için GPU üzerinde izosurface algoritmaları araştırıyorum (özellikle gerçek değerli alanlar yerine sadece ikili giriş / çıkış voksel verilere konsantre). Bu yüzden OpenFrameworks'te çalışan ve çalışan eski eski küplerin bir CPU uygulaması var ve şimdi GLSL hesaplama gölgelendiricilerine taşımaya çalışıyorum ve dalmadan önce tuzakları düşünüyoruz. Sadece dikey ve parça gölgelendiriciler yazdım bu yüzden hepsi benim için yeni.
İlk sorunum, bir çalışma tablosunda düzinelerce veya yüzlerce iş parçacığında etkili bir şekilde arama tablosu nasıl kullanılır? Bir GPU'nun farklı görevler için farklı bellek türlerine sahip olduğunu anlıyorum, ancak her birinin nasıl çalıştığından veya hangi türden kullanılacağından tam olarak emin değilim.
Paul Bourke'nin klasik copypasta tablosu 256 * 16 dizisidir, bu nedenle skaler bayt tipi kullanılıyorsa, bu muhtemelen bir 4kb dokuya veya SSBO'ya paketlenebilir.
Soru, farklı iş parçacıklarının birbirlerini açmalarını nasıl durduracağıdır? Her çalışma grubundaki birçok küp potansiyel olarak aynı yapılandırmaya sahip olabilir, bu nedenle aynı zamanda arabellekteki aynı konuma erişmeye çalışır. Bununla başa çıkmak için bir geçici çözüm veya optimizasyon var mı?