jueves, 9 de marzo de 2017

Windows 10 afecta negativamente al rendimiento de AMD Ryzen 7

Parece que el lanzamiento de las CPUs AMD Ryzen 7 ha estado plagado de problemas, pero estos problemas dejan latente que los nuevos procesadores de AMD van a mejorar drásticamente su rendimiento en un futuro cercano, por lo que es más que patente que finalmente superará en IPC a las CPUs Intel Kaby Lake.

A los problemas ya conocidos de las placas base con BIOS en fase Beta, que limitan el rendimiento de los procesadores debido a las bajas velocidades y altas latencias de la memoria RAM, ahora se le suma que se ha encontrado un bug en Windows 10 que está afectando negativamente al rendimiento de Ryzen.

Todas las versiones de Windows 10 merman su rendimiento, mientras que esta merma no tiene lugar en Windows 7. En lo que respecta a Windows 8.1, aún se desconoce si está afectado o no.


Esta merma de rendimiento primero tiene que ver con la nueva tecnología Simultaneous Multi-Threading (SMT), el homónimo de Hyper-Threading en Intel. Esta tecnología activa por cada núcleo físico dos núcleos lógicos. Un subproceso primario para cada núcleo además de un subproceso auxiliar/secundario para aumentar el rendimiento en las cargas de trabajo altamente enhebradas. El subproceso principal ejecutado por cada núcleo se asigna la instrucción máxima por rendimiento de la frecuencia reloj, es decir, rendimiento máximo. Por otro lado, el hilo de SMT adicional (el subproceso auxiliar) sólo puede aprovechar oportunamente los recursos subutilizados en un núcleo.

La tecnología Hyper-Threading de Intel funciona de una manera muy similar. Proporcionar cada “hiper-hilo” con sólo una fracción de los recursos disponibles para el subproceso principal en cualquier núcleo de la CPU. En los mejores escenarios, el SMT proporciona aproximadamente un 20-30% de rendimiento adicional tanto en la arquitectura Skylake de Intel como en la microarquitectura Zen de AMD.


¿Dónde está el problema?


El programador de tareas de Windows 10 identifica correctamente los hilos de Intel de menor rendimiento (auxiliar) respecto a los principales (primarios) del núcleo, por lo que las tareas principales y las tareas de programación aprovechan el rendimiento adicional sin afectar negativamente al rendimiento. 

Desafortunadamente el programador, en la actualidad, no es capaz de diferenciar los núcleos principales de los subprocesos virtuales del SMT con Ryzen, y de hecho ve los 16 núcleos lógicos de Ryzen 7 como si fueran 16 núcleos físicos con recursos iguales por hilo.

Debido a que no da una prioridad preferente a las tareas de programación a los subprocesos primarios sobre los subprocesos virtuales, como ocurre en las plataformas Intel, un porcentaje masivo de las tareas pueden llegar a ser programadas para un subproceso SMT virtual (menos potente) en lugar de un subproceso principal (que funciona a máximo rendimiento). Esto da como resultado una degradación significativa del rendimiento artificial.

Existe otro problema


También identifica incorrectamente la cantidad de caché disponible por subproceso. Añadiendo la cantidad de caché L2 y L3, el programador de Windows 10 “piensa” que hay un total de 136 MB de memoria caché disponible, cuando Ryzen 7 de hecho sólo tiene 20MB de caché L2 + L3 combinado.

*--------------- Data Cache 0, Level 1, 32 KB, Assoc 8, LineSize 64
*--------------- Instruction Cache 0, Level 1, 64 KB, Assoc 4, LineSize 64
*--------------- Unified Cache 0, Level 2, 512 KB, Assoc 8, LineSize 64
*--------------- Unified Cache 1, Level 3, 16 MB, Assoc 16, LineSize 64
*-------------- Data Cache 1, Level 1, 32 KB, Assoc 8, LineSize 64
*-------------- Instruction Cache 1, Level 1, 64 KB, Assoc 4, LineSize 64
*-------------- Unified Cache 2, Level 2, 512 KB, Assoc 8, LineSize 64
*-------------- Unified Cache 3, Level 3, 16 MB, Assoc 16, LineSize 64

Microsoft debe actualizar Windows 10 para solucionar el problema


Por ahora, hay dos soluciones:

Esperar: AMD ya es consciente del problema y seguro que se han mostrado bastante duros con Microsoft por este contratiempo, donde su sistema operativo está aprovechando al máximo la arquitectura de Intel mientras que está limitando el rendimiento de las nueva familia de procesadores CPU.

Estos problemas fueron similares a los encontrados en el pasado cuando Intel lanzó sus primeras CPUs con Hyper-Threading, y tomó algún tiempo y varios parches para que funcionara como se pretendiera que lo hiciera. Así que es de esperar que AMD reciba el mismo tratamiento.

Desactivar los núcleos lógicos (SMT): Al hacerlo el problema se subsana, no se aprovecha el potencial real del procesador, pero sólo usando los 8 núcleos físicos el rendimiento mejora.

Este problema es inexistente en Windows 7


Tal y como adelantamos, este problema en Windows 7 no sucede, donde hay incluso una mejora de rendimiento.

Un usuario llamado “The Silt“, indica que su procesador AMD Ryzen (no indica modelo) funcionando a 3.50 GHz, y lastrado por una memoria DDR4 @ 2133 MHz, junto a una Radeon R9 Nano, vio cómo pasar de Windows 10 a Windows 7 rápidamente se tradujo en que la peor caída de rendimiento en el Total War: Warhammer, con los 8 núcleos y 16 hilos, aumentó en nada menos que 13 FPS. El rendimiento máximo mejoró casi 6 FPS.

Windows 10 – 1080 Ultra DX11:

8C/16T – 49.39fps (Min), 72.36fps (Avg)
8C/8T – 57.16fps (Min), 72.46fps (Avg)

Windows 7 – 1080 Ultra DX11:

8C/16T – 62.33fps (Min), 78.18fps (Avg)
8C/8T – 62.00fps (Min), 73.22fps (Avg)

Tocará esperar para conocer el rendimiento real de AMD Ryzen


Tras todo esto, tocará esperar a tener las primeras BIOS estables que subsanen los problemas de la memoria. En Intel, la diferencia de la memoria RAM puede aplicar diferencias de rendimiento de entre 2 y 5 FPS, pero en AMD esto se agrava hasta tener una diferencia de casi 15 FPS. Esta mejora de rendimiento, sumado a que las velocidades Turbo y XFR se detecten de forma correcta, junto a la actualización de Windows 10, solo hace pensar que AMD Ryzen aún esconde mucho potencial en su interior.



Saludos.

No hay comentarios :

Publicar un comentario

Por favor, escribe adecuadamente y se respetuoso. Gracias.