BLAS 介绍

主要观点

  • Basic Linear Algebra Subprograms(BLAS)是 70/80 年代由美国公共机构的学术界成员创建的规范,旨在标准化和提高低级线性代数运算的速度,最初涉及向量运算,后来支持更复杂的算法。
  • Netlib Quick Reference Guide是了解 BLAS 的好起点,其中引用了作为该规范基础的三篇研究论文,Jack Dongarra 是该领域的关键人物。
  • BLAS 将高级矩阵操作分解为低级操作,通过将矩阵划分为较小的组件并调用低级 BLAS 函数来提高计算速度,如 LAPACK 依赖于 BLAS。
  • GotoBLAS 和 OpenBLAS 是 BLAS 的实现,OpenBLAS 是从 GotoBLAS2 分叉而来,目前仍在维护和更新,支持 RISC-V 等。
  • FlexiBLAS可在运行时切换不同的 BLAS 后端,提供了 profiling 和 debugging 功能,被多种包使用。
  • 矩阵可用于表示 3D 物体和线性变换,通过矩阵乘法可实现 3D 物体的旋转等操作,如用 ncurses 库在终端绘制旋转的 3D 立方体,但对于大型模型,需要专用硬件加速。

关键信息

  • BLAS 规范的发展历程,包括不同级别操作的支持。
  • Netlib Quick Reference Guide 及相关研究论文。
  • GotoBLAS、OpenBLAS 和 FlexiBLAS 的特点和发展。
  • 矩阵在计算机图形等领域的应用及相关操作。

重要细节

  • xGEMM 函数用于执行一般矩阵乘法操作,涉及多种参数和选项。
  • OpenBLAS 与 Intel MKL 的关系及 oneAPI 规范。
  • FlexiBLAS 的安装和使用方法,包括 hook 功能及相关示例。
  • 在终端绘制旋转立方体的代码实现及相关矩阵操作。
阅读 28
0 条评论