diff options
| author | eunhhu <[email protected]> | 2026-10-05 22:53:09 +0100 |
|---|---|---|
| committer | eunhhu <[email protected]> | 2026-10-05 22:53:09 +0100 |
| commit | 10a50dd20abe8542d6ed6487d2c46d964af59c75 (patch) | |
| tree | 863b2026aee2ffa84a2edbd2fb3ec3ad3010703a /core/module.h | |
| parent | af43fa227f71c16eb806191d4928cf03166ff76c (diff) | |
| download | pure-10a50dd20abe8542d6ed6487d2c46d964af59c75.tar.gz pure-10a50dd20abe8542d6ed6487d2c46d964af59c75.zip | |
Batch executor stage 1 (024): a count's loop whose block has batch forms (lane forms, locals set before read in every round, ifs, numbers set in items) runs, in the executor, up to 1024 rounds at a time: values uniform, affine or lanes (numbers, or whole numbers in four bytes), branches as masks, cells read by affine rows as strided columns, sets kept to the batch's end and made only when no round reads an earlier round's; a fault, a form it lacks or such a read gives the rounds back to the executor one by one, work counted as written. Planned at load (PURE_BATCH=0: none); the executor of a module without such loops is the same code (run aligned to 64: as many instructions and cycles), with one its own copy. knapsack with PURE_JIT=0: 1,056 to 13.7 ms. module_tier compares batches with the executor alone and makes loops of rounds apart; BATCH_SOURCE: widened columns, -0, a fault mid-batch, rounds reading the last's sets
Diffstat (limited to 'core/module.h')
| -rw-r--r-- | core/module.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/core/module.h b/core/module.h index 9b425b2..4f9e4a3 100644 --- a/core/module.h +++ b/core/module.h @@ -257,6 +257,7 @@ typedef struct { bool state_indexed[PURE_MODULE_STATES]; /* list: an index state refers to it (set at load) */ uint8_t *height; /* the operand stack's height at each instruction, from its block's start (the verifier's) */ struct PureJit *jit; /* its blocks compiled (module-jit.c, docs/design/021), or NULL */ + bool batches; /* a loop of it is planned to run in batches (module-batch.c, docs/design/024) */ PureInputShape input[PURE_MODULE_INPUTS]; PureField field[PURE_MODULE_FIELDS]; PureValue initial[PURE_MODULE_STATES]; |
