viernes, 3 de marzo de 2017

Ronda de análisis de AMD Ryzen 7 [actualizado 25/03/2017]

Desde hoy se pueden comprar los nuevos procesadores de AMD de 8 núcleos y 16 hilos. Como con cualquier nuevo dispositivo hardware, la web se llena de análisis (reviews).

En general se puede decir que tienes un octacore por la mitad de precio o menos que el de Intel. El Ryzen 7 1700 vale 369 euros y puede subirse hasta 4.0 Ghz. Quizá en el futuro puedan subir más con nuevos steppings. El Core i7 6900K cuesta 1199 euros.

En los próximos meses habrá actualizaciones de BIOS y parches en aplicaciones y juegos que no funcionan de forma óptima. Basta con echarle un vistazo a las marcas obtenidas en Phoronix, cuyos benchmarks son compilados desde código fuente. AMD supera a todos los procesadores de Intel y a veces queda por debajo del 7700K por temas de frecuencia. Excepciones son Stockfish, Himeno y FFmpeg. Algo de compilador o mala optimización debe haber. Con x264 (Handbrake) el 1800X supera al resto de rivales tal y como se puede ver en HardOCP.

En Overclockersclub nos podemos fijar en Hitman, juego el cual obtiene más FPS por mejora de frecuencia en Intel que en AMD. El incremento del 6700K (4.0 Ghz) al 7700K (4.2 Ghz) es mayor que el OC del 1800X de 3.8 Ghz a 4.0 Ghz. Algo raro.

Como recomiendan en HardOCP, si sólo vas a jugar, a día de hoy y a falta de los parches correspondientes para AMD, el 7700K sigue siendo mejor opción a resoluciones inferiores a 2560x1440 y no por demasiado. Si haces algo más que jugar o tiras de realidad virtual, AMD es la elección. Además, con 8 núcleos puedes tener 4 a full y tener otras tareas (streaming de partidas en vivo, antivirus de fondo, etc.) sin afectar a la experiencia de juego (tiempo por fotograma, percentiles). Este detalle se puede observar en HardOCP y si no me equivoco en Tom's Hardware también. la variabilidad de los FPS es muy pequeña a diferencia de los quadcores de Intel. Esto significa que la experiencia de juego es más constante, con menos sobresaltos.
1800X vs 6900K vs FX-9590 en diversas áreas

A futuro, en el inmediato (meses vista), AMD debería igualar el rendimiento en los casos que no lo hace. En un futuro a medio plazo los juegos cada vez serán más paralelos. APIs como Vulkan y Direct3D 12 son cada vez más comunes. Ya veremos que consiguen Bethesda (Doom y Prey entre otros) y AMD con su acuerdo.

Como nota adicional, desactivando el SMT (multihilo simultáneo), dejando 8 núcleos y 8 hilos en vez de 16, los juegos van mejor. Al estilo de cuando se tuvo que parchear el Windows para que los Bulldozer fueran mejor.
Linux desde la versión 4.10 tiene añadido el soporte inicial necesario para la planificación de procesos con los nuevos procesadores de AMD. Estos cambios han sido portados a Linux 4.9.10. Así pues, los usuarios de Windows no os extrañéis que la recomendación sea usar Windows 10 por ser el SO de Microsoft que reciba las actualizaciones adecuadas. El 8 y el 7 os podéis olvidar, como ocurre con DirectX 12.

Respecto a procesador para productividad, es sin duda alguna mejor que cualquier producto de Intel. Virtualización, codificación de vídeo, compilación de código, etc. todo va más rápido con los Ryzen 7 de AMD. Phoronix lo atestigua y sitios que utilizan benchmarks sin recompilar (optimizados vaya usted a saber cómo) dan por lo general un rendimiento superior con AMD.

En Hardware FR utilizan x265 y x264 en vez de Handbrake:

--preset slower --tune grain --crf 20 --ssim --psnr


El AMD es capaz de igualar al Intel Core i7 6950X, de 10 núcleos y 1700 euros de coste. El Core i7 2630QM @2.3 GHz que gasto, comprime 4 fps con
--crf 18
. Es un aumento de más de 5x.
Hardware.fr también prueba Stockfish y Komodo como motores de ajedrez. A diferencia de Phoronix, los resultados de Hardware.fr no favorecen al 7700K, logrando analizar más kilonodos por segundo el AMD. Hay que decir que en Phoronix toman el tiempo de ejecución del benchmark en vez del número de jugadas analizadas por segundo. Además, la versión de Hardware.fr es más nueva (Stockfish 8 es del 2016). En Phoronix emplean un snapshot del 2014.





Aparte de esta necesaria comparación con Intel, los nuevos chips de AMD son superiores a los anteriores AMD FX en todos los casos.

