Bueno y al parecer sí, un puto bug en el scheduler de Windows 10 se está cagando en RYZEN. Ahora las cosas van encajando, ya que el mes pasado los de microsoft no lanzaron acumulativa por un error de última hora, habrá que esperar a la otra semana a ver que tal.
Rendimiento de AMD Ryzen afectado negativamente debido a un bug en el asignador (scheduler) de Windows 10
Un bug recientemente descubierto en el asignador de Windows 10 ha sido encontrado como el culpable de afectar el rendimiento de los procesadores AMD Ryzen. Se ha confirmado que el bug afecta a todas las versiones de Windows 10 pero no a Windows 7. Aún no está claro si Windows 8.1 es afectado.
Dolores crecientes con el nuevo Multi-Hilo Simultáneo de AMD
Los Ryzen son los primeros procesadores de AMD en contar con la tecnología de multi-hilo simultáneo. Lo que permite a cada núcleo de la CPU ejecutar dos hilos simultáneamente. Un hilo primario para cada núcleo y sumando un hilo auxiliar para un rendimiento aumentado en cargas de trabajo de muchos hilos. Al hilo principal ejecutado por cada núcleo se le es asignado el máximo de instrucciones por rendimiento de reloj = máximo rendimiento. El hilo adicional SMT por otro lado, sólo puede aprovechar de forma oportunista los recursos de un núcleo que estén siendo infrautilizados.
La tecnología Hyper-Threading de Intel trabaja de una manera muy similar. Dándole a cada "hiper-hilo" sólo una fracción de los recursos disponibles del hilo principal de un núcleo. En los mejores escenarios, SMT proporciona hasta un ~20-30% de rendimiento adicional en ambas arquitecturas, Intel Skylake y AMD Zen.
No todos los hilos son creados iguales
El asignador de Windows 10 identifica correctamente los hiper-hilos de Intel como de menor rendimiento que los hilos principales del núcleo y asigna tareas de un modo que pueda aprovechar el rendimiento extra sin impactarlo negativamente. Desafortunadamente el asignador actualmente no es capaz de diferenciar los hilos principales de los hilos virtuales SMT con con Ryzen y de hecho mira a los procesadores Ryzen 7 de 16 hilos como procesadores con 16 núcleos físicos con iguales recursos por hilo.
Debido a que no da ninguna priorización preferencial a la programación de tareas a los hilos primarios SMT como lo hace en plataformas Intel, un porcentaje masivamente grande de tareas pueden terminar siendo asignadas a un hilo virtual SMT en lugar de a un hilo principal del núcleo. Resultando en una degradación artificial de rendimiento.
Ryzen en los ojos del asignador de Windows 10
Éste también identifica incorrectamente la cantidad de caché disponible por núcleo. Sumando la cantidad de L2+L3 el asignador "piensa" que hay un total de 136MB de caché, cuando Ryzen 7 de hecho sólo cuenta con 20MB de caché L2 y L3 combinadas.
Mapeado de hilos de un sólo núcleo del asignador de Windows 10:
*--------------- Caché de Datos 0, Level 1, 32 KB, Assoc 8, LineSize 64
*--------------- Caché de Instrucciones 0, Level 1, 64 KB, Assoc 4, LineSize 64
*--------------- Caché Unificada 0, Level 2, 512 KB, Assoc 8, LineSize 64
*--------------- Caché Unificada 1, Level 3, 16 MB, Assoc 16, LineSize 64
-*-------------- Caché de Datos 1, Level 1, 32 KB, Assoc 8, LineSize 64
-*-------------- Caché de Instrucciones 1, Level 1, 64 KB, Assoc 4, LineSize 64
-*-------------- Caché Unificada 2, Level 2, 512 KB, Assoc 8, LineSize 64
-*-------------- Caché Unificada 3, Level 3, 16 MB, Assoc 16, LineSize 64
Qué hacer mientras tanto
Lo primero es lo primero, se nos ha informado que AMD ya está al pendiente de la situación. Estoy seguro de que ya tuvieron algunas palabras severas para Microsoft por este percance. La compañía ha estado impulsando a los fabricantes de hardware para que adopten su más reciente sistema operativo por años. Por lo que seguramente quedó un sabor amargo en la boca de AMD después de abrazar el impulso de Microsoft y Windows 10 para terminar siendo recompensada con un pobre soporte de hardware. Con esto dicho, es seguro asumir que ambos ya están trabajando para resolver éste problema.
Hemos visto problermas similares en el pasado durante los primeros días del Hyper-threading de Intel. Tomó algún tiempo y unos cuantos parches para que éste funcionara como es debido e imaginamos que será igual para la totalmente nueva microarquitectura Ryzen. Las buena noticia es que Windows 7 no presenta el mismo problema y que los fabricantes de placas base afortunadamente han lanzado drivers para Windows 7 para sus placas base AM4. Por lo que si los usuarios eligen ir por éste camino tendrán un alivio al saber que Windows 7 está libre del bug y es oficialmente soportado por los fabricantes de placas base.
Si estás en Windows, aún hay cosas que puedes hacer para evitar el problema del asignador y mejorar el rendimiento en cargas de trabajo específicas. Para los juegos, puedes deshabilitar SMT y en la mayoría de casos ver una mejora en el rendimiento. Esto de hecho explica algunas de las disparidades de rendmiento que hemos visto en algunos juegos con SMT. Si una gran parte de tu trabajo requiere pocos hilos o una mezcla de cargas de trabajo de un sólo y pocos hilos recomendamos deshabilitar SMT hasta que Microsoft lance una actualizacuión que corrija el problema. Si renderizas o realizas otras tareas pesadas que requieren múltiples hilos deberías mantener SMT activado debido a que el problema del asignador no afectará el rendimiento en este escenario de una forma significativa.
Seguiremos experimentando con Ryzen aquí en el laboratorio y actualizaremos según descubramos más.
http://wccftech.com/amd-ryzen-performance-negatively-affected-windows-10-scheduler-bug/