awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
google avatar

google/highway

0
View on GitHub↗
5,644 stars·445 forks·C++·12 views

Highway

Highway is a portable C++ library and hardware abstraction layer designed for writing single instruction multiple data (SIMD) code. It provides a unified interface that maps data-parallel logic to various CPU instruction sets, enabling the development of high-performance software that runs across different processor architectures without requiring architecture-specific assembly.

The project features a dynamic instruction dispatcher that selects the most efficient CPU instruction set at runtime based on detected hardware. It also supports static target specialization and extensible mechanisms for adding new hardware targets or custom SIMD operations.

The library covers a broad range of vector operations, including element-wise arithmetic, lane reduction, shuffling, and masked conditional execution. It includes a vectorized math library, a memory manager for aligned allocation and masked load-store operations, and primitives for hardware-accelerated cryptography.

Tooling is provided for the automated compilation and validation of hardware-accelerated instructions across multiple processor architectures.

Features

  • Hardware Dispatchers - Features a dynamic dispatcher that detects CPU capabilities at startup to select the most efficient instruction set.
  • Hardware Abstraction Layers - Acts as a hardware abstraction layer that maps processor-specific intrinsics into a unified C++ API.
  • SIMD-Based Data Parallelism - Provides a portable interface to write data-parallel code that maps to hardware-accelerated SIMD instructions.
  • Cross-Architecture Performance Strategies - Enables high-performance software execution across multiple processor types without requiring architecture-specific assembly.
  • Instruction Set Targeting - Selects the best available CPU instruction set during program execution to maximize performance on heterogeneous hardware.
  • Runtime Instruction Dispatchers - Ships a dynamic instruction dispatcher that selects the most efficient CPU instruction set based on detected hardware.
  • SIMD Abstraction Layers - Provides a portable C++ template interface that maps to architecture-specific SIMD intrinsics at compile time.
  • SIMD Libraries - Provides a portable C++ library for writing SIMD code that maps to various CPU instruction sets.
  • Loop Vectorization - Provides a portable interface to implement loop vectorization using strip-mining strategies across various CPU architectures.
  • Vector Masking and Reduction - Provides hardware-specific sum and max instructions to aggregate vector elements into scalar values.
  • Conditional Execution Masks - Uses binary masks to control vector lane operations and avoid branching in data-parallel code.
  • Hardware Instruction Targeting - Executes specialized code paths by targeting specific hardware instructions based on the detected CPU target.
  • Vector Instruction Targets - Optimizes binaries by resolving specific SIMD instruction set targets like SSE or AVX during compilation.
  • Vector Instruction Mapping - Provides a portable interface that maps data-parallel logic to architecture-specific vector instruction intrinsics.
  • Custom SIMD Operations - Allows adding new hardware-accelerated functions by writing target-specific implementations for all supported architectures.
  • SIMD Memory Alignment - Ensures memory allocations start on specific byte boundaries to maximize CPU cache efficiency and prevent faults.
  • SIMD Memory Managers - Includes a memory manager for aligned allocation and masked load-store operations to optimize vector processing.
  • High-Performance Data Analysis - Accelerates mathematical operations, sorting, and hashing using optimized low-level vector algorithmic toolkits.
  • Vectorized Memory Access - Moves data between memory and registers using aligned, unaligned, masked, or interleaved access patterns.
  • Masked Memory Operations - Implements masked load and store operations to prevent out-of-bounds memory access during partial vector processing.
  • Vector Lane Shuffling - Implements vector lane shuffling including reverses, slides, and broadcasts to rearrange elements within registers.
  • Cryptographic Accelerators - Implements hardware-accelerated cryptographic primitives and carryless multiplication using SIMD vector instructions.
  • Hardware Target Extensions - Integrates new processor architectures by defining target identifiers and connecting them to dispatch mechanisms.
  • Vector Element Comparison - Evaluates equality and relational conditions between vectors to create binary masks for conditional processing.
  • Vector Mask Manipulation - Provides tools to create and combine binary masks for conditional execution on specific vector lanes.
  • Vectorized Math Functions - Offers a vectorized math library for fast trigonometric, hyperbolic, and complex arithmetic using CPU instructions.
  • Parallel Math Libraries - Provides a collection of hardware-accelerated functions for performing element-wise and complex math on vectors.
  • Vector Mathematics - Implements hardware-accelerated dot products and other mathematical functions across various CPU architectures.
  • Vector Arithmetic Operations - Provides hardware-accelerated element-wise arithmetic and fused multiply-add operations across diverse CPU architectures.
  • Vector Type Converters - Provides functions for changing element widths and casting between integer and floating-point representations in vector registers.
  • Conditional Vector Operations - Implements masked conditional execution to control which vector lanes perform operations without branching.
  • Hardware-Accelerated Primitive Substitutions - Implements secure hashing and encryption rounds using processor-specific hardware-accelerated primitives.
  • Compile-Time Metaprogramming - Implements compile-time logic to resolve optimal data types and vector widths across different hardware targets.
  • Parallel Programming Frameworks - Performance-portable SIMD intrinsics for various architectures.

