cublasSgemmBatched

THCudaBlas_SgemmBatched CALL cublasSgemmBatched
  1. Function Code

    cublasSgemmBatched(state,
                       'n',//不对a进行转置
                       'n',//不对b进行转置
                       m,//输出矩阵的行
                       n,//输出矩阵的列
                       k,//[nxk]x[kxm]
                       1.0f,//参数1
                       a_b,//矩阵b地址
                       lda,//列重排行数
                       b_b,//矩阵a的地址
                       ldb,//列重排行数
                       0.0f,//参数2
                       output_b,//输出的地址
                       ldc,//输出矩阵的列数
                       batch);//批大小
    
  2. op='n',默认列存储模式

    op_a op_b m n k lda ldb ldc
    n n 2 3 2 2 2 2

    A \left[ \begin{matrix} 1&2\\ 3&4 \end{matrix} \right] \xrightarrow{col-major} \left[ \begin{matrix} 1&3\\2&4 \end{matrix} \right] \xrightarrow{lda=2} A'\left[ \begin{matrix} 1&3\\2&4 \end{matrix} \right]\\ B \left[ \begin{matrix} 1&2&3\\ 4&5&6 \end{matrix} \right] \xrightarrow{col-major} \left[ \begin{matrix} 1&3&5\\2&4&6 \end{matrix} \right] \xrightarrow{ldb=2} B'\left[ \begin{matrix} 1&3&5\\2&4&6 \end{matrix} \right]\\ A'\times B'= \left[ \begin{matrix} 7&15&23\\10&22&34 \end{matrix} \right] \xrightarrow{row-major} \left[ \begin{matrix} 7&10&15\\22&23&34 \end{matrix} \right]

  3. op为't',两次列存储

    op_a op_b m n k lda ldb ldc
    n t 2 3 2 2 3 2

    A \left[ \begin{matrix} 1&2\\ 3&4 \end{matrix} \right] \xrightarrow{col-major} \left[ \begin{matrix} 1&3\\2&4 \end{matrix} \right] \xrightarrow{lda=2} A' \left[ \begin{matrix} 1&3\\2&4 \end{matrix} \right]\\ B \left[ \begin{matrix} 1&2&3\\ 4&5&6 \end{matrix} \right] \xrightarrow{col-major} \left[ \begin{matrix} 1&3&5\\2&4&6 \end{matrix} \right] \xrightarrow{ldb=3} \left[ \begin{matrix} 1&4\\2&5\\3&6 \end{matrix} \right] \xrightarrow{tranb=t} B' \left[ \begin{matrix} 1&2&3\\4&5&6 \end{matrix} \right] \\ A'\times B'= \left[ \begin{matrix} 13&17&21\\18&24&30 \end{matrix} \right] \xrightarrow{row-major} \left[ \begin{matrix} 13&18&17\\24&21&30 \end{matrix} \right]

  4. leading-dimension

    op_a op_b m n k lda ldb ldc
    t n 4 2 1 1 1 4

    A \left[ \begin{matrix} 1&2\\ 3&4 \end{matrix} \right] \xrightarrow{col-major} op(A) \left[ \begin{matrix} 1&3\\2&4 \end{matrix} \right] \xrightarrow{lda=1} A' \left[ \begin{matrix} 1&2&3&4 \end{matrix} \right] \xrightarrow{trana=t} B'\left[ \begin{matrix} 1\\2\\3\\4 \end{matrix} \right] \\ B \left[ \begin{matrix} 1&2 \end{matrix} \right] \xrightarrow{col-major} \left[ \begin{matrix} 1\\2 \end{matrix} \right] \xrightarrow{ldb=1} \left[ \begin{matrix} 1&2 \end{matrix} \right]\\ A'\times B'= \left[ \begin{matrix} 1&2\\2&4\\3&6\\4&8 \end{matrix} \right] \xrightarrow{row-major} \left[ \begin{matrix} 1&2\\3&4\\2&4\\6&8 \end{matrix} \right]

  5. 参考文章

    1. 博客园: 爨爨爨好
    2. NVIDIA: cuBlas
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容