6 repositorios
Optimizes memory access patterns through layout annotations, cache swizzling, and pipelining for compute kernels.
Distinct from Tiled Memory Access Patterns: Distinct from Tiled Memory Access Patterns: focuses on applying optimizations (swizzling, pipelining) to access patterns, not just describing the patterns.
Explore 6 awesome GitHub repositories matching software engineering & architecture · Memory Access Pattern Optimizers. 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
Uses high-bandwidth memory and on-chip buffers to reduce movement latency and minimize external memory access for large parameters.
This project is a comprehensive educational resource and programming course covering C++ language semantics and features from C++03 through C++26. It provides structured tutorials and technical guides focused on modern C++ development. The material offers specialized instruction on template metaprogramming, including the use of type traits and compile-time computations. It features detailed guides on concurrency and parallelism for multi-core execution, as well as a reference for software design applying SOLID principles and RAII. Additionally, it covers build performance optimization to redu
Covers optimization of memory access patterns to maximize CPU cache efficiency and minimize latency.
XiangShan is a high-performance RISC-V processor core and a hardware description language framework. It provides a construction-based system for designing, simulating, and verifying complex processor micro-architectures and peripheral devices. The project includes a high-performance CPU simulator used for architectural exploration and functional verification of processor execution. The project implements a superscalar out-of-order CPU architecture that uses renaming and reorder buffers to execute instructions in parallel. It generates synthesizable Verilog files from hardware descriptions to
Enhances memory access speed through the implementation of multi-port banked data arrays.
Flashlight es una biblioteca de aprendizaje automático y de tensores independiente en C++ utilizada para construir y entrenar redes neuronales. Funciona como un framework integral de redes neuronales y motor de diferenciación automática, proporcionando las herramientas para construir grafos de computación y calcular gradientes mediante retropropagación. El proyecto sirve como framework de entrenamiento distribuido, utilizando operaciones all-reduce para sincronizar gradientes y parámetros a través de múltiples nodos de cómputo y dispositivos. Se distingue por una integración profunda de manipulación de tensores de alto rendimiento, interoperabilidad nativa de memoria de dispositivo y un sistema para sincronizar pesos a través de trabajadores distribuidos para acelerar el entrenamiento de modelos a gran escala. El framework cubre una amplia gama de capacidades de aprendizaje profundo, incluyendo composición modular de capas para diseñar arquitecturas complejas como bloques residuales y celdas recurrentes. Proporciona utilidades extensas de gestión de datos para ingesta y prefetching, junto con sistemas de serialización para persistir estados de modelos. Además, incluye una suite de herramientas de monitorización y observabilidad para rastrear métricas de entrenamiento y medir errores de secuencia. La biblioteca está implementada en C++.
Reduces memory allocations and improves performance by fusing multiple function calls into a single kernel call.
TileLang is a Python-embedded domain-specific language compiler that JIT-compiles and autotunes GPU kernels. It uses a tile-based DSL, automatic software pipelining, and parallel autotuning to generate optimized GPU kernels at runtime. It supports tensor core operations with Pythonic syntax, automatic memory management, and thread mapping. The compiler searches over tile sizes, thread counts, and scheduling policies, compiling and benchmarking candidates in parallel to find the fastest kernel. It also caches compiled binaries and tuning results to disk for reuse across sessions. TileLang inc
Optimizes memory access patterns using layout annotations, swizzling, and pipelining for GPU kernels.
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 techniques for rearranging loop iterations to ensure contiguous memory traversal and improve cache efficiency.