Mostrando entradas con la etiqueta benchmark. Mostrar todas las entradas
Mostrando entradas con la etiqueta benchmark. Mostrar todas las entradas

jueves, 2 de febrero de 2017

Phenom II X4 @ 3.6 GHz. Análisis microarquitectural en RMMA – LowLevelHardware

En este artículo analizo en profundidad el subsistema de memoria de un AMD Phenom II X4 940 fuera de especificación con el reconocido software RMMA, RightMark Memory Analyzer.

Image1

Configuración del sistema:

  • Uncore (literalmente “lo que no son los núcleos”) a 2.4 GHz
  • Placa Base ASUS AM2+/AM3 M4A79-Deluxe AMD 790FX – AMD 750
  • 4 GB en dos módulos Kingston HyperX DDR2 1066 5-5-5-15 2T 2.2V

Debo destacar que en este procesador he llevado a cabo un incremento de frecuencia diferenciado en los núcleos de ejecución y en el uncore:

  • De 3 a 3.6 GHz para los cuatro núcleos (un +20%)
  • De 1.8 a 2.4 GHz para el uncore que incluye la caché L3 de 6 MB y las controladoras de memoria DDR2 (un +33%)

Con lo que las prestaciones computacionales puras mejorarán de un 20 % a un 33 % sobre el rendimiento nominal en función del tipo de cálculo. Recordad que todos los análisis son en modo single-threaded, es decir, solo actúa uno de los cuatro núcleos. Para análisis multi-threaded ver el artículo anterior realizado con RMMT.

RMMA es un software diseñado para investigar cualquier pequeña peculiaridad del subsistema de memoria y las unidades de ejecución de cualquier procesador. Pueden incluso descubrirse detalles “no públicos”.

Latencia de D-cache y memoria:

rmma_20090227_143034_0281

Phenom II X4 @ 3.6 GHz / 2.4 GHz. Latencia D-Caché en RMMA

Podemos ver delimitadas con claridad cuatro zonas:

Primera zona: desde los 4 KB a los 64 KB la zona de caché L1D con 3 ciclos de latencia.

Segunda zona: desde los 64 KB hasta los 640 KB (64 + 512 KB) la zona de caché L2.

  1. Con una latencia mínima de unos 9.2 ciclos en acceso forward o backward (actuando eficientemente el hardware prefetch).
  2. En acceso pseudo-random obtenemos unos 12.2 ciclos, caso real en software bien programado.
  3. Y por último, en acceso púramente aleatorio (Random access) llegamos hasta los 15 ciclos.

Tercera zona: de los 640 KB a los 6720 KB (64 + 512 + 6144 KB) la zona de la caché L3 de 6 MB.

  1. El hardware prefetch se muestra altamente efectivo para accesos secuenciales forward o backward dando una latencia de solo 21 ciclos.
  2. En acceso pseudo aleatorio obtenemos unos 34.8 ciclos, caso real en software bien programado (programas científicos, algunos juegos…)
  3. Para el acceso aleatorio obtenemos unos 52 ciclos hasta que llegamos a los 2048 KB y desbordamos el D-TLB y aumenta progresivamente pasando por los 70 ciclos para accesos con bloques de 4 MB hasta los 78 ciclos para 6 MB.

Cuarta zona: de los 6720 KB en adelante la zona de memoria principal.

  1. El hardware prefetch se muestra extremadamente efectivo para accesos secuenciales forward o backward dando una latencia de solo 41 ciclos.
  2. En acceso pseudo-random (pseudo aleatorio) obtenemos unos 93 ciclos.
  3. Para el acceso puramente aleatorio, siendo un caso absolutamente extremo (worst case scenario) obtenemos unos 205 ciclos para un acceso respectivo de 8 MB, 230 para 16 MB y unos 236 para 32 MB.

Ya visualmente, para el familiarizado con estos términos, vemos que en el Phenom II X4 se ha implantado un muy eficiente mecanismo de hardware prefetch. Además, actúa no solo en memoria principal sino en las L2 privadas de 512 KB y lo más importante de cara a ocultar su latencia en la caché L3 compartida de 6 MB.

