-
Andrey Filippov authored
pose_lma_dp_step<<<1,1>>> tail-launches all six resident-step stages (cudaStreamTailLaunch, CDP2) with zero host round trips; the only new device work is pose_lma_dp_candidate_vector (replaces two host cudaMemcpyAsync). NVRTC-only (#ifdef __CUDACC_RTC__): the production module's --extensible-whole-program + libcudadevrt link is exactly the CDP2 requirement; direct nvcc test builds never see device-side launches. Feasibility verdict (the spike's deliverable): CDP2 JIT+link+run WORKS in the production NVRTC module on CC 12.0 - no flag changes needed. test_pose_lma_dp_jna: two TpProc instances from one module driven to the identical pre-step resident state (the step mutates state on accept, so one-instance host-then-DP would compare different starting states); host prepared-resident path vs DP chain memcmp-equal on packed[0..24] for accept (device set flip exercised under DP), reject, and post-flip reject; multi-block child grid (300 tiles -> 2 blocks) + 3-partial reduce. Wall/step always-reject microbench: host 132 us, DP 118 us (1.12x; the real win is removing 6 JNA launch/sync round trips per step in production). Gates: test_pose_lma_dp_jna PASS bit-identical; regressions PASS: pose_lma_resident, pose_fx_jacobian, lma_products, pose_lma_step (all NVRTC), pose_corr captured-data @tol 0. Production notes for the DP milestone: the DP entry reuses the resident gpu_pose_lma_vector (anchor) - the per-cycle vector update after accept must move device-side (from result[16..18]) before multi-step DP chains. Co-Authored-By:Claude Fable 5 <noreply@anthropic.com>
978c5193
| Name |
Last commit
|
Last update |
|---|---|---|
| eclipse_setup | ||
| jna | ||
| src | ||
| .gitignore | ||
| LICENSE | ||
| README.md | ||
| cases.list.tmpl | ||
| run_cases.sh |