pub struct AdaptiveTraversalPlanCacheKey {
pub layout_hash: u64,
pub node_count: u32,
pub edge_count: u32,
pub words: u32,
pub queue_capacity: u32,
pub allow_mask: u32,
pub dense_threshold_pct: u32,
pub device_features: u64,
pub kind: AdaptiveTraversalProgramKind,
}Expand description
Stable cache key for resident adaptive traversal Programs.
The key deliberately includes program layout identity, frontier width, queue capacity, traversal masks, threshold policy, and backend feature bits so a cached Program cannot be reused across incompatible CUDA/WGSL/SPIR-V shapes. Resident graph contents are represented by dispatch handles, not shader source, so same-shape resident graphs reuse compiled Programs.
Fields§
§layout_hash: u64Shape-only hash of the resident Program layout.
node_count: u32Number of graph nodes.
edge_count: u32Number of logical CSR edges.
words: u32Number of u32 words in one frontier bitset.
queue_capacity: u32Active-source queue capacity for sparse-queue Programs.
allow_mask: u32Allowed edge-kind mask baked into traversal Programs.
dense_threshold_pct: u32Dense cutover threshold baked into sparse/dense Programs.
device_features: u64Backend feature fingerprint from the dispatcher.
kind: AdaptiveTraversalProgramKindResident Program shape represented by this key.
Implementations§
Source§impl AdaptiveTraversalPlanCacheKey
impl AdaptiveTraversalPlanCacheKey
Sourcepub const fn new(
layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
queue_capacity: u32,
allow_mask: u32,
dense_threshold_pct: u32,
device_features: u64,
kind: AdaptiveTraversalProgramKind,
) -> Self
pub const fn new( layout_hash: u64, node_count: u32, edge_count: u32, words: u32, queue_capacity: u32, allow_mask: u32, dense_threshold_pct: u32, device_features: u64, kind: AdaptiveTraversalProgramKind, ) -> Self
Construct a cache key for a resident adaptive traversal Program.
Sourcepub const fn popcount(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
device_features: u64,
) -> Self
pub const fn popcount( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, device_features: u64, ) -> Self
Cache key for the frontier popcount Program.
Sourcepub const fn clear_frontier_out(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
device_features: u64,
) -> Self
pub const fn clear_frontier_out( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, device_features: u64, ) -> Self
Cache key for clearing the output frontier.
Sourcepub const fn sparse_dense(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
allow_mask: u32,
dense_threshold_pct: u32,
device_features: u64,
) -> Self
pub const fn sparse_dense( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, allow_mask: u32, dense_threshold_pct: u32, device_features: u64, ) -> Self
Cache key for device-selected sparse/dense traversal.
Sourcepub const fn queue_len_init(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
queue_capacity: u32,
device_features: u64,
) -> Self
pub const fn queue_len_init( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, queue_capacity: u32, device_features: u64, ) -> Self
Cache key for the active-queue length initialization Program.
Sourcepub const fn frontier_to_queue(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
queue_capacity: u32,
device_features: u64,
) -> Self
pub const fn frontier_to_queue( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, queue_capacity: u32, device_features: u64, ) -> Self
Cache key for frontier-to-active-queue compaction.
Sourcepub const fn frontier_word_counts(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
device_features: u64,
) -> Self
pub const fn frontier_word_counts( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, device_features: u64, ) -> Self
Cache key for packed-frontier word-count scan.
Sourcepub const fn frontier_word_block_offsets(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
device_features: u64,
) -> Self
pub const fn frontier_word_block_offsets( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, device_features: u64, ) -> Self
Cache key for packed-frontier block-offset scan.
Sourcepub const fn frontier_word_prefix_queue(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
queue_capacity: u32,
device_features: u64,
) -> Self
pub const fn frontier_word_prefix_queue( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, queue_capacity: u32, device_features: u64, ) -> Self
Cache key for deterministic packed-frontier queue scatter.
Sourcepub const fn frontier_word_block_offsets_queue(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
queue_capacity: u32,
device_features: u64,
) -> Self
pub const fn frontier_word_block_offsets_queue( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, queue_capacity: u32, device_features: u64, ) -> Self
Cache key for deterministic packed-frontier queue scatter with block offsets.
Sourcepub const fn queue_forward(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
queue_capacity: u32,
allow_mask: u32,
device_features: u64,
) -> Self
pub const fn queue_forward( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, queue_capacity: u32, allow_mask: u32, device_features: u64, ) -> Self
Cache key for queue-driven CSR traversal.
Sourcepub const fn queue_forward_strided(
_layout_hash: u64,
node_count: u32,
edge_count: u32,
words: u32,
queue_capacity: u32,
allow_mask: u32,
device_features: u64,
) -> Self
pub const fn queue_forward_strided( _layout_hash: u64, node_count: u32, edge_count: u32, words: u32, queue_capacity: u32, allow_mask: u32, device_features: u64, ) -> Self
Cache key for row-strided queue-driven CSR traversal.
Trait Implementations§
Source§impl Clone for AdaptiveTraversalPlanCacheKey
impl Clone for AdaptiveTraversalPlanCacheKey
Source§fn clone(&self) -> AdaptiveTraversalPlanCacheKey
fn clone(&self) -> AdaptiveTraversalPlanCacheKey
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for AdaptiveTraversalPlanCacheKey
impl Eq for AdaptiveTraversalPlanCacheKey
Source§impl Hash for AdaptiveTraversalPlanCacheKey
impl Hash for AdaptiveTraversalPlanCacheKey
impl StructuralPartialEq for AdaptiveTraversalPlanCacheKey
Auto Trait Implementations§
impl Freeze for AdaptiveTraversalPlanCacheKey
impl RefUnwindSafe for AdaptiveTraversalPlanCacheKey
impl Send for AdaptiveTraversalPlanCacheKey
impl Sync for AdaptiveTraversalPlanCacheKey
impl Unpin for AdaptiveTraversalPlanCacheKey
impl UnsafeUnpin for AdaptiveTraversalPlanCacheKey
impl UnwindSafe for AdaptiveTraversalPlanCacheKey
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.