Softanza
StartFrançais
Softanza
Reference · Visual & spatial

GPU

6 functions in 3 classes, grouped by what they do, each with the explanation the library gives of itself.

The story of this area, for a general reader: what a crafter does with it, an example run and its rated lanes, is on its Platform page.

The functions, by what they do

Finding

  • FirstError one rung: warm-min per-query ms through the REAL seam, both routes Measured 2026-09-09 on this laptop's RTX 3050: after ~10 s idle, every submit pays a fixed ~2 ms and the copy floor reads 13 GB/s instead of 85 -- and hundreds of tiny queries never lift it, while ~150 ms of heavy work does. Wake() is that work, ADAPTIVE: it copies until a copy runs at full speed, settles, and stops -- the budget is a cap. Every timing this face takes calls it first; a caller measuring on its own should too. Returns the copies it took (an awake device answers in ~20). THE CAUSE AND THE SYMPTOM. A shader that fails validation raises two errors: the parser's, with the offending name and line, and then the pipeline's, which only says the module is invalid. FirstError() is the parser's; LastError() is whatever came last. A compile clears both first. in stzGpu

Converting

  • ToWGSL Transpile (engine-side) and cache. Pure text work: needs NO device, so kernels can be authored and inspected on GPU-less machines. Raises with the engine's refusal message on a bad description. in stzKernelMaker

Walking and applying

  • Run One-shot convenience: upload the bound vectors, run the kernel, read the result back, free everything temporary. Data in, DATA out. in stzGpu
  • ApplyOnQ Multi-input kernels over ALREADY-RESIDENT buffers: no transfer at all. paBindings binds vector names to stzGpuBuffer objects (plus scalars): oG.ApplyOnQ(k, [ :A = oBuf1, :B = oBuf2, :alpha = 2 ]) in stzGpu
  • ApplyQ Run a ONE-INPUT kernel over this buffer; the result is a NEW resident buffer (this one is untouched). No transfer happens -- that is the point. in stzGpuBuffer
  • ApplyWithQ Same, with the kernel's scalar values: [ :alpha = 2.5, ... ] in stzGpuBuffer

The explanations are the ones the library gives of itself, read from its documentation comments on 2026-10-01 04:14, from the library at commit 0e72e2e2c, by the library's own stzSelfDoc over 635 class sources.

The classes of this area

Narrations about this area

No narration is attached to this area yet.