Feat: Add dummy PSF chunk diagnostics

Reuse production catalog mapping and per-worker chunk boundaries to report triangle and spatial distributions without initializing HIP or writing image outputs. Include a protected full-catalog runner and build documentation.
This commit is contained in:
wyj committed 2026-09-11 23:27:42 -04:00
1 parent 776f9b7247
commit d02ecb2181
8 files changed
+658 -7

No files matched your search

+23
View File
@@ -104,6 +104,29 @@ times must not be added to GPU timings or interpreted as process CPU time.
The two upload slots bound staging memory and allow CPU production ahead of GPU
completion; copies and kernels still execute in order on one stream.
### Diagnostic dummy PSF backend
To inspect production chunk geometry without starting HIP or allocating an HDR
framebuffer, build the diagnostic-only dummy backend:
```sh
make -j1 PSF_BACKEND=dummy SPACETIME=schwarzschild ENABLE_HDR=1 backend
OMP_NUM_THREADS=16 OMP_DYNAMIC=FALSE \
./build/Release/schwarzschild_sky_dummy --lens-map-input MAP.grlens \
--all-sky-catalog CATALOG_DIR --output PROTECTED_OR_UNUSED.png [normal PSF options]
```
The dummy executable requires an imported lens map and the PSF cache; it rejects
`--psf-direct`. It runs the real OpenMP triangle scheduling, catalog query,
inverse mapping, redshift/color/flux preparation, and cache/direct/min-Y
classification, but records chunk statistics instead of accumulating pixels.
`--output` and `--hdr-output` are accepted only for command parity: neither PNG
nor FITS is created or modified. Reports separate full 16,384-event chunks from
the final partial chunk of each worker and include event-producing triangle
counts, occupied 32-pixel center tiles, bounding-box diagonals, and successive
triangle-centroid jumps. This is a scheduling diagnostic, not a rendering or
backend-performance benchmark.
With both Minkowski binaries built using `ENABLE_HDR=1`,
`python3 tests/test_hip_renderer.py build/Release/minkowski_sky build/Release/minkowski_sky_hip`
runs small CPU/HIP fallback and min-Y comparisons sequentially. Each renderer