Angenommen, Sie eine dichte Matrix der Größe haben 1500x500 und Sie müssen es mit einem Block-Diagonalmatrix der Größe 500x500 multiplizieren, die auf der Diagonalen sitzen zehn Untermatrizen der Größe 50x50 besteht: Manchmal alleWie dichte x Blockdiagonale Matrixmultiplikation in CUDA implementieren?
S 0 ... 0 0
0 S 0 0
...
0 0 ... S 0
0 0 ... 0 S <- each S is 50x50
S sind gleich, manchmal nicht.
Ich habe noch kein Profil erstellt, aber ich fühle mich wie eine direkte CUBLAS-Multiplikation würde zu viel Zeit mit den Nullen verschwenden. Gibt es effiziente Möglichkeiten, eine solche Multiplikation zu implementieren?