En el terreno de la caché L3, en estos procesadores se trata de un diseño compartido y su reloj asíncrono a los núcleos (en este caso con una relación núcleo : L3 de 3 : 2 para unas frecuencias respectivas de 3.6 y 2.4 GHz) lo que le otorga unas características peculiares.

Empíricamente, y por los tests realizados en éste y el anterior artículo, podemos aventurar la organización de sus buses L2 - L3. Muy probablemente son buses a cada core de 64 bit a frecuencia del uncore (2.4 GHz en este sistema), y con penalización en latencia por resincronización, y por ello limitan el ancho de banda de memoria por núcleo a un valor inferior al dual channel DDR3 1066.

Bus de datos caché L1 – caché L2

rmma_20090227_145303_0171

Bus L1 – L2 de 128 bits en AMD Phenom II X4.

El intercambio efectivo de datos entre la L1 y la L2 alcanza los 7.98 – 7.99 bytes / ciclo en lectura y los 4.68 – 4.73 bytes / ciclo en escritura.

Recordemos que la L1, la L2 y su bus de comunicaciones funcionan todos ellos a la frecuencia de los cores, en este caso 3.6 GHz.

Bus de datos caché L2 – caché L3 unificada

rmma_20090227_145643_0234

Bus L2 – L3 de 64 bits @ frecuencia del uncore (2.4 GHz) en AMD Phenom II X4.

La caché L2, al estar dentro de cada núcleo de ejecución, opera a la frecuencia de éste, a 3.6 GHz. Por el contrario la masiva caché L3 de 6 MB unificada se encuentra en el uncore y por ello es asíncrona a los núcleos y en este caso su frecuencia es de 2.4 GHz.

Como vemos en la gráfica, el bus L2 – L3, logra transmitir de 3.24 a 3.44 bytes / ciclo o unos 25.92 – 27.52 bits / ciclo contados a 3.6 GHz por un bus de 64 bit a cada uno de los cores.

En cambio si referimos estos datos al reloj del uncore, se convierten en 4.87 - 5.18 bytes / ciclo o 38.96 – 41.44 bits / ciclo.

Estos datos son claramente inferiores a los obtenidos en los procesadores Intel Core i7 que cuentan con un bus L2 – L3 más eficiente y con un ancho doblado a 128 bits.

Extraído de Core i7 vs Phenom en dual channel. Ancho de banda de cachés y memoria. 19/11/2008

“ La caché L3 de Phenom es claramente el punto débil de la arquitectura K10. AMD ha dotado de un bus de solo 64 bit a su L3 y esto limita gravemente sus prestaciones, siendo su transferencia del bus L2-L3 menos de la mitad que la de su nuevo rival, Core i7.

phenom_rmma_20080512_214024_0171

Como vemos en Phenom la caché L3 apenas mejora las prestaciones de la memoria principal y esto es además agravado por su pequeño tamaño (2 MB) mostrándose únicamente efectiva en escritura. Digamos que en el AMD Phenom la L3 sirve para reducir el acceso a memoria o la carga de trabajo sobre las controladoras de memoria.

Corei7_rmma_20081120_110524_0921_400

Como vemos la L3 de core i7 es extremadamente útil para mejorar la velocidad respecto al acceso a memoria principal y además cuenta con un tamaño considerable, 8 MB.

Aún así tengo ciertas esperanzas depositadas en los nuevos Phenom II basados en el nuevo Core Shanghai de 45 nm con 6 MB de L3 del que he hablado extensamente y que tendremos oportunidad de probar en Enero de 2009.”

Panorámica Caché L2 – Caché L3 – memoria principal:

rmma_20090227_145808_0078

Panorámica L2 – L3 – RAM en Phenom II X4 @ 3.6 / uncore 2.4 GHz.

Asociatividad caché L3

rmma_20090227_143417_0937

La teoría: caché L3 de 48 vías y 6 MB.

La asociatividad “total” debería ser de 2 + 16 + 48 = 66 vías, debido al diseño exclusivo de la arquitectura de cachés en los procesadores AMD.

De todos modos, al ser un procesador con la L3 no síncrona con los núcleos y por la peculiar forma de trabajar de la L3 (según AMD no es estrictamente exclusiva) que en ciertos casos puede duplicar datos de niveles inferiores es difícil realizar un análisis efectivo.

