A multiplicação da matriz (Mat * Mat e Mat * Vec) é dimensionada com o número de não-zeros ou com o tamanho da matriz? Ou alguma combinação dos dois.
Que tal com forma.
Por exemplo, eu tenho uma matriz 100 x 100 com 100 valores ou uma matriz 1000 x 1000 com 100 valores.
Ao esquadrar essas matrizes (ou multiplicá-las por matrizes semelhantes com esparsidade semelhante), o primeiro (100x100) será mais rápido que o segundo (1000x1000)? Depende de onde estão os valores?
Se for dependente da implementação, estou interessado na resposta para o PETSc.
fonte
Um modelo completo do desempenho do SpMV é apresentado neste documento . Mostra claramente que o limitador principal é a largura de banda, embora você possa diminuir a carga usando vários vetores. Depois disso, você se depara com limitações de problemas de instruções e um limite de instruções de gravação pendentes, acredito.
fonte