Docs / jax4j-core / com.nablatensor.jax4j.engine
abstract class
AbstractAadExecutable
Chunking, calibration and rate tracking shared by every engine, on top of a single abstract dispatch.
The reason chunking is in the base rather than in the CUDA engine alone is that no backend benefits from one unbounded dispatch: a GPU that also drives a display will have the driver kill an overlong kernel, and a CPU engine that runs for minutes without returning cannot report progress or be interrupted.
Public only so the backend modules can extend it; not part of the supported API. Implement AadEngine / AadExecutable directly instead.
Constructors
protected AbstractAadExecutable(AadTape tape, AadOptions options)
Fields
protected final AadTape tape
protected final AadOptions options
protected final double[] inputs
Methods
protected double defaultMaxChunkSeconds()
Engines that must bound dispatch length more tightly override this.
AadTape tape()
double compileSeconds()
double maxChunkSeconds()
void setMaxChunkSeconds(double seconds)
void setInput(String name, double value)
protected void checkOpen()
AadResult replaySafe(long totalPaths, long seed)
double calibrate(long seed)
double measuredPathsPerSecond()
void close()