Me gustaría saber cuántas unidades paralelas para procesar vértices tiene una GPU.
Esta página de Wikipedia proporciona un GFLOPS y una velocidad de reloj, por ejemplo, para el Radeon 5850 "Broadway PRO", obtienes 1000 GFLOPS. Suponga que ejecutar un sombreador de vértices es de 100 flops, entonces eso significa que puede procesar 1000e9 / 100 = 10e9 vértices por segundo.
¿Existe un número de unidades de procesamiento en paralelo publicado por el fabricante , o una forma de saber ese número?
Respuestas:
No, lo más seguro es que no.
Básicamente, debe considerar sospechoso cualquier cálculo de la velocidad de ejecución de cualquier código basado únicamente en el recuento "FLOPS". De hecho, generalmente es mejor si ignoras completamente FLOPS por completo.
No definió el término "unidad paralela"; sin esa definición, solo podríamos adivinar lo que quieres.
Tome la Radeon 5870. Tiene 1600 unidades de punto flotante. Eso significa que, para cada ciclo, puede ejecutar 1600 operaciones de punto flotante escalar a la vez. Sin embargo, cada código de operación VLIW funciona en registros matemáticos vectoriales de 5 vías. Entonces, la granularidad más pequeña posible del código real es 1600/5, o 320 (nota: esta es una gran simplificación). Eso es 320 hilos.
Sin embargo , no es así como funciona. No tienes 320 rutas de ejecución separadas. No puede tener 320 piezas diferentes de código ejecutándose en 320 unidades diferentes. Vea, los VLIW de 5 vías están agrupados en núcleos SIMD de 4 vías. Cada SIMD puede tener su propia ruta de ejecución y su propio código fuente. Cada VLIW dentro de un núcleo SIMD puede tener datos separados, para que calculen valores separados. Pero cada VLIW dentro de un núcleo SIMD ejecuta las mismas instrucciones en paso de bloqueo con los otros VLIW en ese núcleo.
Entonces, realmente, solo tienes 320/4 u 80 hilos en total. Pero, de nuevo, depende de qué tipo de "unidad paralela" esté hablando. Técnicamente, 1600, 320 y 80 son respuestas legítimas.
Y eso es solo para una arquitectura específica . La línea Fermi de NVIDIA (GeForce 4xx y superior) utiliza una arquitectura muy diferente. La línea Cayman de ATI (Radeon 69xx) cambia los VLIW de 5 vías a VLIW de 4 vías. Su próxima arquitectura también puede tener algunas diferencias significativas.
Sin saber lo que está buscando, simplemente no hay forma de responder la pregunta.
fuente
No entiendo, ¿qué quieres decir con unidad de procesamiento en paralelo? unidades de sombreado? Debido a que una ppu y una gpu hoy en día son básicamente lo mismo, quiero decir que la ppu ES la gpu si estamos hablando de ati radeon.
Supongo que te refieres a las unidades funcionales, tienes que leer el
Config core
campo en wikipedia:Config Core – The layout of the graphics pipeline, in terms of functional units. Over time the number, type and variety of functional units in the GPU core has changed significantly; before each section in the list there is an explanation as to what functional units are present in each generation of processors.
así que para el radeon dices que tendría:
que para el broadway pro es:
800:40:16
Esto significa que tiene 800 unidades de sombreado, 40 unidades de mapeo de textura y 16 unidades de salida de render.
EDITAR: Bueno, no, parece que la unidad de procesamiento en paralelo también se aplica a lo que quieres decir, así que supongo que es un poco confuso llamarlos de esa manera. Yo los llamaría unidades sombreadoras o núcleos simd.
fuente