8 repositorios
Executes multiple data operations in a single instruction cycle to maximize throughput for high-bandwidth multimedia processing tasks.
Distinct from SIMD-Accelerated Arithmetic: Distinct from SIMD-Accelerated Arithmetic: focuses on the broader application of SIMD for data parallelism in multimedia rather than just arithmetic operations.
Explore 8 awesome GitHub repositories matching data & databases · SIMD-Based Data Parallelism. Refine with filters or upvote what's useful.
AISystem is a comprehensive AI full-stack infrastructure project covering the entire pipeline from AI chip architecture to high-level training frameworks. It encompasses the development of AI compiler frameworks, inference engines, and distributed training orchestrators designed to coordinate workloads across a heterogeneous compute stack of CPUs, GPUs, and NPUs. The project focuses on the deep integration of software and hardware, employing software-hardware co-design to align tensor layouts with physical memory structures. It provides specialized capabilities for accelerating Transformer mo
Applies a single instruction across multiple data elements simultaneously to accelerate vector operations.
This project serves as an educational resource for learning and implementing low-level assembly language optimizations. It provides a structured guide for developers to master hardware-specific instructions and manual performance tuning, focusing on the translation of high-level code into efficient machine-level operations for resource-constrained environments. The materials emphasize techniques for maximizing computational throughput in multimedia processing. By covering instruction-level parallelism, register management, and data parallelism, the project enables the development of software
Executes multiple data operations in a single instruction cycle to maximize throughput for high-bandwidth multimedia processing tasks.
xxHash is a high-performance, non-cryptographic hash library designed for rapid checksum generation and data integrity verification. It functions as an incremental hashing engine, allowing for the processing of large or streaming data inputs by maintaining a persistent internal state across sequential chunks. The library is engineered as a computational framework that maximizes throughput by utilizing wide CPU registers and branchless instruction pipelining. It achieves high-speed performance by aligning data access with CPU cache lines and employing multi-stage mixing functions that ensure c
Processes data in parallel using wide CPU registers to maximize throughput during large memory block hashing operations.
BLAKE3 es una implementación de alto rendimiento del algoritmo de hash criptográfico BLAKE3 utilizado para calcular resúmenes y huellas digitales de datos seguros. Funciona como una herramienta de hash criptográfico en paralelo que distribuye cargas de trabajo a través de múltiples hilos de procesador para procesar grandes conjuntos de datos rápidamente. El proyecto proporciona herramientas especializadas para el hashing con clave y la generación de códigos de autenticación de mensajes. También incluye funcionalidad para la derivación de claves criptográficas, permitiendo la creación de sub-claves secretas únicas a partir de una clave maestra y cadenas de contexto. La implementación admite la verificación de integridad de datos mediante el cálculo de hash en paralelo y la transmisión de datos verificada. Estas capacidades se proporcionan como una librería multilingüe para entornos Rust y C, e incluyen una interfaz de línea de comandos para calcular resúmenes de archivos o entrada estándar.
Maximizes CPU throughput by processing multiple data blocks simultaneously using SIMD lanes.
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.
Provides a portable interface to write data-parallel code that maps to hardware-accelerated SIMD instructions.
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
Executes parallel arithmetic and logical operations on hardware-backed vectors to maximize computational throughput.
Rack es un emulador de sintetizador modular Eurorack virtual y un SDK de síntesis modular. Proporciona un entorno digital para crear y enrutar señales de música electrónica utilizando módulos, osciladores y filtros virtuales, simulando el comportamiento del hardware analógico mediante el enrutamiento de señales basado en voltaje. El sistema funciona como un convertidor MIDI y CV, traduciendo señales entre software y hardware externo, y puede operar como un plugin VST o instrumento estándar de la industria dentro de estaciones de trabajo de audio digital (DAW). También actúa como un host de plugins VST, incrustando instrumentos y efectos virtuales externos para expandir las herramientas de procesamiento de sonido disponibles. La plataforma incluye una amplia gama de capacidades de procesamiento de audio, incluyendo síntesis de modelado físico, procesamiento espectral y efectos basados en tiempo. Proporciona herramientas para la generación de voltaje de control, secuenciación de notas y procesamiento de señales polifónicas, junto con un kit de desarrollo para construir módulos de audio personalizados con generación de interfaz basada en SVG. Una interfaz de línea de comandos está disponible para el lanzamiento de aplicaciones, arranque de proyectos y automatización de la producción de archivos fuente a partir de gráficos vectoriales.
Utilizes SIMD vector instructions to process multiple audio channels in parallel for CPU efficiency.
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
Provides guidance on replacing scalar operations with hardware-specific vector instructions to process multiple data elements simultaneously.