miércoles, 17 de junio de 2009

Core i7 920 D0. Entrega del sistema – ProfessionalSAT

Tras alrededor de un mes de pruebas y tests he terminado la validación de este sistema que está destinado a cálculos críticos con software programado y compilado especialmente para él.

Se trata de cálculos matemáticos de simulaciones numéricas de dinámica de fluidos en microgravedad, se lanzan ocho threads por cada sistema Core i7 que se “afinitizan” cada uno a una CPU lógica para conseguir la mayor velocidad de cálculo.

Perfmon01 Captura de PerfMonitor para la CPU lógica 0.

Como podemos ver, unos 3800M instrucciones por segundo ejecutadas y retiradas con picos cercanos a los 5000M. Las tasas de acceso al LLC (la caché L3 de 8 MB) son muy bajas, sobre 17M de accesos por segundo o un acceso cada 228 ciclos (debido a la casi perfecta tasa de aciertos de las caches L1d y L2).

De estos accesos solo de un 50 a 65% son aciertos de L3 y el resto accesos a memoria a través del triple channel DDR3 a 1450 MHz y latencias 7-7-7-21 1T. Podemos concluir de ello que cada 460 ciclos de promedio es necesario acceder a RAM (con una latencia de unos 30 ns).

Análisis del subsistema de Branch Prediction:

Perfmon02 Branch prediction en PerfMonitor.

Como vemos, en este tipo de cálculos cada cinco instrucciones hay prácticamente un Branch. debido a la cuidada programación y al profiling realizado hemos conseguido tasas de acierto de casi el 100%, dando únicamente un 0.3% de fallos de predicción que obliguen a vaciar el pipeline y reiniciar el stream de instrucciones.

Al ejecutar cada instancia en una CPU lógica diferente se evitan poluciones de caché, aumentando la tasa de aciertos y evitando que el sistema operativo cambie de procesador el cálculo, con la pérdida de prestaciones asociada.

[Image83.png]CPUs lógicas en Intel Core i7.

Core i7: distribución de CPUs lógicas versus núcleos de ejecución.

Mejora de refrigeración

Dadas las cargas de trabajo continuas a las que se ve sometida la máquina hay que prestar especial atención a la ventilación del sistema.

En primer lugar procedí ala instalación de un ventilador sobre el chipset X58:

PIC02651Intel X58: ventilador sobre el radiador.

Lo siguiente es crear un canal de ventilación directo desde el frontal a la parte posterior con un flujo de aire lo más laminar posible para conseguir una refrigeración eficiente.

Sustituyendo las tapas plásticas originales de las bahías de 5 y cuarto por unas metálicas perforadas y añadiendo un ventilador trasero de salida de alto caudal he conseguido prescindir del ventilador frontal necesario en otros de mis montajes.

PIC02800 Core i7 920 D0: canal de refrigeración.

PIC02802 Detalle del frontal.

Así he conseguido temperaturas muy satisfactorias de unos 69 ºC en Prime95 a 3.8 GHz en núcleos y 3620 MHz en Uncore en el núcleo más caliente y tras unas 60 h continuas.