Los días leí un muy interesante article , diciendo que existen dos arquitecturas generales en el diseño de GPU: IMR y TBDR architecture. Uno de ellos se utiliza en las GPU de tarjetas gráficas modernas basadas en PC, y otro en dispositivos integrados, como teléfonos móviles, etc. •
El principio de diseño central detrás de la arquitectura TBDR es reducir el ancho de banda de la memoria del sistema requerido por la GPU a un mínimo. Como la transferencia de datos entre la memoria del sistema y la GPU es Una de las principales causas del consumo de energía de la GPU, cualquier reducción que se pueda hacer en esta área. permitirá que la GPU opere a una potencia menor. Adicionalmente, la reducción en la memoria del sistema. El uso del ancho de banda y las optimizaciones de hardware asociadas con él (como el uso de buffers en chip) pueden aumentar el rendimiento de la aplicación. Debido a esta estrategia de desarrollo, los núcleos gráficos POWERVR se han convertido en dominantes en el mercado de dispositivos electrónicos integrados.
Tengo curiosidad: ¿por qué necesitan incluso conducir datos de vértices de GPU a CPu y viceversa?
¿Por qué no simplemente cargar todos los datos (al principio) en VRAM, para que una GPU tenga un acceso correcto a ellos sin demoras? Porque, por lo que todos sabemos, todas las operaciones, conectadas a las operaciones en datos de vértice o de texel, se realizan internamente en la GPU, no hay ninguna razón para que la CPU toque estos datos.
La CPU en esta cadena solo es necesaria para enviar comandos a la GPU, como "Oye, tú, GPU, enciende la cámara, que configuré previamente en las coordenadas 0,0,0, por 25.61415 grados en el plano X" o "Oye, GPU, configure la resolución del framebuffer en 1024 * 768, profundidad de color de 32 bpp ".
Tal vez me falte una parte de cómo la GPU y la CPU están funcionando juntas hoy, pero de todos modos.
Espero que me ilumines un poco.