我有興趣瞭解在計算矩陣乘法(C = A * B)時如何將cublasSgemm
/clAmdBlasSgemm
例程映射到GPU上。在調用cublasSgemm/clAmdBlasSgemm例程時如何將線程/塊映射到GPU上?
假設輸入矩陣的維數爲:A_rows = 6144; A_cols = 12288; B_rows = 12288; B_cols = 15360;
和結果矩陣的維數:: C_rows = 6144; C_cols = 15360;
假設我已經初始化主機上的輸入矩陣,並將矩陣數據複製到設備內存中。之後,我打電話給cuBlas
或clAmdBlas
例程在GPU上進行矩陣乘法。
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值是否映射到一個計算單位(SM)上?如果否,那麼m和n的最大值是多少?
3.)我們是否有線程/塊的控制權?
你真的想知道關於CUBLAS或任何OpenCL庫的問題嗎?你認爲有一個共同的答案適用於兩者嗎? – talonmies 2013-02-13 07:19:55
@talonmies是的,我想知道這些例程是如何定義的? – Gopal 2013-02-13 08:09:05
這是兩個完全不同的問題。選擇其中一個。 – talonmies 2013-02-13 08:15:55