行列の乗算(C = A * B)を計算するときに、cublasSgemm
/ルーチンがGPUにどのようにマッピングされるかを知りたいです。clAmdBlasSgemm
入力行列の次元を想定します::A_rows= 6144; A_cols = 12288; B_rows = 12288; B_cols = 15360;
結果の行列の次元::C_rows= 6144; C_cols = 15360;
ホストで入力マトリックスを初期化し、マトリックスデータをデバイスメモリにコピーしたと仮定します。その後、GPUで行列の乗算を行うために次のcuBlas
またはルーチンを呼び出しています。clAmdBlas
void cublasSgemm (char transa, char transb, int m, int n, int k, float alpha, const float *A, int lda, const float *B, int ldb, float beta, float *C, int ldc);
ここで、m = A_rows; およびn=B_cols;
だから私の疑問は次のとおりです:
1。)これらのルーチンはGPUでどのように実装されていますか?
2.)mとnの値は1つの計算単位(SM)にマッピングされていますか?いいえの場合、mとnの最大値は何になりますか?
3.)スレッド/ブロックを制御できますか?