Apakah perkalian matriks (baik Mat * Mat, dan Mat * Vec) skala dengan jumlah non-nol, atau dengan ukuran matriks? Atau kombinasi keduanya.
Bagaimana dengan bentuk.
Sebagai contoh, saya memiliki 100 x 100 matriks dengan 100 nilai di dalamnya, atau 1000 x 1000 matriks dengan 100 nilai di dalamnya.
Ketika mengkuadratkan matriks ini (atau mengalikannya dengan matriks yang sama dengan sparsity yang sama), apakah yang pertama (100x100) akan lebih cepat daripada yang kedua (1000x1000)? Apakah itu tergantung pada di mana nilainya?
Jika tergantung pada implementasi, saya tertarik pada jawaban untuk PETSc.
sumber
Model lengkap kinerja SpMV diberikan dalam makalah ini . Ini menunjukkan dengan jelas bahwa pembatas utama adalah bandwidth, meskipun Anda dapat mengurangi beban dengan menggunakan banyak vektor. Setelah itu Anda mengalami keterbatasan masalah instruksi dan batas pada instruksi menulis yang luar biasa saya percaya.
sumber