Para entrenar un algoritmo de aprendizaje automático, necesitamos renderizar algo de geometría en OpenGL sin ningún soporte de renderizado de hardware (sin tarjeta gráfica). Así que estábamos pensando en renderizar en software puro, y ya hemos analizado Mesa. Parece que es capaz de renderizar en software puro, pero hasta ahora, solo obtenemos OpenGL 2.x, mientras que necesitamos OpenGL 3.3.
¿Alguien sabe si eso es posible? Y si es así, ¿cómo? Parece que nos encontramos con escollos todo el tiempo.
(Antecedentes, por qué queremos hacer eso: para entrenar el algoritmo de aprendizaje, necesitamos realizar muchas ejecuciones de nuestro software en un clúster de PC, lo que no permite la representación en hardware).
Cualquier sugerencia, idea y puntero serán apreciados.
fuente
Respuestas:
Estoy confundido con tus requerimientos. ¿Está ejecutando el código en una PC o un sistema integrado? Si está ejecutando algo que se parece remotamente a una PC, "cualquier soporte de representación de hardware" básicamente no es cierto. Como mínimo, tiene algunas cosas integradas de Intel. Todavía tengo que ver un sistema sin cabeza que físicamente no tenía un chip de video.
En un sistema sin cabeza que puede renderizar sin una ventana, cómo hacer esto con GLX puede ver detalles en WindowGL OpenGL . En cualquier caso, incluso el hardware más malo será más eficiente que un procesador de software.
Si realmente está en apuros y absolutamente no tiene hardware gráfico, puede usar algo como VirtualGL .
Pero si está sintetizando imágenes en software usando OpenGL es algo al revés. OpenGL está diseñado en torno a las severas restricciones del hardware gráfico. El resultado es que existen importantes restricciones de compilación que pueden ignorarse voluntariamente al renderizar en software. Además, el algoritmo ráster no es muy eficiente cuando se utiliza el hardware actual. Un trazado de rayos de primer orden puede ser más eficiente y paralizar fácilmente múltiples núcleos. Tal vez puedas mirar algo como PovRay .
fuente
Parece que solo OpenGL 2.x es totalmente compatible con el renderizador de software de Mesa.
Sin embargo, esta respuesta sugiere que la mayor parte de la funcionalidad de OpenGL 3.x es compatible a través de extensiones. Por lo tanto, es posible que desee probarlo.
fuente