Los AMD Threadripper y EPYC tienen problemas de rendimiento en Windows: ¿qué solución hay?

Es bien sabido que los AMD Threadripper sufren bastante en Windows en según que escenarios, esto lo sabemos debido a que su rendimiento es bastante más competitivo en sistemas operativos como Linux. A raíz de lo abordado por el modo disociador NUMA y la herramienta CorePrio, parece que AMD y Microsoft por fin se han sentado juntos para abordar los problemas en Windows.

El rendimiento de Threadripper y EPYC debería verse incrementado

AMD EPYC

Lo cierto es que en ciertos entornos los procesadores de la gama HEDT y servidor de AMD no han rendido como se esperaba, estando el Threadripper 2990WX y el EPYC 7551 a la cabeza en cuanto a número de núcleos e hilos frente a las alternativas de Intel.

A raíz de las investigaciones hechas por LevelOneTechs y Bitsum se encontró el problema de rendimiento: un fallo en el programador de Windows.

Para resumirlo y simplificarlo pero al mismo tiempo explicar el problema tenemos que hacer referencia al software de administración de subprocesos internos de Windows, ya que es este el que etiqueta los subprocesos generados por los programas con unas etiquetas llamadas «ideal CPU«.

La configuración «Ideal CPU» solo recomienda las CPUs de un nodo NUMA (non-uniform memory access) cuando se use la CLI de inicio.

Esto quiere decir que cuando solo se recomienda un nodo NUMA a través del «Ideal CPU» el kernel de Windows gasta la mitad de tiempo de CPU de la que dispone. Para ello el kernel debería cambiar la afinidad de la CPU después de que comience el proceso y no antes o durante, cosa que merma el rendimiento.

Si queréis ver el tema en profundidad podéis ver el siguiente vídeo de los chicos de LevelOneTechs donde lo explican detenidamente:

AMD y Microsoft trabajan ya en una actualización del programador de Windows

AMD Microsoft

Para corregir el problema, tanto LevelOneTech como Bitsum trabajaron en una modificación de la utilidad CorePrio que consigue el efecto específico al que han denominado Desasociación NUMA y que reestablece el incorrecto «Ideal CPU», si estáis interesados podéis descargarlo directamente desde este enlace.

Esto hizo saltar las vergüenzas en AMD y Microsoft, ya que ninguno fue capaz de encontrar la solución a dicho problema.

Esta solución llegó a los oídos de ambos hace pocos días pero ya han tomado cartas en el asunto a raíz de lo que desvela Anandtech, ya que según AMD están trabajando junto a Microsoft para abordar el problema, el cual describen como «muy cercano» a las conclusiones extraídas por LevelOneTech.

AMD ha prometido que hará un anuncio público una vez esté disponible un programador parcheado u otra actualización, mientras al mismo tiempo ha asegurado que traerán mejoras de rendimiento adicionales más allás de las disponibles utilizando CorePrio NUMA Dissociater, aunque no han detallado la cuantía del impacto en el mundo real.

Mientras tanto y por suerte, los poseedores de Threadripper y EPYC bajo Windows deben usar Coreprio para paliar estos problemas y mejorar con ello el rendimiento global del sistema hasta que Microsoft y AMD logren una solución que ponga fin de una vez a los problemas bajo este sistema operativo.