A portable software framework for instantiating high-performance BLAS-like dense linear algebra libraries.
BLIS is a portable software framework for instantiating high-performance BLAS-like dense linear algebra libraries. It solves the problem of creating optimized BLAS implementations by isolating essential computational kernels that, when optimized, automatically enable high performance across most level-2 and level-3 operations. The framework includes BLAS compatibility and unique object-based APIs.
Developers and researchers building or optimizing dense linear algebra libraries, particularly those targeting new hardware architectures or requiring mixed-datatype operations.
BLIS offers a productivity advantage over traditional BLAS development by compartmentalizing optimization efforts into a few kernels, provides richer functionality like generalized storage and complex domain support, and enables extensibility through addons and plugins.
BLAS-like Library Instantiation Software Framework
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
By isolating key computational kernels, optimizing them automatically boosts performance across most level-2 and level-3 operations, making it a productivity multiplier for instantiating libraries on new architectures.
Supports column-major, row-major, and general stride storage, allowing operands of different formats within the same operation—a feature omitted by traditional BLAS.
Includes complex symmetric and Hermitian forms omitted by BLAS, and implements the 1m method for complex multiplication using real kernels, reducing the need for complex microkernels.
Features addons and plugins for extending operation support and defining custom APIs without modifying core code, enabling rapid experimentation and customization.
The build system requires manual configuration for optimal performance, with detailed guides needed for architecture-specific setups, which can be daunting for newcomers.
For architectures beyond intel64, amd64, and arm64, BLIS may rely on generic kernels leading to lower performance, as noted in the External Packages section.
The framework's layered APIs and extensive documentation, while thorough, assume significant background in high-performance computing, making entry challenging for casual users.