0

2 つの非正方行列 (2000,100)、(100,100) で行列の乗算を実行したいのですが、Nvidia の例のようにブロック部分行列を使用しようとしましたが、結果が間違っています。ここで解決済みの方法を見つけました。 CUDA の非正方行列乗算 はゼロ パディングを使用するため、ブロック サイズを 16 に変更しますが、ワーク グループ サイズが正しくありません。pyopencl を使用し、Blas を使用できません。

4

1 に答える 1

0

これまでにこのトピックに関して見た中で最高のプレゼンテーションの 1 つは、AFDS 2011 でした。

PDFプレゼンテーション。

ビデオ(ストリーム)

ビデオ(ダウンロード)

彼らの行列は、Linpack サイズの巨大なもので、正方形ではありませんでした。メインの GPU カーネルのブロック サイズを 1024 から小さいサイズ (32,64,128?) に縮小して、ハードウェアの LDS に適合する可能性があるため、問題をより適切に解決できます。プレゼンターは、CPU を使用して、GPU によって処理されなかった不規則な寸法の領域を処理しました。

于 2012-06-30T16:06:31.170 に答える