martes 8 de septiembre de 2009

Análisis de algoritmos de inteligencia artificial mediante PerfMonitor – LowLevelHardware

Este análisis lo he llevado a cabo en uno de mis sistemas Intel Core 2 Quad de la serie 9000 (stepping E0) con 12 MB (6 + 6) caché de L2 basado en núcleos Penryn de 45 nm a 3.4 GHz y con memoria de 4 GB a 1066 MHz, FSB1600 y Performance Level 5 para una excelente latencia de memoria de solamente 52 ns en Everest.

PIC03281

El software escogido es PerfMonitor, una aplicación freeware y portable que analicé someramente en un artículo anterior.

La carga de trabajo analizada son los algoritmos de cálculo utilizados en el sistema analizado en los siguientes artículos de ProfessionalSAT:

Core i7 @ 4.2 GHz. Algoritmos de inteligencia artificial. Parte III – ProfessionalSAT

Core i7 @ 4.2 GHz. Algoritmos de inteligencia artificial. Parte II – ProfessionalSAT

Sistemas de Altas Prestaciones, algoritmos de Inteligencia Artificial. Parte I – ProfessionalSAT

Todos los resultados son del Core 0 del procesador Core 2 Quad, aunque se pueden extrapolar a los demás pues son idénticos.

Image2

En primer lugar observamos cuatro lecturas:

  • Non Halted Clock Cicles: ciclos del procesador en actividad. Podemos ver que lo 3400 M de ciclos por segundo la CPU está ocupada. Uso de CPU: 100%.
  • Instructions Decoded: número total de instrucciones descodificadas por segundo. Vemos unos 4070M de instrucciones por segundo, más de una por ciclo (1.19 por ciclo).
  • Bus Clock Cicles: ciclos de uso del FSB. 100% de uso del FSB.
  • IPC: 0.9 instrucciones/ciclo ejecutadas.

 Image3 En esta captura podemos ver:

  • Retired Mispredicted Branches: fallos de predicción del Branch prediction. 21.3 M por segundo.
  • Retired Branches: Branches (en millones) retiradas (procesadas) por segundo. 373 M Branch/s.
  • Retired Instructions: total de instrucciones procesadas y retiradas por segundo en millones. 2345 M instrucciones/s.
  • Branch Prediction Success Rate: tasa de acierto de los predictores de saltos del procesador Core i7 en este algoritmo: 94.3 %.

Image6 

Aquí observamos:

  • Retired Instructions: total de instrucciones procesadas y retiradas por segundo en millones. 2345 M instrucciones/s.
  • LLC Request: peticiones del procesador al LLC (Last Level Caché), en este caso las L2 unificadas de 6 MB, en millones por segundo. 145.9 M/s. Esto indica una importante tasa de fallos de las pequeñas L1 de 32 KB como ya he comentado en otros artículos hablando de los procesadores Core2.
  • LLC Mises: fallos de la L2 de 6 MB. 1.9 M/s. En este caso el procesador hace una petición por el FSB al chipset para pedir un acceso a RAM.
  • LLC Success Rate: Tasa de aciertos de la L2. 98.7 %. Excelente tasa gracias al gran tamaño de 6 MB para cada dos núcleos.

PIC03241

En un sentido más práctico comentar que esta carga de trabajo contiene un mix de instrucciones de enteros y su velocidad de ejecución viene marcada por la altísima cantidad de branches en el código lo que hace inevitable un alto número absoluto de fallos de predicción que acarrean latencias de “recuperación” del fallo de predicción.

Para minimizar esta latencia es crítica una configuración extrema en la frecuencia del Uncore y en las latencias y anchos de banda de L3 y memoria y también del subsistema de disco.

Etiquetas de Technorati: ,,,,,

martes 25 de agosto de 2009

Athlon II X4, IBM Power 7 e Intel Nehalem EX – LowLevelHardware

Desde hace ya unos años los fabricantes de semiconductores están dando un giro copernicano a su estrategia de prestaciones a toda costa a cambio de una moderación clara en la disipación térmica de sus diseños.

AMD Athlon X4

Ya en un artículo anterior de Junio 2009 hablé ligeramente sobre estos nuevos procesadores de AMD. Su comercialización está prevista para Septiembre.

PhenomII_NO_L3AMD Athlon X4 de 45 nm. Cuatro núcleos con 512 KB de L2 cada uno.

AMD ha decidido reducir costes eliminando la caché L3 de 6 MB de los Phenom II X4 y prescinde además de tres de los enlaces HT (HyperTransport) quedando uno para comunicación con el chipset. La superficie estimada para este procesador ronda los 160 – 170 mm2 proporcionando una gran reducción de costes respecto a Phenom II.

Los precios serán muy reducidos y habrá variantes Triple core con uno  de los procesadores desactivado:

Gama de procesadores Athlon II X2, X3 y X4.

Se rumorean precios inferiores en unos 25€ al quad más barato de Intel. inicialmente su frecuencia máxima será de 2.6 GHz, pero sin duda será sencillo dejarlos sobre los 3.8 GHz con un trivial overclock.

La era del performance per watt

Intel, con su “right hand turn”, acabó con su microarquitectura Netburst (la línea Pentium 4) cancelando el procesador Tejas de 90 – 65 nm (el cuarto integrante de la saga) y dando paso a la exitosa (y derivada de la anterior microarquitectura Pentium III) línea Core 2 Conroe 65 nm y Penryn 45 nm.