Latencia real efectiva caché L2

rmma_20090227_144308_0218

Latencia efectiva L2 en Phenom II X4.

En el punto de cruce de las cuatro gráficas obtenemos los 12 ciclos de acceso, la verdadera latencia L2.

Latencia real efectiva caché L3

rmma_20090227_144930_0750

Latencia efectiva L3 en Phenom II X4 3.6 GHz con uncore a 2.4 GHz.

El punto de cruce se encuentra en los 53 – 54 ciclos para esta configuración (núcleos a 3.6 GHz y L3 a 2.4 GHz).

Ancho de banda de memoria efectivo

Con un dual channel DDR2 1066 5-5-5-18 2T obtenemos un máximo teórico de 17 GB/s, veamos el ancho de banda efectivo en acceso de un solo núcleo (single threaded).

rmma_20090227_145340_0343

Ancho de banda single threaded Phenom II X4.

Limitado por un bus de solo 64 bit y además una frecuencia de ese bus (o al menos parte de él) a 2.4 GHz el ancho de banda efectivo es de unos 8.5 GB/s. Más o menos la mitad del dato teórico.

Simplemente AMD no ha creído necesario dotar a cada core de mayor ancho de banda y yo soy de la misma opinión en la actualidad.

En cualquier caso, si habéis echado un vistazo al artículo anterior en el que analizo el subsistema de memoria de este mismo equipo en modo multithreaded, es decir, en acceso concurrente de los cuatro núcleos, podemos observar valores mucho más cercanos al pico teórico de 17 GB/s (concretamente 15 GB/s efectivos):

32768x4_131072KB

Tamaño 131072 KB. Lectura de 15024 MB/s en memoria multithreaded x4.

Aquí doy por finalizado el análisis de este sistema, han sido con este ya cuatro artículos, creo que me doy por satisfecho...

Phenom II 3.6 GHz / 2.4 GHz uncore. Análisis en RMMA. Ampliado - LowLevelHardware

Ya en dos artículos, uno de ProfessionalSAT y el anterior de LowLevelHardware he analizado varios aspectos de este sistema. Aquí me centraré en las prestaciones del subsistema de memoria dando las cifras efectivos del ancho de banda para varios tamaños de acceso, haciendo un mapa detallado de la arquitectura de caché y memoria del AMD Phenom II.

Image1

RMMT RightMark Memory Analyzer

RMMT es uno de los componentes del avanzado paquete de análisis de microarquitectura RMMA de RightMark.org. Mide el ancho de banda de memoria para diferentes tamaños de acceso en lectura o escritura y es un software totalmente multithread.

Además soporta modos de acceso en lectura con hardware Prefetch y Non Temporal Store para escrituras saltando todos los niveles de caché.

Los valores dados por RMMA pueden considerarse valores reales, es decir, los que verá nuestro software, no como los de otros paquetes de software diseñados para dar un pico máximo que nunca se alcanza con software real (SiSoft Sandra …).

Análisis Phenom II fuera de especificación en RMMA

Configuración del sistema:

  • Procesador AMD Phenom II X4 940 Black Edition a 3.6 / 2.4 GHz
  • Placa Base ASUS M4A79-DeLuxe AMD 790FX – AMD 750
  • 4 GB en dos módulos Kingston HyperX DDR2 1066 5-5-5-15 2T 2.2V

En este artículo se detalla la configuración de BIOS del sistema con los núcleos a 3.6 GHz (3 GHz nominal) y el uncore (caché L3 y controladoras de memoria) a 2.4 GHz (1.8 GHz nominal).

Tabla_AnchoBanda

Ancho de banda del AMD Phenom II para diferentes tamaños de acceso:

  • Zona L1:                              0    -   256 KB
  • Zona L1 + L2:                      256  –  2304 KB (256 + 2048)
  • Zona L1 + L2 + L3:              2304 – 8448 KB (256 + 2048 + 6144)
  • Zona memoria principal:     8448 KB hasta el límite de la memoria física.

image

Phenom 3600 MHz / 2400 MHz uncore / 2 * 2 GB DDR2 1066 5-5-5-18 2T

Como vemos se delimitan perfectamente los diferentes niveles de caché. Todos los datos son en acceso concurrente de los cuatro núcleos, multithreaded x4.

