Skip to main content

Module provider

Module provider 

Source
Expand description

CUDA kernel provider implementation

This module provides the CudaKernelProvider which manages pre-compiled PTX kernels for GPU execution of relational operations (join, dedup, groupby).

Modules§

arith_kernels
Kernel function names in the arithmetic module
cache_kernels
Kernel function names in the cache module
circuit_kernels
Kernel function names in the circuit module
cnf_kernels
Kernel function names in the GPU CNF encoder module.
d4_kernels
Kernel function names in the GPU Decision-DNNF compiler module (CNF validation + circuit levelization).
dedup_kernels
Kernel function names in the dedup module
epistemic_kernels
Kernel function names in the epistemic module.
filter_kernels
Kernel function names in the filter module
groupby_kernels
Kernel function names in the groupby module
ilp_credit_kernels
Kernel function names in the ILP credit module.
ilp_exact_kernels
Kernel function names in the native bounded exact-induction module.
ilp_kernels
Kernel function names in the ILP module.
join_kernels
Kernel function names in the join module
kernel_paths
mc_eval_kernels
Kernel function names in the Monte Carlo evaluation module
mc_resident_kernels
Kernel function names in the GPU-resident Datalog/MC engine module.
mc_sample_kernels
Kernel function names in the Monte Carlo sampling module
neural_kernels
Kernel function names in the neural fast-path module.
pack_kernels
Kernel function names in the pack module (GPU-side key packing)
pir_kernels
Kernel function names in the PIR interning module.
sat_kernels
Kernel function names in the SAT module
scan_kernels
Kernel function names in the scan module
set_ops_kernels
Kernel function names in the set_ops module
sort_kernels
Kernel function names in the sort module
wcoj_kernels
Kernel function names in the GPU WCOJ module.
weights_kernels
Kernel function names in the weights module.

Structs§

CudaKernelProvider
CUDA kernel provider for xlog GPU operations
FjDeltaCols
Column roles for one factorized delta step. The delta atom binds (carry, key); the stable relation binds (carry, value) in head column orderr_carry/r_value therefore double as the output placement (the novel buffer is built in full_r’s schema). The static side is always consumed key-first (layout-normalized by the caller), so it needs no indices here.
FjNode
One plan node: iterate the cover subatom (bulk EXPAND over the whole frontier), then refine every probe subatom (PROBE + compaction). Probe variables must already be bound.
FjPlan
A host-side Free Join plan over inputs (design §3). Callers hand-build the plan today; planner construction from binary joins (binary2fj) is a downstream integration surface.
FjSubAtom
One subatom: an atom (input_idx) restricted to the variables its next var_positions.len() physical columns bind/probe. Across the whole plan, each atom’s subatoms consume its columns in order and must partition them exactly (design §3).
HashTableU64
Bucketed hash table for u64 hashes.
HostLaunchMetadataTransferStats
HostTransferStats
JoinIndexV2
Cached build-side join index for v2 hash join.
PtxLoadProfile
Per-module PTX load timing (populated only when XLOG_WARMUP_PROFILE=1).
RadixSortScratch
Scratch buffers for stable radix sorting of u32 key/value pairs.

Enums§

CompareOp
Comparison operators for filtering
JoinType
Join types for hash_join_v2

Constants§

ARITH_MODULE
CACHE_MODULE
CIRCUIT_MODULE
CNF_MODULE
D4_MODULE
DEDUP_MODULE
DEFAULT_JOIN_MAX_OUTPUT
Default maximum output size for join operations. This prevents memory overflow when joining large tables with high cardinality matches.
EPISTEMIC_MODULE
FILTER_MODULE
FJ_DELTA_MAX_DOMAIN
Dense-domain bound for the spike bitmap (domain²/8 bytes = 512 MB at the bound; gate fixtures use domain ≤ 2^13).
GROUPBY_MODULE
ILP_CREDIT_MODULE
ILP_EXACT_MODULE
ILP_MODULE
JOIN_MODULE
Module names for loaded PTX modules
MC_EVAL_MODULE
MC_RESIDENT_MODULE
MC_SAMPLE_MODULE
NESTED_LOOP_TOTAL_THRESHOLD
Nested-loop join eligibility threshold (Cartesian product upper bound). The dispatcher routes to nested-loop iff num_left * num_right <= NESTED_LOOP_TOTAL_THRESHOLD; the provider validates the same invariant fail-closed before any allocation.
NEURAL_MODULE
PACK_MODULE
PIR_MODULE
SAT_MODULE
SCAN_MODULE
SET_OPS_MODULE
SORT_MODULE
WCOJ_MODULE
WEIGHTS_MODULE