Skip to main content

//clika-runtime/io.clika.modelverse/BenchRow

BenchRow

[common]
data class BenchRow(val isl: Long, val osl: Long, val lateIsl: Long, val concurrency: Int, val status: BenchRowStatus, val reason: String, val notes: String, val firstCallMs: Double, val ttftMs: Double, val lateTtftMs: Double, val prefillTokS: Double, val prefillChunkMsP50: Double, val prefillChunkMsMax: Double, val itlP50Ms: Double, val itlP99Ms: Double, val itlMaxMs: Double, val decodeTokS: Double, val speedupVsC1: Double, val batchingEfficiency: Double, val effectiveIsl: Long, val admittedTok: Long, val retires: Long, val peakActiveBytes: Long, val numAllocs: Long, val numInflightParkWaits: Long, val acceptedPredictionTokens: Long, val rejectedPredictionTokens: Long, val speculativeSteps: Long, val cells: Map<String, Any?>)

One row of a bench report, typed: one (cell, concurrency) of the sweep. status says what the row is; the metrics of a row that is not BenchRowStatus.OK are zeros, never measurements, and reason says why in the library's words. The times are milliseconds, the rates tokens per second. cells carries every column of the row as the table holds it, by the names of BenchColumns: a Long for an integer column, a Double for a float one, a String for a text one, null for an empty cell; a column a later library adds is there before it has a typed field. The rows are read off BenchReport.table once, so a row outlives the report's close.

Constructors​

BenchRow[common]
constructor(isl: Long, osl: Long, lateIsl: Long, concurrency: Int, status: BenchRowStatus, reason: String, notes: String, firstCallMs: Double, ttftMs: Double, lateTtftMs: Double, prefillTokS: Double, prefillChunkMsP50: Double, prefillChunkMsMax: Double, itlP50Ms: Double, itlP99Ms: Double, itlMaxMs: Double, decodeTokS: Double, speedupVsC1: Double, batchingEfficiency: Double, effectiveIsl: Long, admittedTok: Long, retires: Long, peakActiveBytes: Long, numAllocs: Long, numInflightParkWaits: Long, acceptedPredictionTokens: Long, rejectedPredictionTokens: Long, speculativeSteps: Long, cells: Map<String, Any?>)

Properties​

NameSummary
acceptedPredictionTokens[common]
val acceptedPredictionTokens: Long
The prompt-lookup tally over the row's measured iterations; 0 with BenchOptions.promptLookupNumTokens 0.
admittedTok[common]
val admittedTok: Long
The row's paged prefix-cache traffic: tokens admitted from the cache, and histories retired into it; 0 on a continuous-mode row.
batchingEfficiency[common]
val batchingEfficiency: Double
speedupVsC1 over concurrency; 1 is linear batching.
cells[common]
val cells: Map<String, Any?>
concurrency[common]
val concurrency: Int
The sessions decoding at once.
decodeTokS[common]
val decodeTokS: Double
Aggregate generation rate over the token-generation window.
effectiveIsl[common]
val effectiveIsl: Long
The prompt tokens the prefill actually ingested; equals isl on a text-only row.
firstCallMs[common]
val firstCallMs: Double
The row's first full pass at its shape, after the global warm-up: what the first request at that shape costs; 0 with warmup 0.
isl[common]
val isl: Long
The cell's prompt tokens.
itlMaxMs[common]
val itlMaxMs: Double
The longest decode-only gap a session saw.
itlP50Ms[common]
val itlP50Ms: Double
Inter-token latency over decode-only gaps.
itlP99Ms[common]
val itlP99Ms: Double
lateIsl[common]
val lateIsl: Long
The late prompt's tokens (BenchCell.lateIsl); 0 on a row without one.
lateTtftMs[common]
val lateTtftMs: Double
The late prompt's own time to first token; 0 on a row without one.
notes[common]
val notes: String
What an OK row measured beyond its numbers (its prompt protocol, the device's execution law); empty when there is nothing to state.
numAllocs[common]
val numAllocs: Long
numInflightParkWaits[common]
val numInflightParkWaits: Long
osl[common]
val osl: Long
The cell's decoded tokens.
peakActiveBytes[common]
val peakActiveBytes: Long
The model device's pool: its active high-water mark after the row (bytes), the row's allocations, and the allocations that waited for an in-flight chunk.
prefillChunkMsMax[common]
val prefillChunkMsMax: Double
prefillChunkMsP50[common]
val prefillChunkMsP50: Double
Chunked-prefill boundary walls; 0 on a row that never chunked.
prefillTokS[common]
val prefillTokS: Double
Prompt ingest rate: a session's isl over its enqueue-to-first-token window, averaged.
reason[common]
val reason: String
Why a row is not a measurement; empty on an OK row.
rejectedPredictionTokens[common]
val rejectedPredictionTokens: Long
retires[common]
val retires: Long
speculativeSteps[common]
val speculativeSteps: Long
speedupVsC1[common]
val speedupVsC1: Double
Against the same cell at concurrency 1 (1 is that row; above 1 is faster).
status[common]
val status: BenchRowStatus
ttftMs[common]
val ttftMs: Double
Time to first token, from a session's enqueue to its first token, averaged over the sessions.