MKL BLAS 函数¶
所述accelerate.mkl.blas模块包含的由底层英特尔MKL库来实现BLAS功能的子集。
参考¶
-
accelerate.mkl.blas.
dot
( x , y ) ¶ 计算并返回x和y的向量点积。
参数: - x – 一维数组
- y – 一维数组
返回类型: 结果
笔记: 可以复制输入参数以调整它们的类型。
-
accelerate.mkl.blas.
axpy
( alpha , x , y ) ¶ \(y \leftarrow alpha*x + y\)
参数: - alpha – 一个标量
- x – 一维数组
- y – 一维数组
返回类型: 一维数组
笔记: 可以复制输入参数以调整它们的类型。
笔记: y仅在它具有适当的类型时就地修改。请参阅此示例。
-
accelerate.mkl.blas.
gemv
( trans , alpha , A , x , beta=0. , y=None ) ¶ 广义矩阵向量乘法:
\(y \leftarrow alpha*trans(A)*x + beta*y\)
参数: - 反式——
'n','N': \(反式(A)=A\) 't', 'T': \(trans(A)=A^T\)(A 的转置) 'c','C': \(trans(A)=A^*\)(A 的厄米转置) - alpha – 一个标量
- x – 一维数组
- beta – 一个标量
- y – 一维数组
返回类型: 一维数组
笔记: 可以复制输入参数以调整它们的类型,以及将维度排序调整为列优先。
笔记: y仅在它具有适当的类型时就地修改。请参阅此示例。如果y别名A或x ,则结果未定义。
- 反式——
-
accelerate.mkl.blas.
gemm
( transa , transb , alpha , A , B , beta=0. , C=None ) ¶ 广义矩阵-矩阵乘法:
\(C \leftarrow alpha*transa(A)*transb(B) + beta*C\)
参数: - 交易–
'n','N': \(transa(A)=A\) 't', 'T': \(transa(A)=A^T\)(A 的转置) 'c','C': \(transa(A)=A^*\)(A 的厄米转置) - transb -
'n','N': \(transb(B)=B\) 't', 'T': \(transb(B)=B^T\)(B 的转置) 'c','C': \(transb(B)=B^*\)(B 的厄米转置) - alpha – 一个标量
- A – 二维数组
- B——二维数组
- beta – 一个标量
- C – 二维数组
返回类型: 二维数组
笔记: 可以复制输入参数以调整它们的类型,以及将维度排序调整为列优先。
笔记: 仅当C具有适当的类型时,它才会就地修改。请参阅此示例。如果C别名A或B ,则结果未定义。
- 交易–
示例¶
alpha = 1.+1.j
A = np.arange(16, dtype=np.float64).reshape(4,4)
x = np.arange(4, dtype=np.float64)
beta = 0.
y = np.arange(4, dtype=np.float64)
result = blas.gemv('N', alpha, A, x, beta, y)
由于alpha是复数,\(alpha*A*x + beta*y\) 的结果也将是复数,因此不能存储在y 中。因此y不能就地修改。