El Scheduler de Windows 10 y las CPU multicore

En este artículo describiré sencillas optimizaciones de rendimiento aplicables a la mayoría de aplicaciones multithread en sistemas Windows 10. Estas aplicaciones comprenden la inmensa mayoría del software:

  • Compresores de archivos (WinRAR, 7Zip…)
  • Software de edición de imagen, vídeo y audio (Adobe Photoshop, Audition…)
  • Escaneos antimalware.
  • Cargas ML, DL y AI.
  • Cálculos matemáticos y simulaciones numéricas.
  • Compilación.
  • Y muchos otros.

Las CPU multicore actuales de interés para este estudio integran más de 4 cores con SMT, es decir, ejecutan más de 8 threads simultáneos. Las pruebas para este artículo las he ejecutado en el siguiente sistema portátil:

  • Windows 10 Professional 1803 x64
  • CPU AMD Ryzen 7 1700 de 8 núcleos y 16 threads
  • 8 cachés L2 512 KB y 2 L3 8 MB
  • Frecuencia fijada a 3.4 GHz para los tests (repetitividad)
  • Voltaje CPU 1.10 V @ 3.4 GHz
  • 24 GB DDR4 @ 2400 (16 + 8 GB)
  • SSD Sansung Evo 970 500 GB NVMe PCIex 3.0 4X
  • Driver NVMe Samsung
  • SSHD Seagate Firecuda 1 TB (HD Híbrido)
  • GPU AMD Radeon RX580 (driver 18.9.3)

El scheduler de Windows 10

El funcionamiento del Scheduler de Windows 10 (el sistema encargado entre otras tareas de distribuir los threads a las CPUs lógicas) tiene un funcionamiento muy optimizado. No es perfecto pero realmente hace un mejor trabajo que las versiones anteriores de Windows (8.1, 8, 7…) y marca una evolución evidente en el manejo de cargas multithread.

Si lanzamos una carga de trabajo de 8 threads en un sistema como el de pruebas, capaz de ejecutar 16 simultáneamente, Windows 10 reacciona del siguiente modo:

8threads_scheduler_standard
Windows 10. Ejecución de carga 8 threads en CPU de 16 threads con scheduler por defecto.

Como vemos, Windows 10 distribuye dinámicamente los threads (en este caso 8) entre las CPUs lógicas disponibles (16), por ello observamos:

  • Cargas muy elevadas en las CPU lógicas 1,5,7,8,11,13 y 14.
  • Cargas medias en CPUs 0,2,3,9 y 12.
  • Cargas casi nulas en las CPUs lógicas 4,6,10 y 15.

Las razones de este comportamiento radican entre otras en eliminar los hotspots para que ningún core llegue a temperaturas extremas.

Lógicamente Windows actúa prudentemente, muchos sistemas ‘ahí fuera’ están montados descuidadamente (siendo educado) o con sistemas de refrigeración claramente insuficientes.

Administrador de Tareas Afinidad manual

Si nuestra máquina cuenta con una refrigeración eficaz y una adecuada aplicación de la pasta térmica entre el procesador y el radiador podemos mejorar los resultados. Afinidad manual de los 8 threads a las CPUs lógicas 0, 2, 4, 6, 8, 10, 12 y 14. Carga 8 threads en CPU 16 threads:

Windows 10. Ejecución de carga 8 threads en CPU 16 threads con afinidad manual.

Una mejora aproximada de un 10% en prestaciones. Y lo que es más importante, una muy mejorada responsividad de la máquina por varias razones:

  • Hay 8 CPUs lógicas completamente libres 1, 3, 5, 7, 9, 11, 13 y 15.
  • Se dan muchos menos fallos de caché L1 y L2 (y en este caso la L0i que integran los cores AMD Zen) por no cambiar el código de core.
  • Menor movimiento de datos en las 2 cachés L3 de 8 MB.
  • Menos accesos a la RAM dual channel DDR4 2400 debido a la mayor tasa de aciertos de caché.

 

AMD Zen 2 en EPYC 2 Rome 7 nanómetros

AMD lanzará al mercado en 2019 la nueva microarquitectura Zen 2 y los nuevos AMD EPYC 2 Rome fabricados en  7 nanómetros para servers con 64 cores y 128 threads. Ayer, en el evento Next Horizon dió a conocer sus nuevas tecnologías, datos que voy a  analizar en este artículo.

