¿La multiplicación de matrices (Mat * Mat y Mat * Vec) se escala con el número de ceros o con el tamaño de la matriz? O alguna combinación de los dos.
¿Qué pasa con la forma?
Por ejemplo, tengo una matriz de 100 x 100 con 100 valores, o una matriz de 1000 x 1000 con 100 valores.
Al cuadrar estas matrices (o multiplicarlas por matrices similares con una dispersión similar), ¿la primera (100x100) será más rápida que la segunda (1000x1000)? ¿Depende de dónde están los valores?
Si depende de la implementación, estoy interesado en la respuesta para PETSc.
fuente
En este documento se proporciona un modelo completo de rendimiento de SpMV . Muestra claramente que el limitador principal es el ancho de banda, aunque puede disminuir la carga mediante el uso de múltiples vectores. Después de eso, te encuentras con limitaciones de problemas de instrucción y un límite de instrucciones de escritura pendientes, creo.
fuente