¿Cuáles son algunos algoritmos rápidos para multiplicar matrices cuadradas?

Es un campo de investigación completo, ¿sabes? Para algoritmos teóricos (no implementados en ninguna biblioteca) vea el algoritmo Coppersmith – Winograd como punto de partida. El objetivo aquí es disminuir el número de multiplicaciones y reemplazos por suma. Consulte el algoritmo de Strassen para conocer el origen de este campo de investigación (puede multiplicar dos matrices de 2 × 2 con solo 7 multiplicaciones en lugar de 8 como se hace de manera estándar). Para los aspectos de geometría algebraica de la multiplicación de matrices, vea Landsberg, JD Geometry y la Complejidad de la multiplicación de matrices.

Pero la práctica y la teoría son asuntos diferentes. La CPU moderna toma un tiempo similar para la multiplicación que para la suma. Los problemas de almacenamiento en caché son primordiales. Leer el código fuente de Eigen puede ayudar en ese asunto, ya que utiliza enlaces CUDA y cosas similares para alta velocidad.