Accesos en lectura dentro de cachés L1:

La caché L1 de los cuatro núcleos que componen un Phenom II es de 64 KB para datos y 64 KB para instrucciones. En este caso solo se testea la L1d y el tamaño total es de 64 x 4 = 256 KB.

16x4

Tamaño 64 KB. Lectura de 408274 MB/s en L1 multithreaded x4.

408274 MB/s equivalen a 399 GB/s. Cada L1 da unos 102000 MB/s (unos 100 GB/s) que una frecuencia de 3.6 GHz son unos 238 bits/ciclo efectivos o casi 30 bytes por ciclo efectivos (!!). Un valor impresionante.

Los procesadores Phenom y Phenom II son capaces de leer de L1 32 bytes por ciclo por núcleo, el valor más alto en la actualidad, duplicando a Core2 o Core i7, lo que queda demostrado por el dato anterior. Están dotados de dos puertos de lectura de 128 bits.

Al superar los 256 KB totales (64 KB x 4) entraremos en el terreno de la L2.

Accesos en lectura dentro de cachés L2:

La caché L2 de un Phenom II se compone de cuatro L2 unificadas discretas por núcleo (para datos e instrucciones) de 512 KB cada una para un total por chip de 2048 KB.

Los procesadores AMD tiene una arquitectura de cachés exclusiva, es decir, no duplican los contenidos de un nivel en el siguiente. Lo que hace que el tamaño efectivo total de caché sea igual al de la suma de los tamaños cada uno de los niveles.

128x4

Tamaño 512 KB. Lectura de 112676 MB/s en L2 multithreaded x4.

256x4

Tamaño 1024 KB. Lectura de 112807 MB/s en L2 multithreaded x4.

512x4

Tamaño 2048 KB. Lectura de 113061 MB/s en L2 multithreaded x4.

576x4_2304KB

Tamaño 2304 KB. Lectura de 111475 MB/s en L2 multithreaded x4.

111478 MB/s equivalen a 109 GB/s. Cada L2 transfiere unos 28000 MB/s (unos 28 GB/s) que una frecuencia de 3.6 GHz son unos 65 bits/ciclo efectivos o algo más de 8 bytes por ciclo efectivos, un valor no muy brillante, Core2 y Core i7 le superan ampliamente en velocidad de L2.

En los 2304 KB (576 KB x 4 núcleos) se sitúa el límite efectivo del tamaño de la L1 + L2 (64 + 512 KB) y por encima de este valor entramos en la zona de la caché L3.

Estrictamente hablando el papel de las L2 privadas de 512 KB consiste en reducir los accesos a la L3 compartida evitando la saturación de sus buses y proporcionar menor latencia y altas tasas de acierto al núcleo de ejecución.

Accesos en lectura dentro de caché L3:

Nota: Debido a que este sistema está fuera de especificación utiliza multiplicadores relativos de cores y L3 no standard y con ello los valores aquí detallados no son representativos del producto comercial en el tramo de L3 (576 – 8448 KB).

La caché L3 de Phenom II consta de 6144 KB unificados y comunes para los cuatro núcleos con buses de 64 bits, solo hay una L3 para servir a los cuatro procesadores. El tamaño efectivo (debido al diseño de cachés exclusivas) de la zona de L3 es de 6144 + (512 x 4) + (64 x 4) o algo más de 8 MB, 8448 KB.

Al superar este tamaño de bloque en acceso entraremos ya en memoria principal.

768x4_3072KB

Tamaño 3072 KB. Lectura de 43609 MB/s en L3 multithreaded x4.

1024x4_4096KB

Tamaño 4096 KB. Lectura de 44055 MB/s en L3 multithreaded x4.

2048x4_8192KB

Tamaño 7168 KB. Lectura de 44264 MB/s en L3 multithreaded x4.

44264 MB/s equivalen a 43 GB/s. La L3 unificada de 6 MB transfiere unos 44264 MB/s a los núcleos (unos 43 GB/s) o unos 11075 MB/s por núcleo.

