一.簡介
BLAS【Basic Linear Algebra Subprograms,基礎線性代數程序集】是一個應用程序接口【API】標准,用於規范發布基礎基礎線性代數操作的數值庫【常用於向量或矩陣計算】。該程序集最初發布於1979年,並用於創建更大的數值程序包【例如:LAPACK】。在高性能計算領域,BLAS被廣泛使用。
二.特點
1.BLAS按照功能被分為三個級別:
Level1:向量-向量計算,比如:點積【dot】,向量加法和乘法【axpy】,絕對值的和【asum】等。
Level2:向量-矩陣計算,比如:矩陣向量乘法【gemv】。
Level3:矩陣-矩陣計算,比如:矩陣乘法【gemm】。
2.每一種函數操作都區分不同的數據類型【單精度、雙精度、復數】,比如:矩陣乘法分為sgemm【單精度一般矩陣乘法】、dsymm【雙精度對稱矩陣乘法】、zhemm【雙精度復數埃米特矩陣乘法】。之所以要分這么多種,主要是針對每種不同類型的矩陣都要分別設計專門的算法,使得計算性能最優。
三.基本運算函數
備注:BLAS運算中的每個函數分為:單精度、雙精度、復數和雙精度復數4種類型。
四.BLAS向量-向量計算
五.BLAS矩陣-向量計算
六.BLAS矩陣-矩陣計算