C_C*_*ing 2 c performance product matrix blas
感谢BLAS,我想用C语言实现一些快速操作(没有机会选择另一个库,它是我项目中唯一可用的库).我做了以下操作:
我听说BLAS可以进行这种操作并且非常快.但我搜索并发现没有任何东西(在C代码行中,我的意思),这可以让我理解并应用它.
BLAS库最初是在Fortran中编写的.C的接口称为CBLAS,其前缀为所有函数cblas_.
不幸的是,BLAS你只能直接解决最后两点:
sgemv(单精度)或dgemv(双精度)执行矩阵向量乘法saxpy(单精度)或daxpy(双精度)执行一般矢量矢量加法BLAS不处理反转矩阵的更复杂操作.为此,有一个基于BLAS构建的LAPACK库,并提供线性代数操作.LAPACK中的一般矩阵求逆是用sgetri(单精度)或dgetri(双精度)完成的,但是还有其他的反转例程可以处理像对称矩阵这样的特定情况.如果你反转矩阵只是为了稍后乘以一个向量,那么它实际上是求解一个线性方程组,并且有sgesv(单精度)和dgesv(双精度).
您只能通过基本上(重新)实现其中一个LAPACK例程来使用BLAS操作来反转矩阵.
有关更多详细信息和示例,请参阅许多BLAS/LAPACK实现之一,例如英特尔MKL或ATLAS.