Durante 2019 AMD también desplegará los cores Zen 2 en todos los segmentos del mercado:

  • Ryzen 2 con cores Zen 2 de 7 nm para sobremesa con hasta 16 cores y 32 threads y 16 MB de caché L3.
  • APUs Ryzen 2 con cores Zen 2 de 7 nm con 8 cores y 16 threads con 8 MB L3 para portátiles con GPUs Vega también de 7 nm.

Los nuevos AMD EPYC 2 Rome 7 nm

Simplemente brutal. Los nuevos procesadores EPYC 2 merecen sin duda este calificativo, nada más y nada menos que 64 cores físicos con SMT para 128 threads de procesamiento simultáneo por socket… Increíble, formados por 9 chips (!!) y disponibles ya en 2019.

Y AMD EPYC 2 Rome no solo proporciona cambios a nivel de número de cores o su nueva tecnología de fabricación TSMC de 7 nanómetros. Además evoluciona hacia buses PCIe 4.0 (con doble ancho de banda que los actuales PCIe 3.0) y será compatible con el actual socket SP3 / LGA 4094.

EPYC 2 será la primera CPU x86 en integrar buses PCIe 4.0 que doblan en velocidad a los que actualmente integran Intel y AMD en sus CPUs.

La arquitectura del procesador AMD EPYC 2 Rome apuesta por una renovación total en su implementación general y rompe con el esquema de diseño del procesador EPYC de primera generación.

Procesador AMD EPYC 14 nm formado por 4 dies Zeppelin
Primera generación: Procesador AMD EPYC 14 nm formado por 4 dies Zeppelin

El actual AMD EPYC 14 nm (32 cores, 64 threads) es un procesador formado por 4 dies Zeppelin 14 nm (2 CCX de 4 cores: 8 cores, 16 threads y 2 cachés L3 de 8 MB).

Para un análisis detallado recomiendo mi artículo sobre AMD Ryzen.

El chip AMD Zeppelin 14 nm.
El chip AMD Zeppelin 14 nm.

Los mismos dies utilizados en las CPU AMD Ryzen 8c / 16T, comunicados en EPYC entre sí mediante enlaces bidireccionales Infinity Fabric:

AMD EPYC Infinity Fabric links
Primera generación: AMD EPYC 14 nm con los links Infinity Fabric

EPYC 2 mantiene el octa channel DDR4 pero esta vez con frecuencias de trabajo aumentadas. Posiblemente a DDR4 3200 o superior.

AMD EPYC 2 Rome: Diseño integrado vs. distribuido

AMD EPYC 2 Rome 7 nm cambia a  un diseño integrado de 8 controladoras DDR4 en el IO Chip rompiendo con el diseño  distribuido de 2 controladoras DDR4 en cada die Zeppelin en EPYC 14 nm para un idéntico total de 8 canales.

"<yoastmark

El IO chip de 14 nm de AMD EPYC 2 Rome

La pieza angular del diseño del EPYC2 reside en el enorme IO chip (Input – output) fabricado en 14 nm que domina el espacio central del procesador y que integra todas las interfaces de interconexión del procesador:

  • 8 controladoras DDR4.
  • 128 vías PCIe 4.0.
  • 8 enlaces bidireccionales Infinity Fabric para conexión de los 8 Chiplets de computación (Compute Chips) de 7 nm.
  • Los enlaces Infinity Fabric para interconexión con el segundo socket (4 u 8).

A este IO chip se conectan con enlaces Infinity Fabric los 8 dies (Chiplets) de 7 nm compuestos de:

  • 8 cores (16 threads SMT) Zen 2 con cachés Loi, L1i, L1d y L2 unificada 512 KB
  • La caché L3 (de 16 MB / 16 way muy probablemente)
  • La circuitería de interconexión Infinity Fabric con el IO Chip
EPYC2 Chiplets e IO Chip
EPYC2 7 nm CPU Chiplets y el IO Chip de 14 nm

El IO Chip de 14 nm es una incógnita. Mi intuición me dice que hay algo más ahí… Abogo por quizás un probe filter o una caché L4.

Su gran superfície está alimentando rumores diversos. Es tan desmesurado su tamaño que se especula incluso con la integración de memoria eDRAM…

La microarquitectura AMD Zen 2

