OpenBLAS
{{Short description|Open-source software}}
{{Infobox software
| name = OpenBLAS
| logo =
| screenshot =
| caption =
| collapsible =
| author = Kazushige Goto
| developer = Zhang Xianyi, Wang Qian, Werner Saar
| released = {{release date and age|2011|3|22|df=yes}}
| latest release version = {{wikidata|property|reference|P348}}
| latest release date = {{start date and age|{{wikidata|qualifier|P348|P577}}}}
| latest preview version =
| latest preview date =
| programming language = C, modern Fortran
| operating system = {{plainlist|1=
}}
| platform = {{plainlist|1=
- x86, x86-64
- MIPS
- ARM, AArch64
- POWER, PPC64
- IBM Z
- SPARC
- RISC-V{{Cite web|url=https://github.com/xianyi/OpenBLAS#supported-cpus-and-operating-systems|title = OpenBLAS| website=GitHub |date=25 October 2021}}
}}
| size =
| language =
| genre = Linear algebra library; implementation of BLAS
| license = BSD License
}}
OpenBLAS is an open-source implementation of the BLAS (Basic Linear Algebra Subprograms) and LAPACK APIs with many hand-crafted optimizations for specific processor types. It is developed at the Lab of Parallel Software and Computational Science, ISCAS.
OpenBLAS adds optimized implementations of linear algebra kernels for several processor architectures, including Intel Sandy Bridge{{cite conference |author1=Wang Qian |author2=Zhang Xianyi |author3=Zhang Yunquan |author4=Qing Yi |title=AUGEM: Automatically Generate High Performance Dense Linear Algebra Kernels on x86 CPUs |conference=Int'l Conf. on High Performance Computing, Networking, Storage and Analysis |year=2013 |url=https://xianyi.github.io/paper/augem_SC13.pdf}}
and Loongson.{{cite conference |author1=Zhang Xianyi |author2=Wang Qian|author3=Zhang Yunquan |title=Model-driven Level 3 BLAS Performance Optimization on Loongson 3A Processor |conference=IEEE 18th Int'l Conf. on Parallel and Distributed Systems (ICPADS) |year=2012}} It claims to achieve performance comparable to the Intel MKL. On machines that support the AVX2 instruction set, OpenBLAS can achieve similar performance to MKL, but there are currently almost no open source libraries comparable to MKL on CPUs with the AVX512 instruction set.
OpenBLAS is a fork of GotoBLAS2, which was created by Kazushige Goto at the Texas Advanced Computing Center.
History and present
OpenBLAS was developed by the parallel software group led by Professor Yunquan Zhang from the Chinese Academy of Sciences.
OpenBLAS was initially only for the Loongson CPU platform. Dr. Xianyi Zhang contributed a lot of work. Since GotoBLAS was abandoned, the successor OpenBLAS is now developed as an open source BLAS library for multiple platforms, including x86, ARMv8, MIPS, and RISC-V platforms, and is respected for its excellent portability.
The parallel software group is modernizing OpenBLAS to meet current computing needs. For example, OpenBLAS's level-3 computations were primarily optimized for large and square matrices (often considered as regular-shaped matrices). And now irregular-shaped matrix multiplication are also supported, such as tall and skinny matrix multiplication (TSMM),{{cite conference |author1=Chendi Li |author2=Haipeng Jia |author3=Hang Cao |author4=Jianyu Yao |author5=Boqian Shi |author6=Chunyang Xiang |author7=Jinbo Sun |author8=Pengqi Lu |author9=Yunquan Zhang |title=AutoTSMM: An Auto-tuning Framework for Building High-Performance Tall-and-Skinny Matrix-Matrix Multiplication on CPUs |conference=IEEE International Symposium on Parallel and Distributed Processing with Applications |year=2021 |url=http://www.cloud-conf.net/ispa2021/proc/pdfs/ISPA-BDCloud-SocialCom-SustainCom2021-3mkuIWCJVSdKJpBYM7KEKW/264600a159/264600a159.pdf}} which supports faster deep learning calculations on the CPU. TSMM is one of the core calculations in deep learning operations. Besides this, the compact function and small GEMM will also be supported by OpenBLAS.
See also
- Automatically Tuned Linear Algebra Software (ATLAS)
- BLIS (BLAS-like Library Instantiation Software)
- Intel Math Kernel Library (MKL)
References
{{reflist|2}}