Şu anki kavrayışım, bir gölgelendirici dosyasında yapılan herhangi bir şeyin GPU'da yapılması ve (Java, benim durumumda) kodumda yapılan herhangi bir şeyin CPU'da yapılmasıdır.
Bu doğru bir açıklama mı?
Şu anki kavrayışım, bir gölgelendirici dosyasında yapılan herhangi bir şeyin GPU'da yapılması ve (Java, benim durumumda) kodumda yapılan herhangi bir şeyin CPU'da yapılmasıdır.
Bu doğru bir açıklama mı?
Yanıtlar:
Bunun özü bu.
Prensip olarak, platform akla gelebilecek her şeyi yapabilirdi. Örneğin, x86'dan GPU koduna derlenmiş kodun tam zamanında çevirisini yapan gelişmiş bir işletim sistemi düşünülebilir. Benzer şekilde, OpenGL sürücüleri ana CPU'da ne isterse çalışabilir.
Ama gerçekten, az önce tanımladığınız, olan şey.
Genel olarak, Evet. Java, cpu üzerinde çalışan programları yazmak için kullanılır. Gölgelendirici dilleri (cg, hlsl, et al) gpu üzerinde çalışan programları yazmak için kullanılır.
Kuralın bir istisnası , boşluğu doldurabilecek üçüncü taraf apisleri kullanmak olacaktır .
david van brink genel olarak sorunuzu yanıtladı.
Ancak söylediği gibi, OpenGL sürücüsü CPU'da bir şeyler çalıştırabilir ve aslında çok şey olur. Özellikle bazı tuhaf eski işlevlerin grafik kartlarına uygulanamayacağı uyumluluk bağlamlarıyla. Yazılım öykünmesi gerektirirler. Örneğin, CPU üzerinde bu noktalama yürütülmeden önce duydum. Ayrıca toplama ile sürprizler bekleyebilirsiniz.
Bu sürprizler MacOS'ta 2.1 bağlamı kullanarak daha da fazla olabilir, çünkü Apple OpenGL'nin görüşlerini donanım aralıklarında oldukça iyi bir şekilde birleştirdi ve bazı küçük donanımlarda taklit edilmesi gereken bazı şeyler yok. İçerik oluşturma kodu açık bir şekilde bir yazılım cihazı belirtiyorsa, ENTIRE OpenGL 2.1 spesifikasyonunun CPU üzerinde tam olarak çalıştırılması mümkün olacak kadar ileri gider.
Tersine, vexcl veya boost compute veya microsoft'un AMP veya nVidia itme gibi bilgi işlem kitaplıkları aracılığıyla yürütülen kod, API kurulum bayraklarına bağlı olarak GPU veya CPU üzerinde yürütülebilir.
Ve son dokunuş için, CPU'nun içinde SIMD olarak adlandırdığımız bir DSP mimarisine de sahipsiniz. Intel'in ispc derleyicisi, en iyi şekilde yararlanmanıza yardımcı olmak için derleme zamanında çok sayıda performans tanılamasıyla SIMD şeritlerinde çalışması için "sağlanan" kod oluşturulmasına yardımcı olur. Buna OpenMP ekleyin ve GPU'ların kavramlarına yaklaşan çok iş parçacıklı SIMD alabilirsiniz. Üst düzey bir CPU'nuz ve düşük uçlu GPU'nuz varsa, bu aslında daha performanslı olabilir.
http://ispc.github.io/