Implementación de Retpoline en Windows 10 Pro

Google desarrolló Retpoline, una técnica inteligente de control de flujo y Microsoft lo ha adaptado al kernel de Windows. Retpoline acelera drásticamente las operaciones y procesos dependientes de la ejecución especulativa sin comprometer la seguridad. En este artículo detallo la Implementación de Retpoline en Windows 10 Pro.

Retpoline tiene como objetivo acelerar drásticamente las operaciones y procesamiento que dependen de la ejecución especulativa pero, eso sí, sin comprometer la seguridad.

Esta optimización  aporta mejoras en velocidad de un 25 a un 50 % en ciertas áreas.

Microsoft, tras meses de trabajo, finalmente ha adaptado Retpoline al kernel de Windows. En este artículo detallo como activarlo en sistemas Windows 10 y aprovechar sus ventajas en velocidad.

Continuar leyendo “Implementación de Retpoline en Windows 10 Pro”

Afinidad, Scheduler de Windows 10 y Virtualización

En el artículo anterior hablé sobre el Scheduler de Windows y algunas optimizaciones posibles afinitizando tareas a CPUs lógicas poniendo de manifiesto técnicas para mejorar el threading en sistemas Windows 10.

En este me centraré en la Virtualización y como puede beneficiarse de manera importante asignando de forma permanente y definida recursos de CPU  a las VM.

Mediante el Administrador de Tareas podemos modificar el comportamiento de un componente crucial de Windows: El Scheduler de Windows 10.

Afinidad y Virtualización

En un Host Windows 10 puedo asignar 4 cores con SMT (un CCX completo con su L3 de 8 MB y 8 threads) a una VM Ubuntu 18.04 LTS en VirtualBox con excelentes resultados en velocidad y sin mermas de prestaciones en el Host Windows 10.

Pondré un ejemplo práctico con VirtualBox y un Guest Ubuntu 18.04 LTS en un Host Windows 10 Pro 1809 x64.

Primero, como base vamos a ver el comportamiento nominal de VirtualBox en Windows 10 Pro.

Continuar leyendo “Afinidad, Scheduler de Windows 10 y Virtualización”

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 debido a las interacciones  entre el Scheduler de Windows 10 y las CPU multicore.

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 cualquier software ejecutado en multitarea.

Las CPUs multicore actuales de interés para este estudio integran desde 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 con 8 cores y 16 threads:

  • 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.

Continuar leyendo “El Scheduler de Windows 10 y las CPU multicore”

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.

Continuar leyendo “AMD Zen 2 en EPYC 2 Rome 7 nanómetros”

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.

Continuar leyendo “AMD Threadripper informaticapremium Edition”