¿Qué hace que el ancho de banda de la memoria de una aplicación se enlace?

7

Esto ha sido algo que me ha estado molestando por un tiempo: ¿Qué hace que una memoria de aplicación ancho de banda esté vinculada?

Por ejemplo, tome esta monstruosidad de una computadora que calculó el dígito de 5 billones de pi (y más tarde 10 trillón de dígitos). Me sorprendió que eligieran la memoria RAM de 98 GB más baja pero más rápida a 1066 MHz en lugar de los 144 GB más grandes pero más lentos a 800 MHz. Esto es especialmente sorprendente teniendo en cuenta que están utilizando una matriz de HD de 22 TB para almacenar los resultados del cómputo; más RAM significa menos necesidad de discos duros.

Tal vez sea porque no escribo aplicaciones para servidores HPC, pero ¿cómo sería RAM el cuello de botella? ¿Hay alguna otra aplicación que no sea HPC que normalmente se encuentra con este problema?

    
pregunta TheLQ 19.03.2012 - 20:49

1 respuesta

10

La respuesta es bastante simple: la memoria principal es glacialmente lenta en comparación con la CPU. Para citar de otra pregunta en un área relacionada , Las velocidades aproximadas para una CPU moderna son:

L1 CACHE hit, ~4 cycles
L2 CACHE hit, ~10 cycles
L3 CACHE hit, line unshared ~40 cycles
L3 CACHE hit, shared line in another core ~65 cycles
L3 CACHE hit, modified in another core ~75 cycles remote
L3 CACHE ~100-300 cycles

Luego, haga los cálculos matemáticos contra la DRAM frente a una CPU de 2.5 GHz: para un solo ciclo, los 800MHz que está hablando ~ 3-4 ciclos de CPU. La sincronización tiempo de acceso a la memoria es más compleja , pero suma mucho. La RAM de 800MHz habrá algo así como 5-5-5-16, o 124 ciclos de CPU.

Eso también se encuentra en un mundo ideal: una vez que agregas el ancho de banda del bus, la contención de la memoria desde múltiples accesos a los mismos chips, las sobrecargas de caché y todo lo demás de lo que estás hablando, el acceso a la memoria principal es de treinta a cincuenta veces más lento que acceder a los datos en caché.

El disco es, por supuesto, increíblemente más lento. En el análisis de este problema, la pregunta es si el costo de rendimiento (RAM que es del 75% de la velocidad) vale la pena, ya que almacena en caché el 70% de los datos antes del disco.

Para responder a la pregunta sobre dónde más se encuentra con esto: el lugar más común sería su tarjeta gráfica, donde el ancho de banda de la memoria es una de las restricciones significativas en la tasa de llenado general. Las mejoras allí ayudan sustancialmente a aumentar el número total de polígonos en juegos, etc.

De lo contrario, te topas con esto todos los días, pero solo en pequeñas formas. Usted paga ese costo de 30 veces para escribir datos en DRAM, y puede ver y medir absolutamente que en todo tipo de software que termina mostrando un enorme abismo de rendimiento a medida que aumenta el tamaño de la entrada. La compresión de video y el procesamiento de imágenes son lugares comunes en los que esta consideración puede generar cambios visibles en el rendimiento.

    
respondido por el Daniel Pittman 19.03.2012 - 21:04

Lea otras preguntas en las etiquetas