Globalmente para todos los cores, a una frecuencia de 2.4 GHz (frecuencia del uncore) 44264 MB/s son unos 19.34 bytes/ciclo efectivos o casi 155 bits por ciclo efectivos. Siendo unos 4.83 bytes/ciclo o casi 39 bits/ciclo por cada núcleo referido a la frecuencia del uncore, en este caso en overclock a 2400 MHz.

En los 8448 KB, como he comentado anteriormente se encuentra el límite efectivo de la L3 para accesos multithreaded x4.

Accesos en lectura en memoria principal:

4096x4_16384KB

Tamaño 16384 KB. Lectura de 15041 MB/s en memoria multithreaded x4.

32768x4_131072KB

Tamaño 131072 KB. Lectura de 15024 MB/s en memoria multithreaded x4.

15024 MB/s (14.67 GB/s) se acerca mucho al límite teórico (17 GB/s) del dual channel DDR2 1066 que he instalado en el sistema, concretamente a un 86%. Un resultado excelente teniendo en cuenta que son medidas en condiciones reales.

Si consideras útil el contenido de este Blog, ayuda a mantenerlo ojeando algunas de las ofertas que consideres interesantes de nuestros anunciantes.

Carlos Yus Valero – informaticapremium

domingo, 23 de marzo de 2008

Impacto de la frecuencia de la L3 y controladoras RAM en AMD Phenom.

Como destaqué en un artículo anterior, una característica clave de Phenom es su asincronía. Aquí estudiaré el caso del 9600 Black Edition, actualmente la versión más alta del fabricante de semiconductores con base en Dresden, Alemania. Al final del artículo analizo la influencia comparativa entre el reloj de la memoria (DDR2 800 / 1066 MHz) y la frecuencia del NB/L3(1.8 / 2.0 / 2.2 GHz).

AMD Phenom B2 die. Fuente: AMD.

Sombreados en verde los cuatro núcleos que trabajan a 2.3 GHz, el resto del procesador (NB, L3, controladoras RAM DDR2) funciona a 1.8 GHz de frecuencia nominal. Veamos como afecta a las prestaciones el reloj de la controladora de memoria y la caché L3.

Utilizaremos SuperPi mod1.5 XS 2M y el benchmark integrado en WinRAR 3.71.

Sistema de pruebas:

  • Fuente alimentación: Tacens Aeris 680W cobre.
  • Placa base: Gigabyte GA-MA790FX-DS3 Rev.1.0.
  • CPU: AMD Phenom 9600 Black Edition.
  • Disipador / ventilador: AMD stock Cobre + Heatpipes.
  • Memoria: 2 módulos Corsair CM2X2048-6400C5 (total 4GB).
  • Timings: 5 5 5 18 2T 800 MHz.
  • Controladora de memoria: Unganged.
  • SVGA: Ati Radeon 3870 512 MB GDDR4.
  • HD: WD 5000 AAKS 16 MB modelo nuevo (platos de 320 GB).

Resultados:

Como vemos las diferencias son mínimas. En SuperPi 2M son menores al 1% y en WinRAR sobre un 4,5% entre extremos. Con tamaños mayores hubieramos visto diferencias más abultadas en SuperPi, pero siempre menores que con WinRAR.

Resultados WinRAR 3.71 en KB/s.


Resultados SuperPi 2M en segundos.


El aumento de rendimiento es mayor en WinRAR porque es muy sensible a la latencia de memoria, y esta disminuye al aumentar la frecuencia de la caché L3 como podemos ver en las sigientes imágenes.

Phenom 9600 BE de serie. 2.3 / 1.8 GHz.

Phenom 9600 BE con controladoras y L3 @ 2 GHz.

Phenom 9600 BE con controladoras y L3 @ 2.2 GHz.

Resultados obtenidos con el software CacheBurst32. Como podemos observar al aumentar la frecuencia del NB se reducen las latencias L3 y aumenta el ancho de banda de este nivel de caché (lo que se observa en el gráfico cian).


Comparativa reloj RAM - reloj NB / L3 / Controladoras RAM:

El sistema de pruebas es idéntico al anterior excepto la memoria. En este caso son:
  • Dos módulos Kingston HyperX 1 GB 1066 DDR2.
  • Timings @ 800 MHz. 4 4 4 12 1T @2.0 V.
  • Timings @ 1066 MHz: 5 5 5 15 2T @ 2.2 V.
  • Modo unganged.

