Con referencia al tema de bloqueo en el libro de texto de Arquitectura de Computadora, ¿hay alguna forma de mejorar la multiplicación de matrices?

(¿Asumo que te refieres a matriz-matriz en lugar de matriz-vector multiplicación?)

La multiplicación matricial-matricial es una operación interesante, una de las pocas que realmente puede acercarse a lograr el máximo rendimiento en los procesadores modernos. Sin embargo, la implementación de referencia (como la que se encuentra en netlib.org) funcionará con solo un pequeño porcentaje del pico. Entonces necesitas bloquear los bucles.

Como hay 3 bucles, ahora obtienes 6 bucles y, por lo tanto, muchas posibilidades.

Este tipo de cosas se conocen desde hace mucho tiempo y se ha investigado mucho. Le sugiero que vea el video incluido en la respuesta de Victor Eijkhout a ¿Qué hace que las bibliotecas de multiplicación de matrices como BLAS y ATLAS sean eficientes? para una buena discusión sobre cómo bloquear los bucles para el registro, el uso de L1, L2.

Durante décadas ha habido múltiples arquitecturas de supercomputadora diferentes diseñadas para este y otros problemas computacionalmente intensos. Difieren significativamente y requieren un compilador que sepa cómo aprovechar y utilizar eficientemente esas arquitecturas.