pregunta de diseño para GPU

0

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.

    
pregunta PaulD

2 respuestas

0

Hay una serie de arquitecturas, en realidad. Y no son tan diferentes como lo afirman los diferentes proveedores (aunque todavía hay diferencias).

NVIDIA generalmente construye GPU que funcionan de manera muy parecida a las CPU de propósito general: hay un gran buffer de marcos en GDRAM, hay una gran cantidad de cachés grandes para la recuperación de la textura y el almacenamiento en búfer, y hay grupos de procesadores de píxeles (generalmente 4x2 píxeles) que operar en algún primitivo particular a la vez. Para la combinación o escritura de framebuffer, la E / S pasa por el bus de memoria, algo ayudado por los cachés. Si varios objetos diferentes cubren los mismos píxeles (sobregiro), los mismos píxeles pueden ir hacia / desde el framebuffer más de una vez durante un cuadro en particular.

POWERVR e Intel generalmente construyen procesadores "en mosaico", donde tienen una arquitectura similar (4x4 tiles IIRC) pero para evitar la gran carga de entrada / salida en el GDDR, clasifican todas las primitivas antes de la rasterización, por lo que solo necesitan para cargar / escribir un bloque particular de píxeles de framebuffer una vez por cuadro. Al menos, ese es su objetivo de diseño, esto no siempre se logra necesariamente. La ventaja es que necesita gastar menos ancho de banda en la lectura y escritura de los píxeles del framebuffer. Sin embargo, se usa aproximadamente la misma cantidad de ancho de banda de textura, por lo que los ahorros no son necesariamente órdenes de magnitud (depende de la escena).

La arquitectura de Xbox es un poco híbrida: tiene EDRAM que es más grande que los mosaicos de bittytyty pero más pequeño que un framebuffer de alta definición completo. La GPU recorre las primitivas y las escribe en la EDRAM, que luego se "resuelve" en el framebuffer de salida (esto también calcula cosas como anti-aliasing). La framebuffer de EDRAM está hecha para ser lo suficientemente rápida como para no ser bloqueada. La pantalla se dividirá en un número determinado de áreas de mosaico, de 1 a 4 para un marco en particular, por lo general.

    
respondido por el Jon Watte
0

En ese documento, la memoria del "sistema" se refiere a la "memoria DRAM utilizada por el sistema de gráficos que no está en el chip". No hablan de la CPU en absoluto.

En el contexto normal de las PC, "GPU" significa la tarjeta completa, el procesador gráfico y DRAM dedicado. Los sistemas integrados a menudo no tienen RAM o buses separados.

    
respondido por el pjc50

Lea otras preguntas en las etiquetas