Compresión con 7zip de 700 MB repartidos en ocho archivos. Opciones de compresión:

  • LZMA / Ultra / Diccionario: 64 MB / Palabra: 273.

Resultados. Tiempo de compresión en segundos.

Globalmente podríamos decir que el AMD Phenom a las frecuencias de núcleo actuales no está apenas limitado por el reloj de su L3 y sus controladoras de memoria (1.8GHz), cosa que cambiaría si pretende pasar a DDR3 con su mayor ancho de banda. Recordemos que el bus de 64 bit de la L3 de Phenom 9600 BE (2.3 GHz) llega a 14.4 GB/s (1.8 GHz * 64bit / 8bit / byte).

A modo de apunte, ancho de banda de memoria DDR2 dual channel:

  • @800 equivale a 12.8 GB/s, cuando
  • @1066 equivale a 17 GB/s, sobrepasando el actual ancho de banda interno del Phenom con NorthBridge a 1.8 GHz.

Los futuros Phenom 9700 (2.4 GHz) y 9900 (2.6 GHz) aumentan la frecuencia del NB/L3/Ctrl.RAM a 2 GHz, resultando todavía insuficiente para la DDR2 1066.

Conclusiones:

Como vemos el paso de DDR2 800 con buenos timings ( 4 4 4 12 1T) a DDR2 1066 con tiempos más relajados ( 5 5 5 18 2T) no aporta gran cosa, podemos decir que aporta prestaciones equivalentes y además requiere más voltaje en los módulos (2.2 V frente a 2.0 V), por lo cual recomiendo la primera opción.

El incremento de prestaciones variando el reloj de NB/L3 a 2 GHz o mejor a 2.2 GHz proporciona mejoras apreciables en algunos tipos de software dependientes de la latencia. Sólamente con el NB/L3 a 2.2 GHz es posible encauzar el ancho de banda del dual channel DDR2 1066, eso sí, a costa de una mayor disipación térmica por el mayor voltaje necesario en el NB.

Carlos Yus Valero – informaticapremium

domingo, 16 de marzo de 2008

QuadCores y multithreading en Windows XP. Aplicación Single Threaded.

Windows XP SP2 soporta nativamente los actuales procesadores AMD Phenom e Intel Core2Quad, ambos de ellos con cuatro nucleos de procesamiento. La pregunta que muchos se plantean es: ¿Está realmente optimizado su rendimiento? Aquí intentaré responderla y dar algunas claves para aumentar la efectividad de los micros Quad Core sean estos Intel o AMD.

Equipo Quad Core en el Administrador de Tareas de WinXP.
 
El administrador de tareas de Windows XP SP2 (Professional en este caso) es una importante herramienta en la optimización de este tipo de sistemas. Avanzándonos un poco, podemos decir que Windows XP, no sin buena voluntad, intercambia los threads entre núcleos sin un orden muy concreto ni coherente, generando con ello varios problemas.

Intel Core 2 Quad 6600 vs. AMD Phenom 9600 Black Edition

Sistema Intel:
  • Core 2 Quad 6600. Núcleo Conroe, stepping G0 (2.4GHz 2*4MB L2 / 266 QPB FSB)
  • Placa base Gigabyte GA-P35 DS3R rev3.1
  • 2*1GB Kingston HyperX DDR2 800 @ 5 6 6 18 2T (SPD)
Sistema AMD:
  • Phenom 9600 BE stepping B2. Núcleo Barcelona (2.3GHz 4*512KB L2 / 1.8GHz NorthBridge y 2MB L3, HT3 3.6 GHz).
  • Placa base Gigabyte GA-MA770DS3.
  • 2*1GB Kingston HyperX DDR2 800 @ 5 5 5 18 1T (SPD).
  • TLB Patch deshabilitado.
  • Controladoras de memoria Unganged.
  • Driver CPU AMD Phenom instalado. Descarga.
  • El resto de componentes es irrelevante para el resultado e identico en ambos sistemas.

Cálculo SuperPi mod1.5 XS 1M. Descarga.

SuperPi mod1.5 XS

Tiempos en segundos. SuperPi es un benchmark que claramente se ejecuta más rapido en la arquitectura Core2, con la elección de otro test cambiarían los resultados.


