13 个仓库
Aligns data structures and access patterns to hardware cache lines to prevent performance degradation from frequent main memory fetches.
Distinct from Memory Access Profilers: Distinct from Memory Access Profilers: focuses on active data alignment and access pattern optimization rather than passive profiling.
Explore 13 awesome GitHub repositories matching software engineering & architecture · Cache-Aware Memory Access. Refine with filters or upvote what's useful.
simdjson is a high-performance JSON parser that utilizes SIMD instructions to process gigabytes of data per second. It functions as a SIMD JSON parser, a multithreaded NDJSON processing library, a UTF-8 validation engine, and a tool for JSON minification and string building. The project focuses on high-throughput data processing, enabling the ingestion of massive JSON volumes and the verification of UTF-8 encoding standards. It includes dedicated capabilities for constructing JSON strings with optimized memory usage and removing unnecessary whitespace from documents to reduce file size. The
Allocates extra space at the end of buffers to allow wide SIMD loads without memory access violations.
The Disruptor is a lock-free inter-thread messaging library and high-performance event bus. It implements a concurrent ring buffer designed for high-concurrency and low-latency message sequencing. The project utilizes a specific messaging architecture to eliminate lock contention, enabling high-throughput event routing and the exchange of continuous event streams between threads. It ensures strict first-in-first-out ordering and immediate data visibility across processing threads. The library provides capabilities for lock-free data streaming, sequential data ordering, and sequence-based eve
Implements cache-line padding to eliminate false sharing and maximize CPU cache efficiency.
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
Aligns data structures and access patterns to hardware cache lines to prevent performance degradation from frequent main memory fetches.
This project is a collection of educational resources and technical guides focused on Go performance optimization. It provides instruction on improving execution speed and reducing memory usage through code and architectural refinements. The guides cover advanced strategies for low-level programming, including the use of assembly for SIMD instructions and unsafe pointers for direct memory manipulation. It also details concurrency optimization techniques such as lock sharding and cache-line padding to reduce contention and improve hardware utilization. The material encompasses broad capabilit
Implements cache-line padding to prevent false sharing and reduce CPU cache coherence traffic.
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
Optimizes memory throughput by structuring data access patterns to fit within the CPU cache lines for faster retrieval.
DeepEP is a distributed model accelerator and expert-parallel communication library designed to optimize the training and inference of large-scale neural networks. It provides specialized GPU communication kernels and a remote GPU memory interface to facilitate high-throughput data exchange between hardware nodes. The system utilizes dynamic kernel generation to compile optimized GPU kernels during execution, removing the need for separate installation compilation steps. It implements virtual-lane traffic isolation to prevent interference between different data streams and employs routing met
Utilizes low-level memory primitives to coordinate distributed parallelism and optimize hardware resource usage.
该项目是一个分布式唯一 ID 生成器,旨在跨多个节点生成 64 位全局唯一且可排序的标识符。它实现了一个兼容 Snowflake 的算法,通过将时间戳、工作节点标识符和序列号组合成一个整数来防止冲突。 该系统包括一个工作节点 ID 编排器,用于在实例启动和迁移期间使用基于数据库的策略分配和维护唯一的机器身份。为了提高请求吞吐量并减少延迟,它利用了一个环形缓冲区缓存层,该层预生成标识符并采用基于阈值的补充机制。 该软件提供了管理分布式数据库键、协调系统节点以及配置位分布以平衡并发需求与系统寿命的功能。它还包括用于将生成的标识符解析回其原始组件的工具。
Employs cache-line padding between buffer elements to eliminate false sharing and increase hardware throughput.
这是一个 Argon2 内存硬(memory-hard)函数的加密实现,用作密码哈希库和密钥派生函数。它将密码和盐值转换为安全哈希,并生成旨在抵御高速硬件破解攻击的加密密钥。 该库利用内存硬设计,需要大量 RAM 以防止通过 GPU 或 ASIC 进行加速。它结合了数据无关的内存访问以阻断侧信道计时攻击,并支持集成密钥或加盐(peppers)以防止针对受损盐值的暴力破解攻击。 其他功能包括用于存储和传输的密码哈希编码、将哈希绑定到特定上下文数据的能力,以及在使用后立即清除敏感缓冲区的安全内存管理。
Employs data-independent memory access patterns to block side-channel timing attacks.
This project is a technical curriculum and set of educational resources focused on parallel programming, high-performance computing, and systems programming. It provides a structured course covering the implementation of parallel algorithms and multithreading techniques for processing large datasets. The project includes a systems programming guide for modern language features, a framework for lock-free concurrency patterns, and a manual for optimizing CPU and GPU performance through assembly analysis and cache management. The material covers hardware performance tuning, the implementation o
Provides techniques for aligning data structures and access patterns to maximize CPU cache hits.
该项目是一个技术参考和内部分析笔记集合,专注于 Go 语言运行时和编译器。它提供了语言内部结构的详细分解,涵盖内存管理、垃圾回收以及调度器的执行模型。 该材料通过提供对底层系统细节的深入研究而脱颖而出,包括 Go 汇编指令、寄存器使用和系统调用接口的参考。它专门分析了并发原语的内部实现,例如 goroutine 调度机制、通道操作和互斥锁实现。 其覆盖范围扩展到编译器构建理论,包括词法和语法分析,以及类型系统和接口管理的机制。它还详细介绍了各种性能优化技术、用于堆栈跟踪的运行时诊断工具以及网络 I/O 原语。
Details the use of padding bytes to prevent CPU cache coherence traffic caused by false sharing.
JCTools is a Java concurrency library providing a collection of lock-less and wait-free data structures. It serves as a toolkit for managing thread-safe data exchange, specifically designed to optimize high-throughput messaging and producer-consumer patterns in multi-threaded applications. The library distinguishes itself by implementing specialized queue structures that minimize contention and maximize throughput. By utilizing techniques such as cache-line padding, memory-barrier-based synchronization, and relaxed-consistency memory ordering, it avoids the performance bottlenecks often assoc
Aligns data structures to CPU cache lines to prevent false sharing and performance degradation in concurrent environments.
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
Teaches how to align data structures to cache line boundaries and implement loop tiling to minimize cache misses.
Liboqs is a C library that provides a unified interface for quantum-resistant cryptographic algorithms, including key encapsulation and digital signature mechanisms. It is designed to facilitate the integration of post-quantum security into existing protocols and applications, ensuring data protection against future threats from large-scale quantum computers. The library distinguishes itself through a focus on high-assurance implementations and side-channel resistance, utilizing constant-time primitives to prevent timing-based information leakage. It offers extensive build-time configuration,
Implements constant-time memory access patterns to prevent timing-based side-channel information leakage.