• Andrey Filippov's avatar
    CLAUDE: T2 - in-loop 16-bit feeder replaces the 9.7 GiB float preload · 21fe0c02
    Andrey Filippov authored
    Real per-scene file I/O inside the measured loop (the honest RT test, and the
    production shape: 4 reader threads = the 4xSATA-2 device groups of 4
    consecutive sensors). New CuasSceneFeeder parses the single-strip 16-bit TIFF
    layout ONCE from file #1 (strip@557, 656640 B, big-endian, telemetry row 0 -
    verified constant over the whole segment and bit-exact vs the production
    ImagejJp4Tiff reader), then preads raw strip bytes straight into the native
    pinned u16 staging (PosixIo/libc - the kernel's read IS the pinned write,
    half the pinned-write bytes of the float path). The GPU converts (byte-swap)
    + applies the borrowed per-scene Row/Col (prior scales snapshotted at
    creation, exact double chain) + two-map conditions in ONE kernel
    (condition_lwir_u16, native 84d7ab6) - bit-identical to the preload path by
    the u16_cond case, so the Done-line byte-identity gate carries over.
    
    Cold-read honesty: posix_fadvise(DONTNEED) after every file - reruns never
    replay the page cache (the production RAM-based dual-port SATA feeder always
    serves NEW frames). Cold bench: 4 threads 4.4/5.4/7.3 ms/scene p50/p95/max -
    hidden under the ~12 ms DP entry via the D5 overlap, which now awaits the
    in-flight read (kicked one scene ahead at collect-safe points, keeping the
    one-scene staging slack contract).
    
    Arrival moderation (Andrey 07/18): in paced (pose_pace) mode the feeder is
    armed with the same 60 Hz epoch grid - the DATA, not just the loop, arrives
    at 60 Hz; the overlap then fires only when the next read already landed
    (never parks inside the DP window), i.e. exactly when running behind.
    
    New saved checkbox curt.pose_feed16 (default ON) selects the feeder; OFF =
    the legacy float preload (A/B). CPU-oracle fallback (heap reads + the exact
    preload float chain) covers cond_gpu OFF and any native failure. Stage0
    42/42; mvn package PASS.
    Co-authored-by: 's avatarClaude Fable 5 <claude-fable-5@anthropic.com>
    21fe0c02
CuasRT.java 32.2 KB