Então, eu aprendi recentemente sobre o Compute Shader e parece que tive a mesma idéia que a programação paralela que você faria com CUDA ou OpenCL, mas no pipeline do shader.
Se eu quiser desenhar um milhão de cubos em uma cena, devo usar um método sobre o outro ou ambos. Se ambos, como você divide isso, a GPU não está tentando calcular paralelamente o shader e outro processo ao mesmo tempo
compute-shader
opencl
cuda
FrickeFresh
fonte
fonte
Respostas:
Hoje, não é correto pensar em sombreadores de computação como "no pipeline de sombreador" no mesmo sentido em que os sombreadores de vértice e fragmento estão literalmente conectados a um pipeline. Os sombreadores de computação não estão "conectados" a nada atualmente, não podem conduzir a rasterização ou consumir diretamente as saídas da rasterização.
O que ele permite fazer, no entanto, é consumir e produzir recursos de memória também usados por chamadas de forma relativamente eficiente. O OpenCL torna isso bastante difícil (consulte, por exemplo, https://software.intel.com/en-us/articles/opencl-and-opengl-interoperability-tutorial ). Isso permite integrar com eficiência as passagens de computação no seu renderizador, mas ele não é integrado ao pipeline de renderização
fonte