En las últimas horas ha aparecido la siguiente imagen:
No sabemos que operación es la de los FLOPS (no nos los dicen nunca), el benchmark es completamente desconocido y no sabemos cual es la precisión, si FP16, FP32… Se supone que es FP32 y digo se supone porque la gente no ha tenido en cuenta que pueden ser operaciones en FP16 y de ahí lo de los 512 núcleos por parte de la GPU pero… Ya de paso aprovechare para contar una cosa muy simple… Nvidia y AMD llevan años mintiendo sobre el número de núcleos de sus GPUs.
Un núcleo es una CPU completa, esto significa contando la unidad de control y las ALUs, las GPUs son un caso especial porque realmente tenemos un montón de núcleos completos pegados a un planificador que se encarga de repartir las tareas entre los diferentes núcleos.
Cuando AMD y NVidia te hablan de núcleos en el marketing no te están hablando del núcleo al completo sino de las ALUs.
Por ejemplo AMD te dice que una Compute Unit tiene 64 Stream Processors.
En realidad hay unas 64 ALUs agrupadas en 4 grupos de 16 ALUs cada una, pero no hay 64 núcleos porque no hay 64 combinaciones de unidad de control y ALU. Es decir, no son núcleos completos:
Pe… pero Urian… es una GPU… funciona distinto.
Que no… ¡leñe! Hay conceptos que son universales y en el caso de las Compute Units de AMD toda la Compute Unit es realmente el núcleo, es realmente un procesador pero no son las ALUs.
Lo mismo ocurre con Nvidia, por ejemplo en el Nvidia Maxwell una unidad SMM no tiene 128 procesadores…
Pero si os fijáis bien aquí el caso es distinto tenemos 4 núcleos con 32 ALUs cada uno, pero no tenemos unos 32 núcleos aunque Nvidia los llame núcleos CUDA. Ahora bien, dicho esto… ¿Que esta contando dicho benchmark? ¿El número de núcleos o el número de ALUs? Lo digo porque la CPU que sería un A57 tiene una unidad SIMD llamada Neon, las unidades SIMD realizan la misma instruccion sobre múltiples datos en paralelo y para ello utiliza múltiples ALUs.
Pero no cuenta los núcleos de la CPU contando las ALUs sino los núcleos completos… ¿Entonces de donde sale el 512? Fácil, las GPUs suelen tener una ROM accesible en su interior que marca sus especificaciones… ¿Y como es que dice 512? Es muy sencilla la explicación, en realidad tenemos unas 512 ALUs en FP16 que se encuentran agrupadas en grupos de 2 ALUs como una pequeña unidad SIMD de dos componentes para cuando tienen que operar en coma flotante de 32 bits.
Pe… pero Urian, el benchmark dice 512 núcleos para la GPU y Nvidia cuando habla del X1 siempre habla de 256 núcleos… ¿Como es que no aceptas que tiene el doble de unidades?
Tienes unos 10 niños pequeños que alimentar con n comida y se te ocurre alimentar 20 (doble de núcleos) con n comida (ancho de banda)… Es decir, con un bus de 64 bits LPDDR4 colocar unos 512 núcleos CUDA es…
Lo que me hace pensar que es un fake como una catedral y quien lo ha hecho no tiene en cuanta que las GPUs son procesadores que devoran ancho de banda, pero literalmente hablando y su rendimiento por tanto depende del mismo. Duplicar los núcleos sin duplicar el ancho de banda supone que el grado de rendimiento/utilización de cada uno cae en picado y no se aprovechan al 100%, lo cual es un desaprovechamiento enorme de consumo y espacio.
Es decir, tenemos unas 512 ALUS que pueden operar en FP16 y que se pueden agrupar de dos en dos para funcionar como 256 ALUs en FP32 a las que Nvidia llama núcleos CUDA. Dicho de otra manera no hay cambios en ese aspecto respecto al X1 en ese aspectro, pero como comente ayer no no es un X1 al uso por eso hice la siguiente comparación con lo poco que sabemos de la limitada documentación del SDK.
Si miramos la tradición de Nvidia con las consolas veremos que:
- El NV2A de Xbox se basaba en el NV20 y el NV25 (GeForce 3 y GeForce 4) pero no era ninguno de los dos chips sino una version optimizada del mismo.
- El RSX de PS3 era una variación del G71 (GeForce7) pero no era ese chip sino una version modificada.
Y en el SDK de la Switch aparece la siguiente referencia:
Esto viene del SDK oficial que tiene completa autoridad sobre cualquier otra cosa, de entrada cualquier cosa que contradiga al SDK oficial debería estar puesta ya no en entredicho sino ser directamente descartada o mirarla con lupa. A mi personalmente lo que se me ocurre es que si la informacion es cierta cuente las ALUs en FP16 como unidades CUDA y como procesadores cuando no lo son. Pero es que la propia Nvidia no lo cuenta así en sus propias GPUs… ¿Que sentido tiene? Ninguno, por eso es un bulo.
Lo otro que me llama la atención son las supuestas velocidades de reloj de la GPU y la CPU, al moverse entre los modos docked y undocked lo que debería variar es el multiplicador de velocidad de la GPU pero no la velocidad base. Es decir, la división entre la velocidad de reloj de la GPU en modo docked y en modo undocked debería dar un entero.
1005/275= 3.654
Por lo tanto las especificaciones son una falsedad enorme de entrada. En el caso del X1 en la Shield TV 1er modelo la velocidad base de la GPU son los 76.8 Mhz. Dependiendo la velocidad de la GPU de la velocidad de reloj de la CPU y sin poder estar ambas al máximo, quedando la cosa de la siguiente manera:
MF | Mhz | Max. CPU | Sistema |
1 | 76,8 | 2 Ghz | – |
2 | 153,6 | 2 Ghz | – |
3 | 230,4 | 2 Ghz | – |
4 | 307,2 | 2 Ghz | X1 SDK |
5 | 384 | 2 Ghz | – |
6 | 460,8 | 2 Ghz | – |
7 | 537,6 | 2 Ghz | Shield TV |
8 | 614,4 | 1 Ghz | Shield TV |
9 | 691,2 | 1 Ghz | Shield TV |
10 | 768 | 1 Ghz | Shield TV/X1 SDK |
11 | 844,8 | 1 Ghz | Shield TV |
12 | 921,6 | 1 Ghz | Shield TV |
¿Entonces es un X1 al uso? Hay una cosa que viendo el tamaño del chip descarto de entrada, que lleve memoria embebida.
Lo que no descarto son otras optimizaciones pero eso ya lo hablare en otra entrada, la cual va a ser muy técnica. Por el momento creo que con esto es suficiente.
¿Se sabe que % del código en un videojuego puede llegar a estar en fp16?
Me gustaMe gusta
es que no tenía sentido. 512 núcleos reales cuando ni la propia Nvidia ha creado algo así para su uso comercial en sus productos……. telica.
el hype está demasiado alto y la peña se cree cualquier cosa
Me gustaMe gusta
Más bien es una reacción al antihype
Me gustaLe gusta a 1 persona
Creo que en fp16 puede ir entre un 10% a un 20% más no por que se notaría que es peor, 512 tampoco me lo creo, es más fácil subir frecuencias de velocidad que meter eso y luego dar el ancho de banda suficiente, así que lo que dice urien es totalmente correcto debe ser un bulo del quince
Me gustaMe gusta