Star history

Star history chart for google/highwayStar history chart for google/highway

How this analysis was created: This summary and feature list were written by an AI model that read the project's README and public documentation pages. Each feature links to the documentation it came from; stars, license and language come straight from the GitHub API. The model does not read the source code, and the analysis is refreshed when the project is re-analysed. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Frequently asked questions

What does google/highway do?

Highway is a portable C++ library and hardware abstraction layer designed for writing single instruction multiple data (SIMD) code. It provides a unified interface that maps data-parallel logic to various CPU instruction sets, enabling the development of high-performance software that runs across different processor architectures without requiring architecture-specific assembly.

What are the main features of google/highway?

The main features of google/highway are: Hardware Dispatchers, Hardware Abstraction Layers, SIMD-Based Data Parallelism, Cross-Architecture Performance Strategies, Instruction Set Targeting, Runtime Instruction Dispatchers, SIMD Abstraction Layers, SIMD Libraries.

What are some open-source alternatives to google/highway?

Open-source alternatives to google/highway include: c3lang/c3c — c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static… ispc/ispc — ISPC is a vectorizing compiler and SIMD parallel programming language that implements a single program multiple data… dendibakh/perf-ninja — perf-ninja is a collection of educational resources and curricula focused on CPU architecture, memory hierarchies,… openmathlib/openblas — OpenBLAS is a high-performance implementation of the Basic Linear Algebra Subprograms standard designed for numerical… vosen/zluda — ZLUDA is a middleware and translation engine designed to enable the execution of unmodified proprietary compute… crystal-lang/crystal — Crystal is a statically typed, compiled programming language designed for high performance and memory safety. It…

Open-source alternatives to Highway

Similar open-source projects, ranked by how many features they share with Highway.
  • c3lang/c3cc3lang avatar

    c3lang/c3c

    5,147View on GitHub↗

    c3c is the compiler for the C3 programming language, transforming source code into executable binaries, static libraries, or dynamic libraries using an LLVM backend. It implements a system based on result-based error handling, scoped memory pooling, and a semantic macro system. The compiler provides first-class support for hardware-backed SIMD vectors that map directly to processor instructions and enables runtime polymorphism through interface-based dynamic dispatch. The project covers a broad set of low-level capabilities, including manual and pooled memory management, inline assembly inte

    C3c3compilerlanguage
    View on GitHub↗5,147
  • ispc/ispcispc avatar

    ispc/ispc

    2,843View on GitHub↗

    ISPC is a vectorizing compiler and SIMD parallel programming language that implements a single program multiple data model. It serves as a toolchain for translating C-based code with parallel extensions into optimized machine code for various CPU and GPU architectures using an LLVM backend. The compiler is designed for cross-platform SIMD toolchain support, generating specialized instruction sets for x86 SSE/AVX, ARM NEON, and Intel GPU from a single source. It features a runtime dispatch mechanism that selects the most efficient hardware-specific implementation for the current system during

    C++compilerintelispc
    View on GitHub↗2,843
  • dendibakh/perf-ninjadendibakh avatar

    dendibakh/perf-ninja

    3,754View on GitHub↗

    perf-ninja is a collection of educational resources and curricula focused on CPU architecture, memory hierarchies, SIMD programming, and low-level performance engineering. It provides instructional material and practical labs for identifying and fixing CPU bottlenecks, such as cache misses and branch mispredictions. The project differentiates itself through specialized training in hardware-level optimizations, including the use of compiler intrinsics for SIMD vectorization and the implementation of branchless predicate execution to eliminate pipeline stalls. It also covers advanced binary-lev

    C++
    View on GitHub↗3,754
  • openmathlib/openblasOpenMathLib avatar

    OpenMathLib/OpenBLAS

    7,470View on GitHub↗

    OpenBLAS is a high-performance implementation of the Basic Linear Algebra Subprograms standard designed for numerical computing and matrix operations. It serves as a hardware-accelerated numerical library and optimized math kernel library, providing a computational engine for large-scale matrix multiplication and vector operations. The library distinguishes itself through the use of hand-tuned assembly kernels and SIMD instruction mapping, such as AVX and SVE, to maximize floating-point performance on specific CPU architectures. It features a multi-threaded framework that manages parallel exe

    Cblaslapacklapacke
    View on GitHub↗7,470
See all 30 alternatives to Highway→