• Andrey Filippov's avatar
    CLAUDE: item-4 R1a - async full-frame combined-render chain (render_dp), bit-exact, 4.30 ms/scene · d2e03950
    Andrey Filippov authored
    The detection-input render as ONE device chain on a LOW-PRIORITY non-blocking
    stream, pipelined one scene behind the pose service (Andrey's ruling 07/19:
    pose keeps its own 1/60 slot; depth-2 pipeline, +1 frame detection latency).
    
    Native (tp_lma.h/.cu): RenderDp descriptor (kin of PoseMeasureChain) +
    render_dp CDP parent mirroring pose_measure_dp minus correlation:
    [pose_task_update full-frame @ fitted pose] -> tiles_offsets x2 ->
    erase(NaN, task list) -> convert_direct x2 (MB pair) -> index_consolidate ->
    oob -> 16-sensor average -> imclt of td_avg as a single-entry cam 0.
    R0 levers baked in: rot-derivs snapshotted per sequence (cv is static camera
    calibration - geometry-once), contiguous render CLT block doubles as
    consolidate td_sens (no 84 MB gather), cam0-only imclt.
    
    Host (tp_jna.cpp): render-private resources (task slots, cv/rot snapshot,
    pose vector, CLT block, active scratch, consolidate scratch, rbg, pinned
    staging); entries tp_proc_render_setup/_template/_set_tasks/_scene(NON-
    blocking enqueue + event)/_status/_get(test-only D2H per ruling 3.4);
    render_reuse_guard: staged-upload/conditioning writes to a ring set wait on
    an in-flight render reading that set (depth-2 ring safety).
    
    Case render_pipe (test_render_pipe_jna): async chain BIT-EXACT vs the
    blocking production entries (tol 0, NaN==NaN), stable under concurrent
    pose-slot geometry+convert on the default stream, pose-slot task oracle
    untouched. Sanitizer (12.8; the 12.6 on PATH lacks sm_120) 0 errors.
    run_cases.sh ALL PASS incl. pose_corr @tol 0. Bench (perfctl measure):
    4.298 ms/scene mean (min 4.242) vs R0's 5.80 blocking.
    libtileproc.so REBUILT in place.
    Co-Authored-By: 's avatarClaude Fable 5 <noreply@anthropic.com>
    d2e03950
tp_lma.cu 75.1 KB