En lo que queda de año saldrán los de 6 núcleos en el 2º trimestre y los de 4 núcleos en la segunda mitad del año. Es de esperar que los 6 núcleos sean Ryzen 7 que no hayan cualificado para 8 núcleos. Los Ryzen 3, con 4 núcleos, muy posiblemente supongan una revisión hardware nueva (nuevo stepping) y los Ryzen 7 y 5 que se vendan por entonces tengan posibilidad de mayor reloj. No sería raro encontrarnos con Ryzen 7 1850X, 1750X y 1750 (y porqué no, quizá un 1900X de 12 núcleos :P).

¿Porqué digo esto? bueno, los Ryzen están compuestos por CCX, Core Complexes. Cada CCX son 4 núcleos y 8MiB de caché L3. Así pues, los Ryzen 5 que saldrán en el Q2 serán Ryzen 7 que no dan para 8 núcleos. Y los Ryzen 3 que saldrán en la 2ª mitad del año serán silicio con un sólo CCX y no 2 CCX con 1 desactivado. Así pues, probablemente AMD esté revisando el RTL escrito en Verilog y una vez hayan corregido varios de los bugs que tenga, lancen el Ryzen 3 y los Ryzen 5 y 7 a partir de entonces estarán basados en dicho RTL revisado. Aparte del tiempo necesario para poner las fábricas a pleno rendimiento (proceso que también sirve para encontrar fallos en procedimientos logísticos así como en la misma fabricación de obleas), no hay otro motivo más que el de lanzar una versión revisada para esperar hasta la segunda mitad del año. En la ventana de lanzamiento de Ryzen 3 también están las APUs y chips para portátiles.


Actualizaciones
  • 10 marzo de 2017
  •  13 de marzo de 2017
    • PCPer analiza el procesador y la planificación de hilos de Windows 10. Debido a la naturaleza de estar compuestos por varios CCX, si los hilos se mueven de un CCX a otro se pierde rendimiento. Así pues, tanto el scheduler de Windows como los programadores deberían actualizar sus programas para mantener los hilos siempre en el mismo CCX y particionar los datos de manera que siempre (o casi siempre) sean accedidos desde el mismo CCX. Recordemos que PS4 y Xbox One llevan procesadores AMD dispuestos de la misma manera. Son octacores formados por 2 CCX. Así pues, las optimizaciones por temas de disposición de los núcleos echas en las consolas tendrán que llevarlas a los códigos de PC. Y Microsoft tendría que tratar a los procesadores de AMD como si fueran dos nodos NUMA.
  • 15 de marzo de 2017
    • En el foro de comunidad de AMD Robert Hallock, encargado de márquetin técnico de AMD, ha publicado una lista de opciones a configurar en un ordenador con Ryzen para mejorar el rendimiento. Como caso de uso ponen el juego F1 2016 con el que obtienen una mejora del 36% con respecto al sistema base con resolución 1080p.


    • La mejora en rendimiento con estos ajustes permite a Ryzen 7 superar a todos los procesadores Intel. En hardware.fr probaron el Ryzen 7 mal configurado, con 16 cores sin SMT activado y obtuvieron 102 FPS de media. Con la configuración adecuada (8 cores y SMT activado) el juego alcanza los 133 FPS, superando todos los resultados de procesadores Intel sacados por hardware.fr:

Con una proyección del +30%, el Ryzen 7 queda arriba del todo de la tabla con la corrección del bug del F1 2016 para detectar la topología del procesador junto con el aumento de la frecuencia de la memoria y el aumento de la frecuencia del procesador, aunque esto último es lo que menos mejora aporta

    • En purepc.pl  corroboran la mejora por el aumento de 2133 MHz a 2933 MHz de la memoria RAM. Click en el link para ver las mejoras en FPS. Varían del 1% al 10% sólo por la memoria. Sin overclock ni cambios en la gestión de hilos, etc.
Otra cosa que se puede notar es que Ryzen sí se beneficia de memoria RAM a mayor frecuencia. Cuanto más elevada es la frecuencia de la RAM, mejor rendimiento. Pasar de 2133 Mhz a 2933 Mhz reporta un 7,4% más de rendimiento en el F1 2016. Sin embargo, Kaby Lake y Skylake también salen beneficiados por el aumento de ancho de banda a la memoria. Pero no hay que olvidar el problema con el uso correcto de la topología de Ryzen, que con el F1 da una mejora del 20%.

  • 25 de marzo de 2017. En este link a YouTube se puede ver una comparativa del Ryzen 7 1700X @ 3.97 Ghz con distintas frecuencias de memoria RAM a 1080p contra el Core i7 7700K @ 5 Ghz. He aquí los resultados (media, media por encima del percentil 99 y media por encima del percentil 99,9):
