Docs / nablatensor-engine-vulkan / com.nablatensor.engine.vulkan
final class
VulkanAadKernel
A recorded tape compiled into a Vulkan compute pipeline and replayed one scenario per invocation.
Recording and SPIR-V compilation happen once, in compile; after that a replay costs one (or, for very large batches, a handful of) vkCmdDispatch submissions plus a small per-workgroup read-back, no matter how many scenarios it covers. Inputs are storage-buffer contents rather than baked-in constants, so setInput re-prices a shifted market with no re-record and no re-compile, and replayMany prices a whole ladder of markets from one dispatch.
Methods
RADV on a shared-memory APU has no display-driver watchdog as aggressive as NVIDIA's TDR, but the kernel DRM scheduler still has a hang check in the seconds range, so a dispatch is kept about an order of magnitude below it.
Prices every input set in inputSets (each in inputNames() order) over the same paths and seed in one dispatch. Each path's draws are generated once and shared across the sets in registers, so a revaluation ladder pays for its random numbers once rather than once per market — the GPU's form of a draw cache, with nothing written to memory. Results are bit-identical to inputSets.length separate replay calls. A variant of the pipeline is compiled for each distinct set count on first use; register pressure grows with the count, so a handful of markets per call is the sweet spot for long tapes.