Los procesadores AMD EPYC 2 Rome integran en 8 Chiplets formados cada uno por 8 cores Zen 2 de 7 nanómetros  derivados de los actuales cores Zen 14 nm y Zen+ 12 nm.

Estos aportan varias mejoras, algunas muy importantes, respecto a los actuales cores Zen y Zen+. Los cambios conocidos a fecha de hoy comprenden:

  • Doble ancho de banda de 256 bit en las unidades load/store.
  • La caché L1i (instrucciones) se doblará en BW para dar servicio a las instrucciones AVX2 de 256 bit.
  • Veremos si se toca la asociatividad o su tamaño físico.
  • La caché L0i, también llamada OpCache, se amplía desde los 2 KB actuales probablemente a 4 KB y se dobla su ancho de banda a 256 bit.
  • Mejoran los algoritmos de prefetch a L1 y L2.
  • Se itera en el subsistema de branch prediction mediante redes neuronales mejorando la tasa de aciertos y el fetching de instrucciones.
  • Retoques leves en la caché L2, no creo que cambien los 512 KB actuales, quizás se reduzca la latencia.
  • La caché L3 probablemente sea común para los 8 cores de cada uno de los chiplets de 7 nm y su tamaño será de 16 o 32 MB. 16 MB sería suficiente y posiblemente el sweet spot. Asociatividad 16 vías, 32 en el caso de 32 MB.
  • Aumenta el ancho de banda de dispatch / retire del core.
  • En la FPU se amplían las unidades de proceso FMUL / FADD / FMA en la parte vectorizada a unidades AVX2 nativas de 256 bit con datapaths también de 256 bit.

AMD Zen 2 aporta mejoras muy importantes en el terreno IPC, cifrados en una mejora de un 15% en enteros y de un 100% en cargas vectorizadas AVX2.

Intel 10 nm. Retrasos y cancelaciones

Intel con su línea Xeon Scalable, a dia de hoy, no tiene una respuesta válida a EPYC2  Rome 7 nm para 2019 y tampoco contra las CPUs Ryzen 2 que llegarán por esas fechas.

A lo largo de 2019 Intel no va a poder hacer frente a las nuevas proposiciones de AMD en el segmento Server. Un auténtico hito no visto desde la época de los AMD Opteron Athlon 64 en el ya lejano año 2004.

Intel ambicionó llegar a los 100 MT/mm² (millones de transistores por mm²) y ese objetivo le está dando muchos problemas que reducen el número de chips válidos que salen de sus líneas de fabricación de 10 nm (yields muy reducidos).

El exigente proceso de fabricación de Intel 10 nm.
El exigente proceso de fabricación de Intel 10 nm.

El proceso de 10 nm de Intel, muy ambicioso en su diseño, lleva años de retrasos y cancelaciones. Veremos finalmente qué proceso (si es el original de 10 nm u uno con reglas más relajadas) llega a productos comerciales.

Intel 10 scaling
Intel 10 scaling

Y digo esto por lo siguiente:

Dadas las insalvables dificultades para mejorar los yields en 10 nanómetros y hacer de este proceso algo viable comercialmente, parece que está relajando varias de sus métricas.

Por ello es posible que el proceso que veremos plasmado en productos no sea aquel de los célebres 100 MT/mm².

Según AMD y TSMC el proceso de fabricación TSMC de 7 nanómetros tiene mejor relación performance / watt que el futuro Intel de 10 nm:

El proceso de fabricación TSMC 7 nm aventaja a Intel 10 nm en performance / watt
El proceso de fabricación TSMC 7 nm aventaja a Intel 10 nm en performance / watt

Siendo realista, espero procesadores Intel de 10 nm en masa para finales de 2019 o inicios de 2020. Sin duda, en ese momento Intel tendrá excelentes CPUs en todos los segmentos y será altamente competitiva.

Conclusiones server AMD EPYC 2 Rome

EPYC 2 Rome, unificando toda la interconexión en el IO Chip aportará una gran simplicidad de cara al manejo de memoria. Cada procesador EPYC2 Rome será un único NUMA Node.

Se reducirá radicalmente el tráfico de coherencia en entornos server y con ello mejorará importantemente la escalabilidad de los sistemas. Todos los chiplets tendrán acceso a todos los canales DDR4 y  las latencias serán idénticas entre los 64 cores.

