BatchSolverConfig

class cubie.batchsolving.BatchSolverConfig.BatchSolverConfig(precision: type[float16] | type[float32] | type[float64] | dtype[float16] | dtype[float32] | dtype[float64], loop_fn: Callable | None = None, compile_flags: OutputCompileFlags | None = NOTHING, max_registers: int | None = None, coefficients_shape: Tuple = (0, 0, 0), kernel_name: str | None = None, cache: CacheSettings | bool | str | Path | None = NOTHING, blocksize: int | None = None, auto_performance: bool = True, *, jit_flags: JITFlags = NOTHING, unroll: UnrollFlags = NOTHING)[source]

Bases: CUDAFactoryConfig

Compile-critical settings for the batch solver kernel.

precision

NumPy floating-point data type used for host and device arrays.

Type:

type[numpy.float16] | type[numpy.float32] | type[numpy.float64] | numpy.dtype[numpy.float16] | numpy.dtype[numpy.float32] | numpy.dtype[numpy.float64]

loop_fn

CUDA device loop function generated by SingleIntegratorRun.

Type:

Callable | None

compile_flags

Boolean compile-time controls for output features.

Type:

cubie.outputhandling.output_config.OutputCompileFlags | None

max_registers

Per-thread register cap passed to cuda.jit. None leaves allocation to ptxas (currently 255 for large systems, limiting occupancy to one block per SM); capping trades spill traffic for more resident warps.

Type:

int | None

coefficients_shape

Driver-coefficient layout (num_segments, num_drivers, order + 1) baked into the compiled driver evaluators as closure constants. The Solver keeps it aligned with ArrayInterpolator.coefficients_shape; input sizing and device-array validation check supplied coefficient arrays against it. The zero default marks kernels never given driver metadata (sizing floors it to a unit placeholder).

Type:

Tuple[int, int, int]

kernel_name

Name of the compiled kernel function, shown in profiler and disassembly output. None derives {algorithm}_{system name}; the LTO state is appended as _ltoon/_ltooff either way.

Type:

str | None

cache

CacheSettings; accepts the cache shorthand and loose cache_* keys through update.

Type:

cubie.batchsolving.BatchSolverConfig.CacheSettings

blocksize

Threads per block; None = the kernel picks under auto_performance, else DEFAULT_BLOCKSIZE.

Type:

int | None

auto_performance

Pick the launch’s block size and residency.

Type:

bool

property active_outputs: ActiveOutputs

Derive ActiveOutputs from compile_flags.

auto_performance: bool
blocksize: int | None
cache: CacheSettings
coefficients_shape: Tuple[int, int, int]
compile_flags: OutputCompileFlags | None
kernel_name: str | None
loop_fn: Callable | None
max_registers: int | None