Skip to main content

Crate flash_map

Crate flash_map 

Source
Expand description

FlashMap — GPU-native concurrent hash map.

Bulk-only API designed for maximum GPU throughput:

  • bulk_get: parallel key lookup
  • bulk_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. Robin Hood hashing with probe distance early exit.

§Features

  • cuda — GPU backend via CUDA (requires NVIDIA GPU + CUDA toolkit)
  • rayon — multi-threaded CPU backend (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§

FlashMap
GPU-native concurrent hash map with bulk-only operations.
FlashMapBuilder
Builder for configuring a FlashMap.

Enums§

FlashMapError
HashStrategy
Hash strategy for key distribution.

Traits§

Pod
Marker trait for “plain old data”.

Derive Macros§

Pod
Derive the Pod trait for a struct