Skip to content

record(LTX25-DECODE-SPEED): three scalar single-threaded loops in the LTX CPU path, and the number ltx2_video.cpp said was owed - #1214

Open
localai-bot wants to merge 1 commit into
mainfrom
record/ltx25-scalar-cpu-path
Open

record(LTX25-DECODE-SPEED): three scalar single-threaded loops in the LTX CPU path, and the number ltx2_video.cpp said was owed#1214
localai-bot wants to merge 1 commit into
mainfrom
record/ltx25-scalar-cpu-path

Conversation

@localai-bot

Copy link
Copy Markdown
Collaborator

record(LTX25-DECODE-SPEED): three scalar single-threaded loops in the LTX CPU path, and the number ltx2_video.cpp said was owed

Three defects found while attempting the first full-model LTX-2.5 render are
filed and now have an owner. None is fixed here; this change is the record.

They are one story. The LTX prep path hand-rolls scalar arithmetic where the
rest of the tree routes through the vt:: GEMM seam, and it does so in three
places that all sit between Load and the first denoise step:

#1210 supplies a number the tree explicitly asked for. ltx2_video.cpp:2849
records the two-rebind cost as "UNMEASURED on real weights" and says a later
perf row owns it. This is that measurement.

The owner is ltx25-decode-speed.md, whose §5 already frames "why the decode
is single-threaded and on the host". These extend that finding from the decode
to the load and prep path, so they belong to its ## Owed table rather than to
a new row.

Scope is deliberately narrow. The rates are measured over a 10.4-minute window
and extrapolated; no full-model pass has completed, so no end-to-end figure is
claimed. What is measured is stated as measured and what is projected is
labelled.

test_cpu_x86_llamacpp_floor fails in the local preflight with exit 4
(NO_QUIET_WINDOW) instead of 2 at loadavg 68.9-79.9, which is #618 exactly.
This diff touches two files under .agents/ and cannot reach a CPU benchmark
harness. check-agent-record.py, check-public-doc-tables.py, doc-checkpoint
and now-current all pass.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [claude-code]

… LTX CPU path, and the number ltx2_video.cpp said was owed

Three defects found while attempting the first full-model LTX-2.5 render are
filed and now have an owner. None is fixed here; this change is the record.

They are one story. The LTX prep path hand-rolls scalar arithmetic where the
rest of the tree routes through the `vt::` GEMM seam, and it does so in three
places that all sit between `Load` and the first denoise step:

- #1202 `Ltx2FuseLoraIntoTensor` computes the LoRA product with a triple
  scalar loop at a measured ~0.53 GFLOP/s, one thread of twenty.
- #1208 the text tower's `Linear` is scalar, single-threaded and accumulates
  in `double`, which also diverges from the `F.linear` it cites as reference.
- #1210 the two-stage rebind fuses at load, un-fuses for phase 0 and re-fuses
  for phase 1, so the load-time pass is provably wasted.

#1210 supplies a number the tree explicitly asked for. `ltx2_video.cpp:2849`
records the two-rebind cost as "UNMEASURED on real weights" and says a later
perf row owns it. This is that measurement.

The owner is `ltx25-decode-speed.md`, whose §5 already frames "why the decode
is single-threaded and on the host". These extend that finding from the decode
to the load and prep path, so they belong to its `## Owed` table rather than to
a new row.

Scope is deliberately narrow. The rates are measured over a 10.4-minute window
and extrapolated; no full-model pass has completed, so no end-to-end figure is
claimed. What is measured is stated as measured and what is projected is
labelled.

`test_cpu_x86_llamacpp_floor` fails in the local preflight with exit 4
(`NO_QUIET_WINDOW`) instead of 2 at loadavg 68.9-79.9, which is #618 exactly.
This diff touches two files under `.agents/` and cannot reach a CPU benchmark
harness. `check-agent-record.py`, `check-public-doc-tables.py`, doc-checkpoint
and now-current all pass.

FOLLOWING_AGENTS_PROTOCOL

Following-Agents-Protocol: true
AI-Assisted: true
Assisted-by: AGENT:claude-opus-5 [claude-code]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants