La multiplication matricielle (Mat * Mat et Mat * Vec) est-elle proportionnelle au nombre de non-zéros ou à la taille de la matrice? Ou une combinaison des deux.
Et la forme.
Par exemple, j'ai une matrice 100 x 100 contenant 100 valeurs ou une matrice 1000 x 1000 contenant 100 valeurs.
Lors de la mise au carré de ces matrices (ou en les multipliant par des matrices similaires avec une rareté similaire), la première (100x100) sera-t-elle plus rapide que la seconde (1000x1000)? Cela dépend-il de l'emplacement des valeurs?
Si cela dépend de l'implémentation, je suis intéressé par la réponse pour PETSc.
la source
Un modèle complet de performance SpMV est donné dans cet article . Cela montre clairement que le limiteur principal est la bande passante, bien que vous puissiez réduire la charge en utilisant plusieurs vecteurs. Après cela, vous rencontrez des limites de problème d'instructions et une limite sur les instructions d'écriture en suspens, je crois.
la source