Tiempos de cálculo con el sistema por defecto.

T1, T2, ... T6 son las seis ejecuciones del test, siendo MED la media de los resultados. Como vemos, consistentemente acaba antes el cálculo el Core2Quad y por un buen margen, pero aquí no quiero resaltar diferencias de rendimiento entre las dos arquitecturas sino analizar su comportamiento en XP.

Corriendo el programa por defecto los resultados son:

  • Core2Quad 6600: 22,75s (media)
  • Phenom 9600 BE: 35,65s (media)

Ahora vamos al Administrador de tareas y hacemos click derecho en el ejecutable Super_pi_mod.exe, seleccionamos Establecer afinidad ...

Y nos aparecerá la siguiente ventana, seleccionamos CPU 0 (o cualquier otra), ya que SuperPi es single threaded (es decir, solo utiliza un núcleo), es del año 1995...

Processor Affinity CPU 0.

Los nuevos resultados son:

Tiempos de cálculo asignando manualmente la afinidad.

  • Core2Quad 6600: 21,06s (media)
  • Phenom 9600 BE: 33,85s (media)

Ambos tiempos de ejecución decrecen, claramente aumenta el rendimiento al asignar manualmente los procesos a los núcleos cuando el número de threads es inferior al de procesadores en el sistema. El equipo AMD mejora sus tiempos un 7,5% y el Intel un 5% debido a diferencias arquitecturales.

Conclusiones:

Al asignar manualmente los recursos físicos a las aplicaciones que no utilizan los cuatro núcleos podemos fácilmente aumentar el rendimiento de nuestra aplicación favorita. Y no solo eso, además conseguimos una excelente repetitividad de los resultados (desviaciones standard bajas) consiguiendo una buena trazabilidad y ahorrándonos tiempo de testeo.

Intel Core2Quad. Dos dies Conroe cada uno de ellos con 4MB de L2. Las dos cachés L2 de 4MB son independientes. Podemos diferenciar dos casos asignando la afinidad manualmente:

  • Datos compartidos entre core0 y core1 o core2 y core3. Los datos de la aplicación se cachean en la L2 compartida y se intercambian con latencias muy bajas entre los dos núcleos (del orden de 14 ciclos). La caché efectiva son 4MB.
  • Datos comunes entre núcleos que no comparten caché L2, por ejemplo Core0 y Core 3. Los datos de la aplicación se cachean en ambas L2 de 4MB (siendo el tamaño efectivo igualmente 4MB). La latencia core-core es del orden de 50-60 ciclos. Cuando un núcleo requiere un dato presente el la L2 del otro die debe acceder a él a través del FSB.

AMD Phenom. Un único die monolítico integra los cuatro nucleos y el uncore. Éste último consta principalmente del NorthBridge, la caché L3 de 2MB y 32 vías, las dos controladoras RAM DDR2 de 64bit y el HyperTransport3. Todo ello a una frecuencia inferior a la de los núcleos.

Al asignar SuperPi manualmente al core0, favorecemos los aciertos de caché L2 de este núcleo (las L2 de Phenom ,4 de 512 KB, son 1/8 de las dos del Core2Quad y es exclusiva por núcleo. Dado su pequeño tamaño y menor tasa de aciertos agradece más nuestra ayuda...), no siendole necesario "salir" a L3 o RAM y consiguientemente aumentando el rendimiento.

La penalización es mayor en este caso debido al escaso ancho del bus de L3 (64 bits) y su funcionamiento asíncrono respecto a los procesadores.

Con solo 64 bits AMD ha creado un futuro bottleneck en su arquitectura que si bien ahora no es muy notorio, con el paso a DDR3 y altas frecuencias en el bus de memoria deberán revisar y ampliar. A modo de curiosidad, a 1.8GHz y 64 bits, el ancho de banda (bandwidth) es algo superior a un dual channel DDR2 800.

En un próximo artículo analizaré la dinámica de estos procesadores en situaciones de multithreading con datos compartidos en sus cachés L2 / L3, con interesantes datos de rendimiento. Las aplicaciones seran 7zip (dualthreaded) y WinRar (multithreaded).

Carlos Yus Valero – informaticapremium