Commit 0259ecad authored by Andrey Filippov's avatar Andrey Filippov

CODEX: Profile preloaded pose bottlenecks

Co-authored-by: 's avatarCodex <codex@elphel.com>
parent 00e707f3
......@@ -116,6 +116,7 @@ public class CuasRtParameters {
}
public void dialogQuestions(GenericJTabbedDialogMcp gd) {
gd.addMessage("=== CUAS RT flow selection ==="); // By Codex on 07/15/2026: stable visual locator for run instructions
gd.addCheckbox ("CUAS realtime enable", this.en,
"Enable testing of the realtime CUAS detection.");
gd.addCheckbox ("CUAS RT photometric calibration", this.calib, // By Claude on 07/03/2026
......@@ -124,6 +125,8 @@ public class CuasRtParameters {
"Isolation test inside the en branch: build QuadCLT instances (borrowed calibration), then print per-sensor average spread (CuasMotion.perSensorAveragesFromTD) instead of normal RT detection. Well-calibrated -> the 16 sensor averages match (spread ~0).");
gd.addCheckbox ("CUAS RT pose test", this.pose_test, // By Claude on 07/03/2026
"RT pose-adjustment prototype (phase A): re-generate per-scene 3-angle poses against the virtual-center reference (ascending, prediction-seeded) instead of RT detection. Writes -POSE-RT-TEST.csv and a fitted-vs-stored summary.");
gd.addMessage("=== Pose RT tile selection and input ==="); // By Codex on 07/15/2026
gd.addNumericField("Pose test reliable strength", this.pose_str, 5,7,"", // By Claude on 07/03/2026
"Tile selection for the pose test: combo-DSI strength threshold (1.0 gives ~ the old getReliableTiles population).");
gd.addNumericField("Pose test outlier gate k (NMAD)", this.pose_dxy_k, 5,7,"", // By Claude on 07/04/2026
......@@ -138,6 +141,8 @@ public class CuasRtParameters {
"OFF = maximum-throughput run. ON = release all inputs at 60 Hz without skipping and report bounded-queue, latency and deadline statistics. Applies only when the all-scene preload succeeds.");
gd.addCheckbox ("Pose test lean correlation (B)", this.pose_lean, // By Claude on 07/05/2026
"Phase B measurement: TD-average the 16 sensors, then ONE conj-multiply vs the virtual-center TD -> FZ-normalize -> PD -> argmax+eigen -> 3-angle LMA. v1 has NO motion-blur compensation (compare vs the NOMB baseline).");
gd.addMessage("=== Pose RT debug modes and saved products ==="); // By Codex on 07/15/2026
gd.addCheckbox ("Pose test ALL tiles (ignore calibration)", this.pose_full, // By Claude on 07/04/2026
"DEBUG: use all strength-selected tiles (~1074); the tile-selection calibration is neither read nor written.");
gd.addCheckbox ("Pose test save 2D correlations", this.pose_corr_save, // By Claude on 07/04/2026
......@@ -146,6 +151,8 @@ public class CuasRtParameters {
"DEBUG: save the rendered composite (TD-averaged, grid-transformed) scenes correlated against the virtual center (-POSE-RT-COMPOSITE, z=scenes) + the center reference render (-POSE-RT-CENTER-REF). Lean engine only.");
gd.addCheckbox ("Pose test stored poses (no LMA)", this.pose_stored, // By Claude on 07/04/2026
"DEBUG: measure/render every scene at its STORED pose, skip the LMA entirely - decouples the task/render/correlation chain from the solver. Lean engine only.");
gd.addMessage("=== Pose RT LMA, peak and motion-blur controls ==="); // By Codex on 07/15/2026
gd.addCheckbox ("Pose lean uniform MB vector (v2)", this.pose_mb_uniform, // By Claude on 07/12/2026
"Lean v2 (CUAS): ONE motion-blur vector per scene shared by all tiles - constant-rpm flow is uniform up to the (small) roll component; wobble is second-degree. Same Jacobian-times-rates as the per-tile oracle, evaluated at the frame center. OFF = legacy per-tile getMotionBlur (A/B).");
gd.addNumericField("Pose lean fixed LMA cycles", this.pose_cycles, 0,7,"", // By Claude on 07/12/2026
......@@ -160,6 +167,8 @@ public class CuasRtParameters {
"Fraction of the MCLT window-autocorr envelope divided out of the correlation before peak extraction (argmax under-reports offsets by ~0.75-0.9x through the envelope). 0 = off (default, bit-identical); 1 = full divide. Enabling needs its own A/B run.");
gd.addNumericField("Pose lean inner-LMA debug level", this.pose_lma_debug, 0,3,"", // By Claude on 07/12/2026
"0 = quiet (also hides the per-scene 'CuasPoseRT cycles:' trace; >=1 shows it); 2 = one line per INNER LMA step (good/done flags, full/pure RMS, lambda); 3-4 = deeper solver dumps. VERBOSE at >=2 - for short investigation runs.");
gd.addMessage("=== RT render diagnostics ==="); // By Codex on 07/15/2026
gd.addCheckbox ("CUAS RT render (full product)", this.rend_test, // By Claude on 07/05/2026
"Full RT-chain render: raw jp4 -> conditioning -> virtual-grid render at borrowed stored poses/ERS; saves -CUAS-RT-RENDER [s00..s15+merged][scenes], comparable to the -CUAS-*-DBG oracle products. NON-exclusive: runs AFTER the pose stage when both are ON.");
gd.addCheckbox ("RT render LoG A/B (folded kernels)", this.log_test, // By Claude on 07/06/2026
......@@ -167,6 +176,7 @@ public class CuasRtParameters {
gd.addCheckbox ("RT render LoG isolation (identity krnl)", this.log_ident, // By Claude on 07/06/2026
"With the RT render ON: render with IDENTITY kernels (-ID, aberrations skipped), apply the pixel LoG (-ID-LOG-ORACLE), then render with PURE-LoG kernels (-LOG-ONLY). Isolates the LoG fold mechanism from the aberration-kernel content: persistent -LOG-ONLY vs -ID-LOG-ORACLE residual = the fold is wrong; collapse to the wrap floor = kernel interaction. Two extra render passes.");
gd.addMessage("=== CUDA/kernel and oracle diagnostics ==="); // By Codex on 07/15/2026
gd.addChoice ("GPU kernel test (one per run)", KERNEL_TESTS, validKernelTest(), // By Claude on 07/12/2026
"EXCLUSIVE diagnostic: run the selected CUDA kernel's CPU oracle on live GPU data and export a self-describing testdata case (<model>/testdata/<kernel>) for the standalone tile_processor_gpu test (NSight-debuggable, tests_bin/test_<kernel> --data <case> --tol 0). One kernel per Java run; also imports/compares the C++ results/ when present from a previous run. 'none' = normal operation.");
gd.addCheckbox ("Show selected convolution kernel", this.show_kernels,
......@@ -174,6 +184,8 @@ public class CuasRtParameters {
gd.addCheckbox ("Save oracle DBG renders (11GB)", this.dbg_fpixels, // By Claude on 07/05/2026
"Save -CUAS-INDIVIDUAL-CUAS-DBG (an EXTRA per-sensor render pass, ~11GB) and -CUAS-MERGED-CUAS-DBG during ingest. Turn OFF to save render time and disk once -CUAS-RT-RENDER (RT render test) is the trusted full render.");
gd.addMessage("=== RT correlation and borrowed-center levels ==="); // By Codex on 07/15/2026
gd.addNumericField("RT fat zero INTER (pose/motion)", this.fz_inter, 1,9,"", // By Claude on 07/05/2026
"RT-decoupled fat zero for INTERscene (pose/motion) correlations - the legacy gpu_fatz*/AUX parameters are not used by RT. For a single physical-pair amplitude; FZ ~ amplitude^2.");
gd.addNumericField("RT fat zero INTRA (ranging)", this.fz_intra, 1,9,"", // By Claude on 07/05/2026
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment