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.
यह प्रोजेक्ट कई नोड्स में 64-बिट विश्व स्तर पर अद्वितीय और सॉर्ट करने योग्य आइडेंटिफ़ायर्स उत्पन्न करने के लिए डिज़ाइन किया गया एक डिस्ट्रीब्यूटेड यूनिक ID जनरेटर है। यह एक स्नोफ्लेक-संगत एल्गोरिदम को लागू करता है जो टाइमस्टैम्प, वर्कर आइडेंटिफ़ायर्स, और अनुक्रम संख्याओं को एक एकल पूर्णांक में जोड़कर टकराव को रोकता है। सिस्टम में डेटाबेस-बेस्ड रणनीतियों का उपयोग करके इंस्टेंस स्टार्टअप और माइग्रेशन के दौरान अद्वितीय मशीन पहचान आवंटित करने और बनाए रखने के लिए एक वर्कर ID ऑर्केस्ट्रेटर शामिल है। अनुरोध थ्रूपुट बढ़ाने और लेटेंसी कम करने के लिए, यह एक रिंग-बफ़र कैशिंग लेयर का उपयोग करता है जो आइडेंटिफ़ायर्स को पहले से उत्पन्न करता है और थ्रेशोल्ड-बेस्ड रिफ़िल तंत्र को नियोजित करता है। सॉफ़्टवेयर डिस्ट्रीब्यूटेड डेटाबेस कीज़ को मैनेज करने, सिस्टम नोड्स को समन्वयित करने, और सिस्टम जीवनकाल के खिलाफ समवर्ती आवश्यकताओं को संतुलित करने के लिए बिट वितरण को कॉन्फ़िगर करने के लिए क्षमताएं प्रदान करता है। इसमें उत्पन्न आइडेंटिफ़ायर्स को उनके मूल कंपोनेंट्स में वापस पार्स करने के लिए यूटिलिटीज़ भी शामिल हैं।
Employs cache-line padding between buffer elements to eliminate false sharing and increase hardware throughput.
This is a cryptographic implementation of the Argon2 memory-hard function, serving as a password hashing library and key derivation function. It transforms passwords and salts into secure hashes and generates cryptographic keys designed to resist high-speed hardware cracking attacks. The library utilizes a memory-hard design that requires significant RAM to prevent acceleration via GPUs or ASICs. It incorporates data-independent memory access to block side-channel timing attacks and supports the integration of secret keys or peppers to protect against brute-force attacks on compromised salts.
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 असेंबली निर्देशों, रजिस्टर उपयोग और सिस्टम कॉल इंटरफेसिंग के लिए एक संदर्भ सहित निम्न-स्तरीय सिस्टम विवरणों में गहराई से जाकर खुद को अलग करती है। यह विशेष रूप से कॉनकरेंसी प्रिमिटिव्स के आंतरिक कार्यान्वयन का विश्लेषण करती है, जैसे कि गोरूटीन शेड्यूलिंग मैकेनिज्म, चैनल ऑपरेशन्स और म्यूटेक्स लॉक कार्यान्वयन। कवरेज कंपाइलर निर्माण सिद्धांत तक फैली हुई है, जिसमें लेक्सिकल और सिंटैक्टिक विश्लेषण, साथ ही टाइप सिस्टम और इंटरफेस मैनेजमेंट के मैकेनिक्स शामिल हैं। यह विभिन्न परफॉरमेंस ऑप्टिमाइज़ेशन तकनीकों, स्टैक ट्रेसिंग के लिए रनटाइम डायग्नोस्टिक यूटिलिटीज और नेटवर्क 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.