awesome-repositories.com
Blog
awesome-repositories.com

Entdecke die besten Open-Source-Repositories mit KI-gestützter Suche.

EntdeckenKuratierte SuchenOpen-Source-AlternativenSelf-hosted SoftwareBlogSitemap
ProjektÜber unsRanking-MethodikPresseMCP-Server
RechtlichesDatenschutzAGB
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
google avatar

google/highway

0
View on GitHub↗
5,644 Stars·445 Forks·C++·5 Aufrufe

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-Verlauf

Star-Verlauf für google/highwayStar-Verlauf für google/highway

KI-Suche

Entdecke weitere awesome Repositories

Beschreibe in einfachen Worten, was du brauchst — die KI bewertet tausende kuratierte Open-Source-Projekte nach Relevanz.

Start searching with AI

Häufig gestellte Fragen

Was macht google/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.

Was sind die Hauptfunktionen von google/highway?

Die Hauptfunktionen von google/highway sind: Hardware Dispatchers, Hardware Abstraction Layers, SIMD-Based Data Parallelism, Cross-Architecture Performance Strategies, Instruction Set Targeting, Runtime Instruction Dispatchers, SIMD Abstraction Layers, SIMD Libraries.

Welche Open-Source-Alternativen gibt es zu google/highway?

Open-Source-Alternativen zu google/highway sind unter anderem: 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-Alternativen zu Highway

Ähnliche Open-Source-Projekte, sortiert nach der Anzahl der gemeinsamen Funktionen mit Highway.
  • c3lang/c3cAvatar von c3lang

    c3lang/c3c

    5,147Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗5,147
  • ispc/ispcAvatar von ispc

    ispc/ispc

    2,843Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗2,843
  • dendibakh/perf-ninjaAvatar von dendibakh

    dendibakh/perf-ninja

    3,754Auf GitHub ansehen↗

    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++
    Auf GitHub ansehen↗3,754
  • openmathlib/openblasAvatar von OpenMathLib

    OpenMathLib/OpenBLAS

    7,470Auf GitHub ansehen↗

    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
    Auf GitHub ansehen↗7,470
  • Alle 30 Alternativen zu Highway anzeigen→