跳至內容

BLAS

出自Taiwan Tongues 台語維基
於 2025年8月24日 (日) 09:56 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

BLAS(英語:Basic Linear Algebra Subprograms,基礎線性代數程式集)是一个應用程式介面(API)標準,用規範釋出基礎線性代數操作的數值庫(如向量抑是矩陣乘法)。 該當是程式集上頭先開佇一九七九年,閣較用佇咧建立閣較大的數值程式包(如 LAPACK)。 佇高效能計算領域,BLAS 予人廣泛使用。比如講,LINPACK 的運算是成績真大程度攏著愛決定 BLAS 中子程式 DGEMM 的表現。

為著提高效能,各軟硬體廠商是針對其產品著 BLAS 介面實現進行懸度最佳化。

BLAS 級別

BLAS 按照功能被分做三个級別:

  • Level 一:向量-向量運算


$ { \ boldsymbol { y } } \ leftarrow \ alpha { \ boldsymbol { x } } + { \ boldsymbol { y } } \ ! $
  • Level 二:矩陣-向量運算


$ { \ boldsymbol { y } } \ leftarrow \ alpha A { \ boldsymbol { x } } + \ beta { \ boldsymbol { y } } \ ! $
  • Level 三:矩陣-矩陣運算


$ C \ leftarrow \ alpha AB + \ beta C \ ! $

原理

BLAS 實現攏一般對記持體階層最佳化(Memory Hierarchy Optimization), 使數據咧欲取重用、甚至減少轉譯後備來緩衝區失誤(TLB miss)就提高運算效能。

實現

Netlib BLAS

官方來參考實現,程式語言為 Fortran 七十七。

ACML(AMD Core Math Library)

廠商 AMD 的 BLAS 實現。

ATLAS

BSD 授權條款開源的 BLAS 實現。

CUDA SDK

NVIDIA CUDA SDK 包括著矣 BLAS 功能,通過 C 編程實這馬 GeForce 八系列抑是更新一代顯示卡上執行。

GotoBLAS

德克薩斯進階計算中心後藤和茂開發的 BSD 授權條款開源的 BLAS 實現,但已經停止矣就活跳跳,後繼者為 OpenBLAS。

OpenBLAS

繼任啦 GotoBLAS 的開源 BLAS 的實現,主要是由中國科學院軟件研究所並列軟體佮計算科學實驗室做開發。

ESSL

IBM 的科學工程數值庫 ESSL,支援 AIX 和 Linux 系統下的 PowerPC 架構。

Intel MKL

Intel 核心數學庫,支援 Pentium,Intel Core 佮 ItaniumCPU 系列。實現平台包括 Linux , Windows 佮 OS X。

GSL

GNU 科學數值庫(GNU Scientific Library)包括著矣 GNU 落有偌平台 C 語言實現。

RenderScript IntrinsicBLAS

是因為 Renderscript 的 Android 行動終端高效能 BLAS 實現。

參考文獻