El Crysis 3 funciona mucho mejor con el procesador de AMD. Crysis debe de ser un juego que implemente bastante paralelismo y por tanto las caídas de tasa de fotogramas por segundo (reflejadas en los percentiles >= 99%) son menores cuantos más núcleos disponibles hay.
Estos resultados muestran que con el suficiente ancho de banda y una configuración adecuada, Ryzen 7 puede igualar y/o superar al Core i7 7700K pese a funcionar a menor frecuencia. Resoluciones 1080p.

Resulta que la frecuencia de la interconexión (un crossbar switch en vez de un anillo) entre los 2 CCX de los Ryzen depende de la frecuencia del bus de memoria. Así que cuanta más frecuencia tenga la RAM, más frecuencia tiene la interconexión entre CCX y más ancho de banda hay entre ellos. Intel en cambio utiliza un anillo y su frecuencia es independiente de la RAM. Por tanto mientras que aumentar la frecuencia de la RAM en Intel sólo significa aligerar los fallos en la caché L3, en AMD significa aligerar los fallos en L3 y la comunicación entre núcleos, útil por si un dato está en la rodaja de L3 de otro núcleo. En el caso de Intel dicha petición se sirve a través del anillo, a la frecuencia del anillo de interconexión.

La interconexión de AMD tiene la escalabilidad suficiente para la cantidad de CCX empleada. Naples sólo utiliza 4. Ryzen, 2. Los crossbars tienen menor latencia y más ancho de banda. Sin embargo, son más caros. AMD además los mantiene a la misma frecuencia que la RAM, quizás para tener un coste en ciclos idéntico a la hora de acceder a RAM o a otro CCX. En su día AMD indicó que su predictor neuronal les daba una gran parte de la mejora en rendimiento, así que las latencias realmente no deberían ser un problema ya que un buen predictor implica una alta eficiencia en el ancho de banda de interconexión y memoria -> mejor tasa aciertos en las prebúsquedas de datos útiles con lo que se puede compensar la mayor cantidad de ciclos de reloj de procesador necesarios. Ahora bien, si no tienes suficiente ancho de banda, por muy buen predictor que tengas no traerás a tiempo los datos de memoria o de otros CCX. Estamos hablando de que los anillos de los Core i7 funcionan a 3 Ghz mientras que el crossbar de 256 bits (32 Bytes) de Ryzen funciona a 1,06 - 1,2 Ghz en los análisis realizados. Es decir, por cada ciclo del crossbar de Ryzen pasan más ciclos de procesador que por cada ciclo del anillo del Core i7. Si tus hilos no paran de moverse o de ser creados y destruidos, no es una situación óptima. Esto en aplicaciones de productividad y servidores no ocurre. En videojuegos... eso es otro mundo. Además, la alta latencia de los anillos cuando hablamos de procesadores de 4 núcleos no se deja notar.


Total: aún siguen haciendo falta nuevas UEFI/BIOS con soporte para frecuencias de RAM más elevadas (a día de hoy hay kits de 4266 Mhz DDR -2133 Mhz reales- y el día de las reviews de Ryzen las placas no daban más de 2400 Mhz -1200 Mhz reales-), parches en planificadores y optimizaciones en los juegos para mantener la localidad de los datos en los CCX de manera que se minimice la cantidad de ancho de banda empleado en la interconexión (el crossbar switch, llamado comercialmente Infinity Fabric) y cantidad de prebúsquedas a través de la interconexión.

PD: El Core i7 7700K ha quedado totalmente destruido.

2 comentarios:

  1. Golem vio un incremento del 17% con una nueva BIOS en una placa base de MSI.
    Con ASUS incluso algo más.
    En alemán:
    https://www.golem.de/news/ryzen-7-18...-125996-4.html

    ResponderEliminar
  2. Yo tuve un Intel Core 2 Quad Q6600 cuando todo el mundo compraba los dual cores. El Q6600 tenía una disposición de núcleos similar a Ryzen: dos dual cores que se comunicaban a través del bus de comunicación con memoria principal. Esto era un cuello de botella mucho mayor que la interconexión entre los dos CCX de Ryzen. Aún así, coger un quadcore en vez de un dual core me rentó bastante. Cada vez que ripeaba vídeo, música o grababa vídeos de partidas en juegos el C2Q salía muy, muy a cuenta. Y ya no te digo cuando los juegos pasaron a usar cuatro núcleos. Ahora estamos en la misma situación. Los juegos ocupan 4 núcleos y con el Ryzen tienes otros 4 núcleos disponibles para otras tareas al mismo tiempo que juegas y cuando haces otra cosa que no sea jugar, obtienes un rendimiento mucho mayor que cualquier quadcore.

    ResponderEliminar