Todos los grandes proveedores Cloud integrarán procesadores AMD EPYC 2 basados en cores Zen 2 a lo largo de 2019. Una victoria estratégica de AMD que aspira a ganar cuota de mercado en todos los sectores a Intel.

La competencia será muy beneficiosa para el mercado, el consumidor y el avance de la tecnología y microarquitectura de procesadores. Sin duda.

Desde la llegada de AMD Ryzen Intel se ha visto obligado a  reducir precios y se ha decidido por fin a lanzar CPUs de mayor número de cores.

AMD Threadripper informaticapremium Edition

En informaticapremium nos hemos tomado muy en serio el lanzamiento de los nuevos procesadores AMD Ryzen Threadripper y por ello hemos preparado una configuración optimizada para nuestros clientes más exigentes, el espectacular sistema AMD Threadripper informaticapremium Edition.

Podemos decir sin duda que, a día de hoy, AMD Threadripper es el procesador perfecto para construir una estación de trabajo de alta potencia.

Llega en dos versiones iniciales, con 16 y 12 cores:

Estas CPUs son capaces de procesar 32 o 24 threads simultáneamente y cuentan con 4 canales DDR4 y la asombrosa cantidad de 64 vías PCIe 3.0 para conectar GPUs, dispositivos SSD M.2 o PCIe, etc.

Un core AMD Zen con su L2 privada de 512 KB y 8 vías.
Un core AMD Zen con su L2 privada de 512 KB y 8 vías.

Sistemas Altas Prestaciones informaticapremium

En informaticapremium llevamos más de 15 años diseñando y garantizando total estabilidad para nuestros Sistemas de Altas Prestaciones. Las máquinas más rápidos del mercado.

Nos llena de orgullo que muchas de las máquinas que diseñamos en 2009 están todavía en servicio en las instalaciones de varios de nuestros clientes. Se trata de sistemas basados en CPUs Intel Nehalem Core i7 920 fuera de especificación @ 4.2 GHz, con 12 GB DDR3 1600 y almacenamiento SSD.

Se trata de configuraciones optimizadas y fuera de especificación basadas en el mejor hardware seleccionado por nuestros expertos.

Continuar leyendo “AMD Threadripper informaticapremium Edition”

Especificaciones procesadores AMD Threadripper

Especificaciones procesadores AMD Threadripper. Las CPUs Threadripper permiten a AMD llegar a la cúspide del segmento premium y competir de tú a tú con los estratosféricos y ultra caros Intel Skylake-X.

Threadripper comprende CPUs desde los 8 a los 16 cores capaces de procesar de 16 a 32 threads simultáneamente. Os detallo las versiones y características de cada una de ellas.

El procesador AMD Threadripper.
El procesador AMD Threadripper.

También encontraréis un análisis de sus precios y algunas valoraciones competitivas sobre como se comparan con los Intel Skylake-X.

Especificaciones AMD Threadripper

Todos los procesadores AMD Threadripper están basados en el mismo diseño con 16 cores físicos.

Se trata de un diseño multichip, concretamente dos chip o dies Ryzen y cada una con dos CCX y 8 cores. Hay versiones de 8 a 16 cores en función del número de núcleos deshabilitados.

Continuar leyendo “Especificaciones procesadores AMD Threadripper”

Especificaciones procesadores Intel Skylake-X

Especificaciones procesadores Intel Skylake-X. Los nuevos procesadores Skylake-X sustituyen a los Broadwell-E 14 nm en el mercado HEDT.

Comprende CPUs desde los 6 a los 18 cores capaces de procesar de 12 a 36 threads simultáneamente. Os detallo las versiones y características de cada una de ellas.

También encontraréis un análisis de sus precios de venta y algunas valorciones competitivas sobre como se comparan con los AMD Ryzen 7 y los AMD Ryzen Threadripper.

Especificaciones Intel Skylake-X LCC

Los procesadores Skylake-X que integran de 6 a 10 cores están producidos bajo el diseño LCC y sus características son las siguientes:

Características procesadores Skylake-X LCC de 6 a 10-cores
Características procesadores Skylake-X LCC de 6 a 10-cores

El modo Turbo llega hasta los 4.5 GHz favored core en los modelos de 8 y 10 cores y a 4.3 GHz para carga en todos los cores en cargas NO AVX y NO AVX-512. Todos tienes un TDP de 140 W.

Continuar leyendo “Especificaciones procesadores Intel Skylake-X”