OpenBlas库----cblas_dgemm()函数
时间: 2023-10-05 18:09:54 浏览: 272
OpenBLAS-v0.2.14-Win64-int32.zip
OpenBLAS是一个开源的基础线性代数子程序库,提供了一些常用的线性代数运算函数,包括矩阵乘法。其中,cblas_dgemm()函数是用于实现双精度浮点数矩阵乘法的函数。它的原型如下:
```
void cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
const enum CBLAS_TRANSPOSE TransB, const int M, const int N, const int K,
const double alpha, const double *A, const int lda, const double *B,
const int ldb, const double beta, double *C, const int ldc);
```
该函数的参数含义如下:
- `Order`:矩阵存储顺序,可选值为`CblasRowMajor`和`CblasColMajor`。
- `TransA`:A矩阵是否需要转置,可选值为`CblasNoTrans`和`CblasTrans`。
- `TransB`:B矩阵是否需要转置,可选值为`CblasNoTrans`和`CblasTrans`。
- `M`:C矩阵的行数。
- `N`:C矩阵的列数。
- `K`:A和B矩阵的公共维度。
- `alpha`:A和B矩阵相乘的系数。
- `A`:A矩阵的首地址。
- `lda`:A矩阵的列数或者行数(取决于`Order`参数)。
- `B`:B矩阵的首地址。
- `ldb`:B矩阵的列数或者行数(取决于`Order`参数)。
- `beta`:C矩阵的系数。
- `C`:C矩阵的首地址。
- `ldc`:C矩阵的列数或者行数(取决于`Order`参数)。
该函数实现的是以下矩阵相乘运算:
```
C = alpha * A * B + beta * C
```
其中,A、B、C矩阵的维度分别为M×K、K×N和M×N。
阅读全文