Ahora es IBM quien adopta esta línea de moderación en consumo huyendo de sus anteriores speed demons (IBM Power 6). Power 7 será un diseño mucho más equilibrado, con ocho cores en un die y con la novedad de utilizar eDRAM para el último nivel de caché (con el doble de densidad por mm2).

Power6 IBM Power6, un masivo dual core con un consumo eléctrico desmesurado y casi 5 GHz.

Probablemente contará con 24 MB de eDRAM para los ocho procesadores con SMT de dos o quizás cuatro vías (para un total de 16 o 32 threads por chip). El ancho de banda por socket excederá los 300 GB/s de Power6 (ya de por sí todo un record).

Personalmente espero un rendimiento sobresaliente para estos procesadores (no como en su día para el Power6, que no me gustó nada cuando en su día su microarquitectura fue hecha pública) que a mi juicio retoman una línea de trabajo más lógica para IBM, ya que el mundo x86 está presionando fuertemente.

Intel Nehalem EX

El rival del anteriormente mencionado IBM Power7 será un procesador de ocho cores con SMT de dos vías para 16 threads por chip. Contará con 24 MB de L3 compartida y cachés L2 de 256 KB para cada core.

Se alojará en el nuevo socket 1566 LGA. Ya hablé de este procesador en un artículo anterior.

Image1 Intel Nehalem EX.

Con 2.3 BT (2.300.000.000 transistores) fabricados en el nodo de 45 nm cuenta con ocho núcleos basados en la arquitectura Nehalem (similar a los Core i7 de sobremesa) y cuatro enlaces QPI para comunicación con otros tres sockets y el chipset.

Image2 Diagrama del die.

Los tamaños de caché. La L3 de 24 MB

Una cuestión interesante es la inclusión de una L3 de 24 MB con acceso compartido por ocho núcleos. Teniendo en cuenta que las L2 son de solo 256 KB sus tasas de acierto no serán espectaculares y esto nos lleva a pensar que la L3 tendrá mucho trabajo.

Hace unos meses haciendo profiling comparativo en máquinas Core 2 y Athlon64 comprobé que los Core 2 fuerzan mucho más (en el sentido de acceder muchas más veces) su L2 de 6 MB que los AMD Athlon64. Esto es debido a que los Athlon64 cuentan con una L1 de 64 KB que mitiga mucho (dada su mayor tasa de aciertos) los accesos a L2, en cambio, los Core 2 con su pequeña L1 de 32 KB hacen un uso intensivo de su excelente (rapidísima para su tamaño) y gigantesca L2 de 6 MB.

Sin duda, con Beckton (Nehalem EX) el extenso equipo de ingeniería de Intel ha hecho un excelente trabajo en la identificación de los más favorables tamaños relativos de sus cachés y han llegado al diseño final de 24 MB de L3 (LLC) para 8 cores con 16 threads.

Caché de cuarto nivel, L4

Lo que sí es cierto es que espero, en generaciones posteriores y ya con un número de núcleos mayor, la aparición de masivas cachés L4 compartidas (de tamaños sobre los 48 - 64 MB) probablemente con buses ring-bus.

Para mitigar los accesos hacia ellas habrá cachés L3 compartidas parciales (entre unos 4 – 8 núcleos por L3) de menor tamaño (sobre 4 – 8 MB) y mejor latencia que las actuales L3 de Beckton.

Por supuesto, todo esto nos espera en los 22nm y más allá …

jueves 18 de junio de 2009

LGA 1156. Intel Core i3, Core i5 y Core i7 – LowLevelHardware

Intel ha desvelado sus planes finales para los sustitutos de sus exitosas líneas Core 2 Duo y Quad, todos ellos serán procesadores de socket LGA 1156 con dos canales de memoria DDR3 y con conexión con el nuevo chipset Intel P55 mediante un simple enlace DMI de 2 – 4 GB/s.

LGA1156 LGA 1156, el nuevo socket mainstream de Intel.

Todos ellos estarán basados en la arquitectura Nehalem ya conocida en los actuales Core i7 LGA 1366. En cuanto a la caché L3, los quad core contarán con 8 MB de L3 y los dual core con la mitad, 4 MB.

Tech_IntelTechnology@Intel

Core i7 LGA 1366 serie 900

La actual serie 900 que todos conocemos con triple canal DDR3 y bus QPI para comunicación con el Intel X58. Seguirá manteniendo el liderato en prestaciones y el mayor precio.

Core i7 LGA 1156 serie 800

i7 Los actuales procesadores Core i7 de socket LGA 1366 quedan como gama alta (serie 900) y se lanzarán varios modelos para placas de socket 1156 y chipset P55 (serie 800) con doble canal DDR3.

Contarán con cuatro núcleos con HyperThreading y Turbo Mode para un total de ocho threads como en la actual gama 900.

Core i5 LGA 1156 serie 600

i5 Habrá modelos de dos y cuatro núcleos, los de dos núcleos contaran con HyperThreading (SMT) y en cambio los quad cores lo llevarán deshabilitado para diferenciarlos de los Core i7. Todos ellos contarán con Turbo Mode.

También como chipset con el Intel P55 mediante DMI.

Core i3 LGA 1156 serie 500

i3 Serán idénticos a los i5 pero con Turbo Mode deshabilitado y seguramente frecuencias inferiores. Igualmente con el Intel P55.