Con la disponibilidad de sombreadores de cómputo tanto para DirectX como para OpenGL, ahora es posible implementar muchos algoritmos sin pasar por la tubería de rasterización y, en cambio, usar computación de propósito general en la GPU para resolver el problema.
Para algunos algoritmos, esto parece convertirse en la solución canónica intuitiva porque no son inherentemente basados en rasterización, y los sombreadores basados en rasterización parecen ser una solución alternativa para aprovechar la potencia de la GPU (ejemplo simple: crear una textura de ruido. No es necesario rasterizar aquí ningún quad) )
Dado un algoritmo que puede implementarse en ambos sentidos, ¿existen beneficios generales (potenciales) de rendimiento sobre el uso de sombreadores de cómputo frente a la ruta normal? ¿Hay inconvenientes que debemos tener en cuenta (por ejemplo, ¿hay algún tipo de sobrecarga inusual para cambiar / calcular sombreadores en tiempo de ejecución)?
¿Hay quizás otros beneficios o inconvenientes a considerar al elegir entre los dos?
fuente
Respuestas:
No hay una respuesta correcta si se va a beneficiar directamente de la aplicación de sombreadores de cálculo / GPGPU, esto depende en gran medida del tipo de algoritmo que esté implementando, los sombreadores de cálculo y CUDA / OpenCL son un enfoque más generalizado para superar algunas de las limitaciones de ese viejo lenguaje de sombreado. Los beneficios más importantes que obtendrá:
Bueno, en mi opinión , si desea seguir la ruta de los sombreadores de cómputo, aunque ciertos algoritmos pueden ser más adecuados, hay ciertas consideraciones que debe tener en cuenta:
Sin embargo, estoy seguro de que es excelente para el futuro y será una gran experiencia de aprendizaje. ¡Buena suerte!
fuente