How to Manage High-Bandwidth Memory Automatically
summary
Implements a concurrent hash table that keeps each bucket as a multiword block and tries a single cache-line read via a sequence-number check, falling back to a thread-local allocated copy with a versioned pointer so updates linearize on a CAS. Demonstrated on 10M entries with 4-word blocks: sequence locks match fast sequential throughput but collapse under oversubscription, while the indirection+version design gives lock-free under oversubscription scaling with only modest allocation overhead; a wait-free variant needs doubling memory.
AI-written summary · about
chapters (10)
- 0:00Introduction
- 1:10Concurrent hash table library
- 6:56Concurrent hash table challenges
- 11:58Sequential hash table performance
- 16:40Sharding and locks problems
- 25:52Atomic multi-word operations goals
- 33:42Protocol implementation
- 40:14Hash table performance
- 43:11Key conclusions
- 45:45Q&A
related talks
52mNonblocking algorithms/ CAS/Atomics
13mMemPool Flavors: Between Versatility and Specialization in a RISC-V Manycore Cluster
41mUsing Microarchitectural Design to Break KASLR and More
01h 05mMegahertz, Gigahertz, Registers and Instructions: How does a CPU actually work?
10mOmniXtend: Open Coherent Memory Fabric for RISC-V
14mStrategies for CXL’s success in a world of proprietary Coherent...
19mHow NOT To Program an Out-of-order Vector Processor
01h 04mThe challenge of managing parallelism and data-movement for tensor computations on GPUs
