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

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
google avatar

google/highway

0
View on GitHub↗
5,644 estrellas·445 forks·C++·8 vistas

Highway

Highway es una biblioteca de C++ portátil y capa de abstracción de hardware diseñada para escribir código SIMD (Single Instruction, Multiple Data). Proporciona una interfaz unificada que mapea la lógica de datos paralelos a varios conjuntos de instrucciones de CPU, permitiendo el desarrollo de software de alto rendimiento que se ejecuta en diferentes arquitecturas de procesador sin requerir ensamblador específico de la arquitectura.

El proyecto cuenta con un despachador de instrucciones dinámico que selecciona el conjunto de instrucciones de CPU más eficiente en tiempo de ejecución basado en el hardware detectado. También admite la especialización de destino estática y mecanismos extensibles para añadir nuevos destinos de hardware u operaciones SIMD personalizadas.

La biblioteca cubre una amplia gama de operaciones vectoriales, incluyendo aritmética elemento a elemento, reducción de carriles (lane reduction), barajado (shuffling) y ejecución condicional enmascarada. Incluye una biblioteca matemática vectorizada, un gestor de memoria para asignación alineada y operaciones de carga-almacenamiento enmascaradas, y primitivas para criptografía acelerada por hardware.

Se proporcionan herramientas para la compilación y validación automatizada de instrucciones aceleradas por hardware en múltiples arquitecturas de procesador.

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.

Historial de estrellas

Gráfico del historial de estrellas de google/highwayGráfico del historial de estrellas de google/highway

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Preguntas frecuentes

¿Qué hace google/highway?

Highway es una biblioteca de C++ portátil y capa de abstracción de hardware diseñada para escribir código SIMD (Single Instruction, Multiple Data). Proporciona una interfaz unificada que mapea la lógica de datos paralelos a varios conjuntos de instrucciones de CPU, permitiendo el desarrollo de software de alto rendimiento que se ejecuta en diferentes arquitecturas de procesador sin requerir ensamblador específico de la arquitectura.

¿Cuáles son las características principales de google/highway?

Las características principales de google/highway son: Hardware Dispatchers, Hardware Abstraction Layers, SIMD-Based Data Parallelism, Cross-Architecture Performance Strategies, Instruction Set Targeting, Runtime Instruction Dispatchers, SIMD Abstraction Layers, SIMD Libraries.

¿Qué alternativas de código abierto existen para google/highway?

Las alternativas de código abierto para google/highway incluyen: 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…

Alternativas open-source a Highway

Proyectos open-source similares, clasificados según cuántas características comparten con Highway.
  • c3lang/c3cAvatar de c3lang

    c3lang/c3c

    5,147Ver en 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
    Ver en GitHub↗5,147
  • ispc/ispcAvatar de ispc

    ispc/ispc

    2,843Ver en 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
    Ver en GitHub↗2,843
  • dendibakh/perf-ninjaAvatar de dendibakh

    dendibakh/perf-ninja

    3,754Ver en 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++
    Ver en GitHub↗3,754
  • openmathlib/openblasAvatar de OpenMathLib

    OpenMathLib/OpenBLAS

    7,470Ver en 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
    Ver en GitHub↗7,470
Ver las 30 alternativas a Highway→