Docs / nablatensor-core / com.nablatensor.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.

Most backends extend one of the two bases below this rather than this class itself: HostAadExecutable for a CPU replay and GpuAadExecutable for an accelerator.

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()