Rustler NIF bindings for the Vulkan compute backend.
All functions in this module are NIF stubs that fail with
:nif_not_loaded if the native library wasn't compiled. They get
replaced at module-load time by the real Rust implementations.
Don't call these directly from application code — use Nx.Vulkan
or the Nx.Vulkan.Backend module instead. This module exists
only to give Rustler a place to bind into.
Summary
Functions
Phase 2 W5 — read the device's pipelineCacheUUID as a 16-byte binary.
Batched download of 4 GPU tensors in a single submit/wait round-trip.
Generic K-step leapfrog chain for synthesized shaders.
Phase 2 W5 — load on-disk pipeline cache blob into the spirit context.
Phase 2 W5 — atomically write spirit's current pipeline cache to disk.
H3 dispatch timing — read {count, dispatch_ns, submit_ns, wait_ns, record_ns}.
H3 dispatch timing — reset accumulators.
Upload a binary into an existing GPU buffer (no alloc).
Batched upload of 2 binaries into 2 existing GPU buffers in one round-trip.
Functions
Phase 2 W5 — read the device's pipelineCacheUUID as a 16-byte binary.
Batched download of 4 GPU tensors in a single submit/wait round-trip.
Generic K-step leapfrog chain for synthesized shaders.
push is a raw binary assembled by the Elixir-side codegen (max 128 bytes).
Returns {:ok, {q_chain, p_chain, grad_chain, logp_chain}}.
Phase 2 W5 — load on-disk pipeline cache blob into the spirit context.
Phase 2 W5 — atomically write spirit's current pipeline cache to disk.
H3 dispatch timing — read {count, dispatch_ns, submit_ns, wait_ns, record_ns}.
H3 dispatch timing — reset accumulators.
Upload a binary into an existing GPU buffer (no alloc).
Batched upload of 2 binaries into 2 existing GPU buffers in one round-trip.