Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Scientific Computing
  3. BLIS

BLIS

NOASSERTIONC2.1

A portable software framework for instantiating high-performance BLAS-like dense linear algebra libraries.

GitHubGitHub
2.7k stars425 forks0 contributors

What is BLIS?

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.

Target Audience

Developers and researchers building or optimizing dense linear algebra libraries, particularly those targeting new hardware architectures or requiring mixed-datatype operations.

Value Proposition

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.

Overview

BLAS-like Library Instantiation Software Framework

Use Cases

Best For

  • Instantiating high-performance BLAS libraries for new CPU architectures
  • Implementing mixed-domain and mixed-precision matrix operations
  • Developing linear algebra libraries with advanced multithreading support
  • Creating custom BLAS-like operations via extensible addons and plugins
  • Optimizing complex matrix multiplication using real domain kernels
  • Building portable numerical software with generalized matrix storage

Not Ideal For

  • End-users seeking a pre-compiled, plug-and-play BLAS replacement without any configuration or tuning
  • Applications heavily dependent on level-1 BLAS operations, as BLIS's optimization focus is on level-2 and level-3 kernels
  • Teams without expertise in linear algebra or kernel optimization, due to the sophisticated build and configuration system
  • Projects targeting niche or unsupported hardware architectures where optimized kernels are not available, leading to generic performance

Pros & Cons

Pros

Kernel Isolation for Portability

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.

Generalized Storage Support

Supports column-major, row-major, and general stride storage, allowing operands of different formats within the same operation—a feature omitted by traditional BLAS.

Advanced Complex Operations

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.

Extensible via Addons/Plugins

Features addons and plugins for extending operation support and defining custom APIs without modifying core code, enabling rapid experimentation and customization.

Cons

Complex Configuration Process

The build system requires manual configuration for optimal performance, with detailed guides needed for architecture-specific setups, which can be daunting for newcomers.

Limited Out-of-Box Performance

For architectures beyond intel64, amd64, and arm64, BLIS may rely on generic kernels leading to lower performance, as noted in the External Packages section.

Steep Learning Curve

The framework's layered APIs and extensive documentation, while thorough, assume significant background in high-performance computing, making entry challenging for casual users.

Frequently Asked Questions

Quick Stats

Stars2,666
Forks425
Contributors0
Open Issues87
Last commit13 days ago
CreatedSince 2014

Tags

#blas#scientific-computing#high-performance-computing#high-performance#matrix-multiplication#multithreading#matrix-library#linear-algebra#numerical-computing#c99

Included in

Scientific Computing1.5k
Auto-fetched 6 hours ago

Related Projects

blazeblaze

High-performance C++ math library for dense and sparse arithmetic. (C++, BSD, Bitbucket)

Stars0
Forks0
Last commit
OpenBLASOpenBLAS

Optimized BLAS library based on GotoBLAS2. (C and Assembly, BSD, GitHub)

Stars0
Forks0
Last commit
BLASBLAS

Standard building blocks for performing basic vector and matrix operations. (Fortran, public domain, GitHub)

Stars0
Forks0
Last commit
LAPACKLAPACK

Routines for solving systems of linear equations, linear least-squares, eigenvalue problems, etc. (Fortran, BSD, GitHub)

Stars0
Forks0
Last commit
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub