Expand description
FlashMap — GPU-native concurrent hash map.
Bulk-only API designed for maximum GPU throughput:
bulk_get: parallel key lookupbulk_insert: parallel key-value insertion (updates existing keys)bulk_remove: parallel key removal (tombstone-based)
SoA (Struct of Arrays) memory layout on GPU for coalesced access. Linear probing with identity hash (zero compute for pre-hashed keys).
§Features
cuda— GPU backend via CUDA (requires NVIDIA GPU + CUDA toolkit)cpu-fallback— CPU backend for development/testing (default)
§Example
use flash_map::{FlashMap, HashStrategy};
let mut map: FlashMap<[u8; 32], [u8; 128]> =
FlashMap::with_capacity(1_000_000).unwrap();
// Insert 1M key-value pairs in one GPU kernel launch
let pairs: Vec<([u8; 32], [u8; 128])> = generate_pairs();
map.bulk_insert(&pairs).unwrap();
// Lookup
let keys: Vec<[u8; 32]> = pairs.iter().map(|(k, _)| *k).collect();
let results: Vec<Option<[u8; 128]>> = map.bulk_get(&keys).unwrap();Structs§
- Flash
Map - GPU-native concurrent hash map with bulk-only operations.
- Flash
MapBuilder - Builder for configuring a
FlashMap.
Enums§
- Flash
MapError - Hash
Strategy - Hash strategy for key distribution.
Traits§
- Pod
- Marker trait for “plain old data”.
Derive Macros§
- Pod
- Derive the
Podtrait for a struct