私はいくつかの計算を行っており、さまざまなBLAS実装の力と弱点について分析を行っています。しかし、私は問題に遭遇しました。
私はcuBlasをテストしていますが、GPUでlinAlgを実行するのは良い考えのように思えますが、1つの問題があります。
列メジャー形式を使用したcuBlasの実装。これは最終的に必要なものではないため、BLASに行列転置を実行させる方法があるかどうか知りたいです。
BLAS には、行列の転置ルーチンが組み込まれていません。CUDA SDK には、転置を実行するための最適な戦略について説明する論文を含む行列の転置の例が含まれています。あなたの最善の戦略は、おそらく、転置入力バージョンの呼び出しで CUBLAS への行優先入力を使用し、次に列優先で中間計算を実行し、最後に SDK 転置カーネルを使用して転置操作を後で実行することです。
CUBLAS が CUBLAS バージョン 5 で転置ルーチンを追加したことを追加するために編集されましたgeam
。これは、GPU メモリで行列転置を実行でき、使用しているアーキテクチャに最適であると見なす必要があります。