Veamos cómo funciona tu programa. La CPU quiere obtener una instrucción, por lo que la busca en el i-cache, pero no está allí. Por lo tanto, espera 500 ciclos, o más, para los cachés L2, L3 y luego la memoria. Son 500 ciclos durante los cuales miles de operaciones podrían haberse ejecutado.
Ahora, recibió varias instrucciones en la misma línea de caché. ¡Excelente! Pero ahora quiere preparar datos de una matriz, ¡vaya! Tiene que esperar 500 ciclos más. Finalmente llega a los datos y comienza a procesarlos. En algún momento, querrá leer más datos, que aún no están en la memoria caché. Otros 500 ciclos desperdiciados.
Para minimizar estos ciclos perdidos, los proveedores de CPU, como Intel, han desarrollado una serie de trucos. Entonces, ahora tiene un caché L1 pequeño (i-cache, d-cache), un caché L2 más grande y un caché L3 mucho más grande. Toda esta complejidad, con la esperanza de almacenar todos sus datos / instrucciones útiles en una memoria rápida, lejos de su RAM. No funciona tan bien, especialmente en el código orientado a objetos, donde tiene muchos objetos pequeños por todo el lugar. Creo que afecta a los lenguajes más duros que tratan todo como un objeto, como Python (pero no tengo pruebas de eso).
- ¿Son excesivos los 1024 GB de RAM?
- ¿Continuar agregando RAM aumentará la velocidad de la computadora?
- ¿Puede la RAM no volátil (MRAM, FRAM) hacer que Python sea más rápido?
- Cuál es la mejor computadora portátil que puedo obtener con Rs. 50k? Estoy en la universidad, y las especificaciones que quiero son un i5 con 8GB de RAM, gráficos de 2GB y un disco duro de 1TB.
- ¿Los juegos ejecutarán mejores gráficos con más RAM?
Solo eche un vistazo a esto (tomado de The Secrets of PC Memory: Part 1):
Esta imagen aparece en un artículo de 2007, que no es muy nuevo. Supongo que en los procesos más nuevos las cosas no son mejores.
Si la RAM era 500 veces más rápida, con una conectividad 500 veces más rápida a la CPU, ya no necesitará caché. El caché es enorme y desperdicia mucho espacio en el dado (chip). En lugar de desperdiciar todo este espacio y energía en la RAM, podría agregar más núcleos de CPU. También podría simplemente hacer que su CPU sea más pequeña, sin núcleos adicionales.
Si hace que la CPU sea más pequeña, la hará mucho más barata, ya que habrá menos defectos de producción. Si hay menos defectos de producción, se tiran menos chips (un rendimiento más alto) o se desactivan parcialmente y se los califica como una CPU diferente. Cuando las CPU se vuelven más pequeñas, necesitan menos energía, menos enfriamiento y baterías más pequeñas para dispositivos móviles.
No solo esas computadoras serán más baratas y consumirán menos energía, sino que también serán más rápidas. Serán mucho más rápidos que necesitará menos núcleos para hacer el mismo trabajo, lo que nuevamente conduce a un software más económico, ya que habrá que paralelizar menos.
Una RAM significativamente más rápida y económica revolucionará la informática, nada menos.