Test: Add adaptive HIP tile replay selection
Add a bounded per-chunk center-tile selector to the real-event replay prototype and retain the paired timing, mixed-boundary, CPU, HIP, and sandbox-failure evidence.
This commit is contained in:
1 parent
11e703e33d
commit
776f9b7247
31 files changed
+347
-11
No files matched your search
@@ -13,6 +13,54 @@ RX 9070 上,65,536 个真实银心视场事件的累积回放中位数从 104.
|
||||
一个通用生产默认算法;后续集成应先考虑分布选择及生产流式 producer 的端到端对照。
|
||||
没有运行完整全天渲染,也没有推断新的全天加速比。
|
||||
|
||||
## 2026-09-11 自适应选择后续实验
|
||||
|
||||
在提交 `11e703e33dffb1ff168ba11dd922e68b448116b9` 之上增加了仅用于回放的
|
||||
`adaptive` 模式,production sink 仍未改变。选择器逐个 16,384-event chunk 扫描
|
||||
32×32 中心 tile 占用;chunk 至少有 8,192 events、且平均每个占用中心 tile 至少
|
||||
32 events 时选择 tile16,否则选择现有 atomic。该阈值是基于本页固定输入提出的实验
|
||||
假设,不是跨场景或跨设备参数。
|
||||
|
||||
选择扫描不构建 support 引用,四个样本的中位成本为 0.037--0.455 ms。tile 路径使用
|
||||
独立的有界 event device buffer,不复用 production 双 staging slot,因此同一 stream 内
|
||||
可以按 chunk 混合 atomic/tile;mixed fixture 实际覆盖 2 个 tile chunk、1 个 atomic chunk
|
||||
和中途 direct fallback。所有额外 scratch 仍在 replay sink 创建时一次分配,未进入 renderer。
|
||||
|
||||
同一新 binary(SHA256
|
||||
`121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151`)串行运行,
|
||||
每项三次;表中为包含选择、分桶、上传、kernel、合并、下载和清理的 `replay_wall`
|
||||
中位数:
|
||||
|
||||
| 65,536-event 输入 | paired atomic | paired tile16 | adaptive | adaptive 选择 |
|
||||
| --- | ---: | ---: | ---: | ---: |
|
||||
| 银心密集 | 95.018 ms | 67.354 ms | 67.834 ms | 0.177 ms |
|
||||
| 同贡献分散 | 78.203 ms | 99.693 ms | 80.092 ms | 0.455 ms |
|
||||
|
||||
自适应路径在密集输入相对 paired atomic 快约 1.40×,距固定 tile16 中位数 0.7%;在分散
|
||||
输入保留 atomic,距其 paired 中位数 2.4%。另外两个真实输入的自适应中位数为强放大
|
||||
21.617 ms、普通区域 18.347 ms,分别选择 1/1 tile chunk。银心选择 4/4 tile chunks,
|
||||
分散对照选择 4/4 atomic chunks。此结果支持继续研究 production 流式集成,但尚未包含
|
||||
OpenMP producer 与 sink 锁竞争,也没有授权用本回放结果宣称完整全天加速。
|
||||
|
||||
全部 adaptive/mixed 检查通过原有 finite、double HDR 和 RGB/Y 通量阈值;最坏
|
||||
`max_abs=5.96856e-11`、`max_rel=5.95958e-13`、RGB 通量相对差
|
||||
`<=2.83233e-14`、Y `<=1.15036e-14`。`make -j1 test` 与 production HIP primitive
|
||||
也通过。第一次在受限沙箱内运行明确失败为 `no ROCm-capable device is detected`,随后只在
|
||||
获准的主机 GPU 环境执行;失败记录保留,没有删除或覆盖。
|
||||
|
||||
原始证据:
|
||||
|
||||
- 构建:[adaptive_build_host.log](hip_psf_replay_2026-09-07/adaptive_build_host.log);
|
||||
- adaptive 三次:`adaptive_{center_65536,dispersed_65536,lensed_16384,ordinary_12765}_host_{0,1,2}.log`;
|
||||
- paired 基线:`paired_{center,dispersed}_{atomic,16}_{0,1,2}.log`;
|
||||
- mixed、CPU 与 HIP 回归:`adaptive_boundary_mixed_host_0.log`、
|
||||
`adaptive_cpu_regression.log`、`adaptive_hip_primitive_host.log`;
|
||||
- 受限环境失败:`adaptive_center_65536_0.log`。
|
||||
|
||||
每份日志均保留完整命令、45/90 s timeout、Git hash、binary hash(适用时)、程序原始输出、
|
||||
process wall 和 exit status。所有性能进程均由现有独占 runner 串行执行,未与其他 renderer
|
||||
或 profiler 并发。
|
||||
|
||||
实现入口:
|
||||
|
||||
- [capture_psf.c](../tests/capture_psf.c):调用真实 producer 的测试专用 consumer,捕获或诊断,不生成 HDR。
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/boundary.events 32771 adaptive mixed
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.691 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=32771 frame=128x96 mode=adaptive distribution=fixture-mixed-direct contributions=142133685 CPU_reference=0.271268845 create=0.036700010
|
||||
complete_replay=0.060321093 replay_wall=0.023621082 select=0.000166893 bin=0.002514124 upload=0.000438220 prepare=0.000985861 accumulation=0.016374943 merge=0.000088215 download=0.000132840 cleanup=0.000163078 events_s=1387362.339 contributions_s=6017238463.474 center_tiles=26 tile_chunks=2 atomic_chunks=1 refs=829409 tasks=3275 scratch_used_peak=25249440 scratch_device_reserved=184549376 RSS_KiB=319696 max_abs=5.9685589803848416e-11 max_rel=5.9595772318269279e-13 flux_R=2.8323267191886195e-14 flux_G=-5.5281251977629701e-15 flux_B=9.6507636840237455e-15 flux_Y=1.1503592402127278e-14
|
||||
PROCESS_WALL 1.117062220 EXIT 0
|
||||
@@ -0,0 +1,7 @@
|
||||
COMMAND OMP_NUM_THREADS=16 make -B -j1 PSF_BACKEND=hip 'HIP_CXXFLAGS=--offload-arch=gfx1201 -std=c++17 -O2 -Wall -Wextra -Wpedantic' hip-psf-replay
|
||||
TIMEOUT 60s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
cc -DENABLE_PNG -DFRAME_PSF_EVENT_SINK=1 -DPSF_BACKEND_HIP -DSPACETIME_MINKOWSKI -std=c11 -march=native -pipe -Wall -Wextra -Wpedantic -O2 -DNDEBUG -fopenmp -Isrc -MMD -MP -c src/optics.c -o build/Release/obj/minkowski/standard_sink1_hip/src/optics.o
|
||||
mkdir -p build/Release
|
||||
hipcc --offload-arch=gfx1201 -std=c++17 -O2 -Wall -Wextra -Wpedantic -fopenmp -Isrc -x hip tests/replay_psf.hip -x none build/Release/obj/minkowski/standard_sink1_hip/src/optics.o -lm -lpng -o build/Release/replay_psf
|
||||
PROCESS_WALL 1.266911305 EXIT 0
|
||||
@@ -0,0 +1,7 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
no ROCm-capable device is detected
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.667 s
|
||||
PROCESS_WALL 1.667466220 EXIT 1
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.679 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=adaptive distribution=captured contributions=432818979 CPU_reference=0.824280024 create=0.050632000
|
||||
complete_replay=0.121458054 replay_wall=0.070826054 select=0.000172138 bin=0.007817984 upload=0.001097918 prepare=0.001653194 accumulation=0.051779747 merge=0.000582457 download=0.004020136 cleanup=0.000195980 events_s=925309.214 contributions_s=6111013629.616 center_tiles=35 tile_chunks=4 atomic_chunks=0 refs=2973775 tasks=11935 scratch_used_peak=35382764 scratch_device_reserved=184549376 RSS_KiB=713084 max_abs=2.7105054312137611e-19 max_rel=1.9611487209714066e-14 flux_R=-2.8081518355845397e-17 flux_G=4.7080671715585728e-17 flux_B=5.9271432925574641e-17 flux_Y=2.0330567515243999e-17
|
||||
PROCESS_WALL 1.968497664 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.662 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=adaptive distribution=captured contributions=432818979 CPU_reference=0.812095881 create=0.036637783
|
||||
complete_replay=0.104471922 replay_wall=0.067834139 select=0.000179052 bin=0.007610083 upload=0.001078129 prepare=0.001619816 accumulation=0.051049709 merge=0.000552416 download=0.004829631 cleanup=0.000203133 events_s=966121.205 contributions_s=6380547998.522 center_tiles=35 tile_chunks=4 atomic_chunks=0 refs=2973775 tasks=11935 scratch_used_peak=35382764 scratch_device_reserved=184549376 RSS_KiB=713056 max_abs=2.7105054312137611e-19 max_rel=1.9611487209714066e-14 flux_R=-2.8081518355845397e-17 flux_G=4.7080671715585728e-17 flux_B=5.9271432925574641e-17 flux_Y=2.0330567515243999e-17
|
||||
PROCESS_WALL 1.918472017 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.664 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=adaptive distribution=captured contributions=432818979 CPU_reference=0.806693077 create=0.036690950
|
||||
complete_replay=0.103733778 replay_wall=0.067042828 select=0.000176907 bin=0.007581234 upload=0.001075745 prepare=0.001624107 accumulation=0.051224947 merge=0.000552177 download=0.004083938 cleanup=0.000195026 events_s=977524.403 contributions_s=6455858060.497 center_tiles=35 tile_chunks=4 atomic_chunks=0 refs=2973775 tasks=11935 scratch_used_peak=35382764 scratch_device_reserved=184549376 RSS_KiB=713112 max_abs=2.7105054312137611e-19 max_rel=1.9611487209714066e-14 flux_R=-2.8081518355845397e-17 flux_G=4.7080671715585728e-17 flux_B=5.9271432925574641e-17 flux_Y=2.0330567515243999e-17
|
||||
PROCESS_WALL 1.918304047 EXIT 0
|
||||
@@ -0,0 +1,38 @@
|
||||
COMMAND OMP_NUM_THREADS=16 make -j1 test
|
||||
TIMEOUT 90s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
make SPACETIME=minkowski ENABLE_HDR=1 backend
|
||||
make[1]: Entering directory '/home/wyj/Code/C/GR_4d_raytracing'
|
||||
cc -O2 -DNDEBUG -fopenmp build/Release/obj/minkowski/hdr_sink1_cpu/src/catalog.o build/Release/obj/minkowski/hdr_sink1_cpu/src/frame.o build/Release/obj/minkowski/hdr_sink1_cpu/src/geodesic.o build/Release/obj/minkowski/hdr_sink1_cpu/src/lens_map.o build/Release/obj/minkowski/hdr_sink1_cpu/src/movie.o build/Release/obj/minkowski/hdr_sink1_cpu/src/observer.o build/Release/obj/minkowski/hdr_sink1_cpu/src/observer_track.o build/Release/obj/minkowski/hdr_sink1_cpu/src/optics.o build/Release/obj/minkowski/hdr_sink1_cpu/src/ray.o build/Release/obj/minkowski/hdr_sink1_cpu/src/spacetime_common.o build/Release/obj/minkowski/hdr_sink1_cpu/src/spacetime_minkowski.o build/Release/obj/minkowski/hdr_sink1_cpu/src/main.o -lm -lpng -lcfitsio -o build/Release/minkowski_sky
|
||||
make[1]: Leaving directory '/home/wyj/Code/C/GR_4d_raytracing'
|
||||
mkdir -p /tmp/gr_psf_event_sink_reference
|
||||
OMP_NUM_THREADS=16 build/Release/minkowski_sky --catalog assets/sky_grid_5deg.csv --output /tmp/gr_psf_event_sink_reference/minkowski_ra1_dec1_640x360.png --hdr-output --width 640 --height 360 --fov-deg 30 --look-ra-deg 1 --look-dec-deg 1 --exposure 0.1 --observer-radius 30 --observer-velocity 0 0 0 --psf-fwhm-pixels 2.7 --psf-moffat-beta 4.5 --max-magnification 1e300 --max-cache-psf-flux 1 --psf-relative-tail 1e-8 --psf-min-y 0 --coarse-cell-pixels 16 --refine-max-level 0 --refine-angle-abs-deg 0.001 --refine-angle-rel 0.1 --refine-jacobian-min 1e-3 --refine-min-edge-pixels 0.5 --refine-min-area-pixels2 0.25 --catalog-load-workers 4
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.667 s
|
||||
Rendered 35 images from 5654 catalog stars to /tmp/gr_psf_event_sink_reference/minkowski_ra1_dec1_640x360.png (ok)
|
||||
PSF splats: cached 35, cached wing-clipped 0, direct fallbacks 0, discarded below min-Y 0
|
||||
python3 scripts/fits_floatdiff.py tests/data/psf_event_sink_reference/minkowski_ra1_dec1_640x360_HDR.fits /tmp/gr_psf_event_sink_reference/minkowski_ra1_dec1_640x360_HDR.fits
|
||||
floatdiff: shape=(640, 360, 3) samples=691200 mismatches=0 max_abs=0 max_rel=0 worst_sample=0
|
||||
make SPACETIME=schwarzschild ENABLE_HDR=1 backend
|
||||
make[1]: Entering directory '/home/wyj/Code/C/GR_4d_raytracing'
|
||||
cc -O2 -DNDEBUG -fopenmp build/Release/obj/schwarzschild/hdr_sink1_cpu/src/catalog.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/frame.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/geodesic.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/lens_map.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/movie.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/observer.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/observer_track.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/optics.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/ray.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/spacetime_common.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/spacetime_schwarzschild.o build/Release/obj/schwarzschild/hdr_sink1_cpu/src/main.o -lm -lpng -lcfitsio -o build/Release/schwarzschild_sky
|
||||
make[1]: Leaving directory '/home/wyj/Code/C/GR_4d_raytracing'
|
||||
OMP_NUM_THREADS=16 build/Release/schwarzschild_sky --catalog assets/sky_grid_5deg.csv --output /tmp/gr_psf_event_sink_reference/schwarzschild_ra1_dec1_fov60_640x360.png --hdr-output --width 640 --height 360 --fov-deg 60 --look-ra-deg 1 --look-dec-deg 1 --exposure 0.1 --observer-radius 30 --observer-velocity 0 0 0 --psf-fwhm-pixels 2.7 --psf-moffat-beta 4.5 --max-magnification 1e300 --max-cache-psf-flux 1 --psf-relative-tail 1e-8 --psf-min-y 0 --coarse-cell-pixels 16 --refine-max-level 0 --refine-angle-abs-deg 0.001 --refine-angle-rel 0.1 --refine-jacobian-min 1e-3 --refine-min-edge-pixels 0.5 --refine-min-area-pixels2 0.25 --catalog-load-workers 4
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.665 s
|
||||
Rendered 5206 images from 5654 catalog stars to /tmp/gr_psf_event_sink_reference/schwarzschild_ra1_dec1_fov60_640x360.png (ok)
|
||||
PSF splats: cached 5206, cached wing-clipped 0, direct fallbacks 0, discarded below min-Y 0
|
||||
python3 scripts/fits_floatdiff.py tests/data/psf_event_sink_reference/schwarzschild_ra1_dec1_fov60_640x360_HDR.fits /tmp/gr_psf_event_sink_reference/schwarzschild_ra1_dec1_fov60_640x360_HDR.fits
|
||||
floatdiff: shape=(640, 360, 3) samples=691200 mismatches=0 max_abs=0 max_rel=0 worst_sample=0
|
||||
./build/Release/test_observer_minkowski
|
||||
coordinate-camera regression passed
|
||||
./build/Release/test_observer_schwarzschild
|
||||
coordinate-camera regression passed
|
||||
./build/Release/test_geodesic
|
||||
./build/Release/test_frame
|
||||
./build/Release/test_schwarzschild
|
||||
./build/Release/test_observer_track
|
||||
./build/Release/test_catalog_prefetch
|
||||
python3 tests/test_camera_cli.py build/Release
|
||||
minkowski: CLI checks passed; single/movie PNG identical, map max error 0
|
||||
schwarzschild: movie lens map identical with 1, 4 and 16 threads
|
||||
schwarzschild: CLI checks passed; single/movie PNG identical, map max error 4.44e-16
|
||||
PROCESS_WALL 26.018675067 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 adaptive disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.682 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=adaptive distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.491110802 create=0.037611008
|
||||
complete_replay=0.117703199 replay_wall=0.080092192 select=0.000455141 bin=0.000000000 upload=0.000191523 prepare=0.000000000 accumulation=0.075263899 merge=0.000000000 download=0.004099738 cleanup=0.000207186 events_s=818257.044 contributions_s=5404009677.272 center_tiles=26986 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=184549376 RSS_KiB=705516 max_abs=3.3881317890172014e-21 max_rel=8.4356460581299069e-16 flux_R=1.2382136141425945e-18 flux_G=1.811942792627668e-18 flux_B=1.5829277137138293e-18 flux_Y=1.5978644712371554e-18
|
||||
PROCESS_WALL 2.620178348 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 adaptive disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.733 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=adaptive distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.488748074 create=0.038790941
|
||||
complete_replay=0.121706009 replay_wall=0.082915068 select=0.000465870 bin=0.000000000 upload=0.000181281 prepare=0.000000000 accumulation=0.077964972 merge=0.000000000 download=0.004236780 cleanup=0.000192881 events_s=790399.162 contributions_s=5220028049.767 center_tiles=26986 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=184549376 RSS_KiB=705940 max_abs=3.3881317890172014e-21 max_rel=8.4356460581299069e-16 flux_R=1.377382799700594e-18 flux_G=1.939309838343059e-18 flux_B=2.0425953472603454e-18 flux_Y=1.7396938046841301e-18
|
||||
PROCESS_WALL 2.720085292 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 adaptive disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.671 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=adaptive distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.462161779 create=0.037038088
|
||||
complete_replay=0.115585089 replay_wall=0.078547001 select=0.000451088 bin=0.000000000 upload=0.000188241 prepare=0.000000000 accumulation=0.073739567 merge=0.000000000 download=0.004098460 cleanup=0.000214100 events_s=834353.944 contributions_s=5510318333.269 center_tiles=26986 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=184549376 RSS_KiB=705560 max_abs=3.3881317890172014e-21 max_rel=8.4356460581299069e-16 flux_R=1.4160413575526434e-18 flux_G=1.6738012163520145e-18 flux_B=2.0518958448496421e-18 flux_Y=1.5923904683351809e-18
|
||||
PROCESS_WALL 2.568827678 EXIT 0
|
||||
@@ -0,0 +1,6 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/test_hip_psf
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 39cd23b6d9aef423ba97ba0085b9a411a47a49e4b66cf59197f471de419ef9b8
|
||||
HIP PSF cache comparison: max_abs=2.8421709430404007e-14 max_rel=7.5319184269262976e-16
|
||||
PROCESS_WALL 0.816928134 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/lensed_16384.events 16384 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.714 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=16384 frame=3840x2160 mode=adaptive distribution=captured contributions=107949448 CPU_reference=0.213827133 create=0.041162014
|
||||
complete_replay=0.062693119 replay_wall=0.021531105 select=0.000054836 bin=0.003102064 upload=0.000283003 prepare=0.000669003 accumulation=0.012633085 merge=0.000146866 download=0.004084578 cleanup=0.000169992 events_s=760945.617 contributions_s=5013651077.913 center_tiles=359 tile_chunks=1 atomic_chunks=0 refs=740784 tasks=5251 scratch_used_peak=31785268 scratch_device_reserved=184549376 RSS_KiB=710652 max_abs=5.3290705182007514e-15 max_rel=3.8619817275125971e-15 flux_R=-5.5779263000586243e-18 flux_G=-2.9489947183383731e-19 flux_B=4.3765760168230462e-18 flux_Y=-2.1608907287060103e-18
|
||||
PROCESS_WALL 1.268419138 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/lensed_16384.events 16384 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.667 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=16384 frame=3840x2160 mode=adaptive distribution=captured contributions=107949448 CPU_reference=0.214478970 create=0.036618948
|
||||
complete_replay=0.058495998 replay_wall=0.021877050 select=0.000056028 bin=0.003196001 upload=0.000288010 prepare=0.000689983 accumulation=0.012602091 merge=0.000144958 download=0.004350181 cleanup=0.000192165 events_s=748912.660 contributions_s=4934369397.489 center_tiles=359 tile_chunks=1 atomic_chunks=0 refs=740784 tasks=5251 scratch_used_peak=31785268 scratch_device_reserved=184549376 RSS_KiB=710384 max_abs=5.3290705182007514e-15 max_rel=3.8619817275125971e-15 flux_R=-5.5779263000586243e-18 flux_G=-2.9489947183383731e-19 flux_B=4.3765760168230462e-18 flux_Y=-2.1608907287060103e-18
|
||||
PROCESS_WALL 1.216200115 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/lensed_16384.events 16384 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.664 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=16384 frame=3840x2160 mode=adaptive distribution=captured contributions=107949448 CPU_reference=0.214956999 create=0.038650990
|
||||
complete_replay=0.060267925 replay_wall=0.021616936 select=0.000054121 bin=0.003103971 upload=0.000282049 prepare=0.000669956 accumulation=0.012650013 merge=0.000149012 download=0.004124364 cleanup=0.000187874 events_s=757924.259 contributions_s=4993744226.675 center_tiles=359 tile_chunks=1 atomic_chunks=0 refs=740784 tasks=5251 scratch_used_peak=31785268 scratch_device_reserved=184549376 RSS_KiB=710600 max_abs=5.3290705182007514e-15 max_rel=3.8619817275125971e-15 flux_R=-5.5779263000586243e-18 flux_G=-2.9489947183383731e-19 flux_B=4.3765760168230462e-18 flux_Y=-2.1608907287060103e-18
|
||||
PROCESS_WALL 1.216335608 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/ordinary_16384.events 12765 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.683 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=12765 frame=3840x2160 mode=adaptive distribution=captured contributions=84287857 CPU_reference=0.161495924 create=0.036530018
|
||||
complete_replay=0.054877043 replay_wall=0.018347025 select=0.000042915 bin=0.001914978 upload=0.000241995 prepare=0.000617027 accumulation=0.009811878 merge=0.000136137 download=0.005169831 cleanup=0.000195026 events_s=695753.129 contributions_s=4594088544.521 center_tiles=8 tile_chunks=1 atomic_chunks=0 refs=575476 tasks=2331 scratch_used_peak=27265820 scratch_device_reserved=184549376 RSS_KiB=708332 max_abs=2.1371793224034263e-15 max_rel=1.6186841366251043e-14 flux_R=1.3070869891010463e-16 flux_G=2.5758793226204442e-16 flux_B=1.7069617471680846e-16 flux_Y=2.1355251009923229e-16
|
||||
PROCESS_WALL 1.166123833 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/ordinary_16384.events 12765 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.679 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=12765 frame=3840x2160 mode=adaptive distribution=captured contributions=84287857 CPU_reference=0.164183140 create=0.036640882
|
||||
complete_replay=0.054260731 replay_wall=0.017619848 select=0.000036955 bin=0.001922131 upload=0.000246048 prepare=0.000601053 accumulation=0.010066986 merge=0.000137806 download=0.004148300 cleanup=0.000171900 events_s=724467.079 contributions_s=4783688020.331 center_tiles=8 tile_chunks=1 atomic_chunks=0 refs=575476 tasks=2331 scratch_used_peak=27265820 scratch_device_reserved=184549376 RSS_KiB=707824 max_abs=2.1371793224034263e-15 max_rel=1.6186841366251043e-14 flux_R=1.3070869891010463e-16 flux_G=2.5758793226204442e-16 flux_B=1.7069617471680846e-16 flux_Y=2.1355251009923229e-16
|
||||
PROCESS_WALL 1.167055415 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/ordinary_16384.events 12765 adaptive
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.674 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=12765 frame=3840x2160 mode=adaptive distribution=captured contributions=84287857 CPU_reference=0.159490824 create=0.036442041
|
||||
complete_replay=0.056708097 replay_wall=0.020266056 select=0.000033855 bin=0.001877069 upload=0.000234127 prepare=0.000597954 accumulation=0.010081053 merge=0.000137806 download=0.004184938 cleanup=0.000163078 events_s=629870.951 contributions_s=4159065619.239 center_tiles=8 tile_chunks=1 atomic_chunks=0 refs=575476 tasks=2331 scratch_used_peak=27265820 scratch_device_reserved=184549376 RSS_KiB=707952 max_abs=2.1371793224034263e-15 max_rel=1.6186841366251043e-14 flux_R=1.3070869891010463e-16 flux_G=2.5758793226204442e-16 flux_B=1.7069617471680846e-16 flux_Y=2.1355251009923229e-16
|
||||
PROCESS_WALL 1.167496176 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 16
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.783 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=16 distribution=captured contributions=432818979 CPU_reference=0.805742979 create=0.036848068
|
||||
complete_replay=0.103791952 replay_wall=0.066943884 select=0.000000000 bin=0.007535458 upload=0.001190662 prepare=0.001640081 accumulation=0.051215172 merge=0.000553846 download=0.004045417 cleanup=0.000201941 events_s=978969.193 contributions_s=6465399881.387 center_tiles=0 tile_chunks=4 atomic_chunks=0 refs=2973775 tasks=11935 scratch_used_peak=35382764 scratch_device_reserved=184549376 RSS_KiB=713288 max_abs=2.7105054312137611e-19 max_rel=1.9611487209714066e-14 flux_R=-2.8081518355845397e-17 flux_G=4.7080671715585728e-17 flux_B=5.9271432925574641e-17 flux_Y=2.0330567515243999e-17
|
||||
PROCESS_WALL 2.019127664 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 16
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.668 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=16 distribution=captured contributions=432818979 CPU_reference=0.815722942 create=0.036595821
|
||||
complete_replay=0.106936932 replay_wall=0.070341110 select=0.000000000 bin=0.007705212 upload=0.001186848 prepare=0.001616001 accumulation=0.051277876 merge=0.000541925 download=0.004584385 cleanup=0.000200987 events_s=931688.451 contributions_s=6153143980.638 center_tiles=0 tile_chunks=4 atomic_chunks=0 refs=2973775 tasks=11935 scratch_used_peak=35382764 scratch_device_reserved=184549376 RSS_KiB=712508 max_abs=2.7105054312137611e-19 max_rel=1.9611487209714066e-14 flux_R=-2.8081518355845397e-17 flux_G=4.7080671715585728e-17 flux_B=5.9271432925574641e-17 flux_Y=2.0330567515243999e-17
|
||||
PROCESS_WALL 1.917609542 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 16
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.670 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=16 distribution=captured contributions=432818979 CPU_reference=0.802520990 create=0.037091017
|
||||
complete_replay=0.104444981 replay_wall=0.067353964 select=0.000000000 bin=0.007662058 upload=0.001219988 prepare=0.001631737 accumulation=0.051412106 merge=0.000540018 download=0.004093417 cleanup=0.000197887 events_s=973008.807 contributions_s=6426035740.844 center_tiles=0 tile_chunks=4 atomic_chunks=0 refs=2973775 tasks=11935 scratch_used_peak=35382764 scratch_device_reserved=184549376 RSS_KiB=712736 max_abs=2.7105054312137611e-19 max_rel=1.9611487209714066e-14 flux_R=-2.8081518355845397e-17 flux_G=4.7080671715585728e-17 flux_B=5.9271432925574641e-17 flux_Y=2.0330567515243999e-17
|
||||
PROCESS_WALL 1.917963698 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 atomic
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.687 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=atomic distribution=captured contributions=432818979 CPU_reference=0.809880018 create=0.039862156
|
||||
complete_replay=0.135050297 replay_wall=0.095188141 select=0.000000000 bin=0.000000000 upload=0.000205602 prepare=0.000000000 accumulation=0.090687719 merge=0.000000000 download=0.004133141 cleanup=0.000000000 events_s=688489.127 contributions_s=4546984267.662 center_tiles=0 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=0 RSS_KiB=705156 max_abs=1.2874900798265365e-19 max_rel=7.4131884297116165e-15 flux_R=3.5244625165286513e-17 flux_G=-1.6770129667889592e-17 flux_B=-1.4396324706080044e-17 flux_Y=2.0737623150838269e-18
|
||||
PROCESS_WALL 1.967518921 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 atomic
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.671 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=atomic distribution=captured contributions=432818979 CPU_reference=0.802126169 create=0.039602995
|
||||
complete_replay=0.134557009 replay_wall=0.094954014 select=0.000000000 bin=0.000000000 upload=0.000198362 prepare=0.000000000 accumulation=0.090435339 merge=0.000000000 download=0.004166579 cleanup=0.000000000 events_s=690186.727 contributions_s=4558195715.666 center_tiles=0 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=0 RSS_KiB=705688 max_abs=1.0842021724855044e-19 max_rel=7.9583748032166079e-15 flux_R=7.6396533553465937e-18 flux_G=1.6562512796306053e-17 flux_B=1.5235277925542237e-18 flux_Y=1.2880679208252085e-17
|
||||
PROCESS_WALL 1.918794264 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 atomic
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.676 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=atomic distribution=captured contributions=432818979 CPU_reference=0.799952984 create=0.039901972
|
||||
complete_replay=0.134919882 replay_wall=0.095017910 select=0.000000000 bin=0.000000000 upload=0.000204603 prepare=0.000000000 accumulation=0.090419817 merge=0.000000000 download=0.004226341 cleanup=0.000000000 events_s=689722.601 contributions_s=4555130490.487 center_tiles=0 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=0 RSS_KiB=705636 max_abs=1.2874900798265365e-19 max_rel=7.9482312095117156e-15 flux_R=-5.3427317744228327e-18 flux_G=6.0837775507051433e-17 flux_B=-9.8579921222560893e-19 flux_Y=3.5056388280753197e-17
|
||||
PROCESS_WALL 1.968038807 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 16 disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.662 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=16 distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.480471134 create=0.038483858
|
||||
complete_replay=0.138176918 replay_wall=0.099693060 select=0.000000000 bin=0.035099983 upload=0.001532316 prepare=0.001661777 accumulation=0.049884081 merge=0.000493050 download=0.004275622 cleanup=0.000198841 events_s=657377.756 contributions_s=4341515641.528 center_tiles=0 tile_chunks=4 atomic_chunks=0 refs=2987132 tasks=129439 scratch_used_peak=17137368 scratch_device_reserved=184549376 RSS_KiB=716772 max_abs=6.7762635780344027e-21 max_rel=2.2452117590762424e-15 flux_R=1.0178317181173255e-18 flux_G=1.4444219523404554e-18 flux_B=2.8354584230664648e-18 flux_Y=1.3331859086679348e-18
|
||||
PROCESS_WALL 2.620675482 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 16 disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.672 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=16 distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.477596998 create=0.037245035
|
||||
complete_replay=0.137820959 replay_wall=0.100575924 select=0.000000000 bin=0.035495043 upload=0.001560211 prepare=0.001640797 accumulation=0.050065994 merge=0.000494242 download=0.004161540 cleanup=0.000195980 events_s=651607.238 contributions_s=4303405448.660 center_tiles=0 tile_chunks=4 atomic_chunks=0 refs=2987132 tasks=129439 scratch_used_peak=17137368 scratch_device_reserved=184549376 RSS_KiB=716808 max_abs=6.7762635780344027e-21 max_rel=2.2452117590762424e-15 flux_R=1.0178317181173255e-18 flux_G=1.4444219523404554e-18 flux_B=2.8354584230664648e-18 flux_Y=1.3331859086679348e-18
|
||||
PROCESS_WALL 2.667392709 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 16 disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.675 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=16 distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.470952988 create=0.038564920
|
||||
complete_replay=0.130317926 replay_wall=0.091753006 select=0.000000000 bin=0.034946680 upload=0.001475096 prepare=0.001478195 accumulation=0.042901754 merge=0.000442028 download=0.004153220 cleanup=0.000182867 events_s=714265.427 contributions_s=4717218519.113 center_tiles=0 tile_chunks=4 atomic_chunks=0 refs=2987132 tasks=129439 scratch_used_peak=17137368 scratch_device_reserved=184549376 RSS_KiB=714840 max_abs=6.7762635780344027e-21 max_rel=2.2452117590762424e-15 flux_R=1.0178317181173255e-18 flux_G=1.4444219523404554e-18 flux_B=2.8354584230664648e-18 flux_Y=1.3331859086679348e-18
|
||||
PROCESS_WALL 2.623926037 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 atomic disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.685 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=atomic distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.483494043 create=0.036720991
|
||||
complete_replay=0.115373135 replay_wall=0.078652143 select=0.000000000 bin=0.000000000 upload=0.000209722 prepare=0.000000000 accumulation=0.074174986 merge=0.000000000 download=0.004105619 cleanup=0.000000000 events_s=833238.576 contributions_s=5502952111.139 center_tiles=0 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=0 RSS_KiB=705688 max_abs=3.3881317890172014e-21 max_rel=8.4356460581299069e-16 flux_R=1.4264853877147901e-18 flux_G=1.7304063360850003e-18 flux_B=2.1361348632691914e-18 flux_Y=1.6331855317630113e-18
|
||||
PROCESS_WALL 2.620796063 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 atomic disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.669 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=atomic distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.474539995 create=0.037378073
|
||||
complete_replay=0.115452051 replay_wall=0.078073978 select=0.000000000 bin=0.000000000 upload=0.000202122 prepare=0.000000000 accumulation=0.073547550 merge=0.000000000 download=0.004160663 cleanup=0.000000000 events_s=839408.998 contributions_s=5543703391.789 center_tiles=0 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=0 RSS_KiB=704932 max_abs=3.3881317890172014e-21 max_rel=8.4356460581299069e-16 flux_R=1.4285334484627677e-18 flux_G=1.6416822084297311e-18 flux_B=2.2250851163298864e-18 flux_Y=1.5826745498492225e-18
|
||||
PROCESS_WALL 2.620563869 EXIT 0
|
||||
@@ -0,0 +1,8 @@
|
||||
COMMAND OMP_NUM_THREADS=16 build/Release/replay_psf benchmarks/hip_psf_replay_2026-09-07/center_65536.events 65536 atomic disperse
|
||||
TIMEOUT 45s
|
||||
GIT 11e703e33dffb1ff168ba11dd922e68b448116b9
|
||||
BINARY_SHA256 121b85ade12680929cf0f560e04485e2ad3d8a56ff9dcbba950a323f840c5151
|
||||
PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.666 s
|
||||
device=AMD Radeon RX 9070 arch=gfx1201 events=65536 frame=3840x2160 mode=atomic distribution=synthetic-phase-preserving-dispersal contributions=432818979 CPU_reference=1.498821974 create=0.037057161
|
||||
complete_replay=0.115260124 replay_wall=0.078202963 select=0.000000000 bin=0.000000000 upload=0.000203722 prepare=0.000000000 accumulation=0.073602102 merge=0.000000000 download=0.004232413 cleanup=0.000000000 events_s=838024.515 contributions_s=5534559856.636 center_tiles=0 tile_chunks=0 atomic_chunks=4 refs=0 tasks=0 scratch_used_peak=0 scratch_device_reserved=0 RSS_KiB=705384 max_abs=3.3881317890172014e-21 max_rel=8.4356460581299069e-16 flux_R=1.4138169203080735e-18 flux_G=1.5950365444592374e-18 flux_B=2.1462694853060243e-18 flux_Y=1.5465636583759892e-18
|
||||
PROCESS_WALL 2.619888980 EXIT 0
|
||||
+41
-11
@@ -102,11 +102,13 @@ static size_t contributions(const std::vector<PsfCachedEvent>& events,int width,
|
||||
return n;
|
||||
}
|
||||
int main(int argc,char **argv) {
|
||||
if(argc<4 || argc>5) {puts("Usage: replay_psf INPUT.events EVENTS(1..65536) atomic|16|32 [disperse|mixed]\nExternal timeout <=45s; sequential processes only.");return 2;}
|
||||
if(argc<4 || argc>5) {puts("Usage: replay_psf INPUT.events EVENTS(1..65536) atomic|16|32|adaptive [disperse|mixed]\nExternal timeout <=45s; sequential processes only.");return 2;}
|
||||
char *end=nullptr;const long requested=strtol(argv[2],&end,10);
|
||||
if(!*argv[2] || *end || requested<1 || requested>65536) return 2;
|
||||
const int tile=!strcmp(argv[3],"atomic") ? 0 : !strcmp(argv[3],"16") ? 16 : !strcmp(argv[3],"32") ? 32 : -1;
|
||||
if(tile<0 || (argc==5 && strcmp(argv[4],"disperse") && strcmp(argv[4],"mixed")))return 2;
|
||||
const bool adaptive=!strcmp(argv[3],"adaptive");
|
||||
const int requested_tile=!strcmp(argv[3],"atomic") ? 0 : !strcmp(argv[3],"16") ? 16 :
|
||||
!strcmp(argv[3],"32") ? 32 : adaptive ? 16 : -1;
|
||||
if(requested_tile<0 || (argc==5 && strcmp(argv[4],"disperse") && strcmp(argv[4],"mixed")))return 2;
|
||||
FILE *f=fopen(argv[1],"r");if(!f){perror(argv[1]);return 2;}
|
||||
int width,height;size_t count;PointSpreadFunction psf;double tail;
|
||||
if(fscanf(f,"PSFEVENTS1 %d %d %zu %lf %lf %lf",&width,&height,&count,&psf.fwhm_pixels,&psf.moffat_beta,&tail)!=6 ||
|
||||
@@ -153,8 +155,10 @@ int main(int argc,char **argv) {
|
||||
const double create=omp_get_wtime()-start;
|
||||
hipDeviceProp_t prop;check(hipGetDeviceProperties(&prop,0));
|
||||
printf("device=%s arch=%s events=%zu frame=%dx%d mode=%s distribution=%s contributions=%zu CPU_reference=%.9f create=%.9f\n",prop.name,prop.gcnArchName,events.size(),width,height,argv[3],mixed?"fixture-mixed-direct":argc==5?"synthetic-phase-preserving-dispersal":"captured",work,cpu_time,create);fflush(stdout);
|
||||
double bin=0,upload=0,prepare=0,kernel=0,merge=0,clear=0;size_t peak_scratch=0,ref_total=0,task_total=0;
|
||||
double select=0,bin=0,upload=0,prepare=0,kernel=0,merge=0,clear=0;
|
||||
size_t peak_scratch=0,ref_total=0,task_total=0,center_tiles=0,tile_chunks=0,atomic_chunks=0;
|
||||
Prepared *prepared=nullptr;int *bounds=nullptr;
|
||||
PsfCachedEvent *tile_events=nullptr;
|
||||
unsigned *drefs=nullptr,*dstarts=nullptr;TileTask *dtasks=nullptr;double *partial=nullptr;
|
||||
auto direct_boundary=[&]() {
|
||||
if(hip_psf_sink_finish(s,gpu.data(),message,sizeof message)) {fprintf(stderr,"%s\n",message);exit(1);}
|
||||
@@ -162,8 +166,9 @@ int main(int argc,char **argv) {
|
||||
if(hip_psf_sink_load_hdr(s,gpu.data(),message,sizeof message)) {fprintf(stderr,"%s\n",message);exit(1);}
|
||||
};
|
||||
const double replay_start=omp_get_wtime();
|
||||
if(tile) {
|
||||
if(requested_tile) {
|
||||
// Fixed hard bounds; no full-frame event list or per-chunk allocation on GPU.
|
||||
check(hipMalloc(&tile_events,16384*sizeof(PsfCachedEvent)));
|
||||
check(hipMalloc(&prepared,16384*sizeof(Prepared)));
|
||||
check(hipMalloc(&bounds,16384*(size_t)(2*cache.radius_pixels+1)*2*sizeof(int)));
|
||||
check(hipMalloc(&drefs,32*1024*1024));check(hipMalloc(&dtasks,2*1024*1024));
|
||||
@@ -171,7 +176,32 @@ int main(int argc,char **argv) {
|
||||
}
|
||||
for(size_t offset=0;offset<events.size();offset+=16384) {
|
||||
const size_t n=std::min((size_t)16384,events.size()-offset);
|
||||
if(!tile) {if(hip_psf_sink_submit(s,events.data()+offset,n,message,sizeof message)) {fprintf(stderr,"%s\n",message);return 1;}if(mixed && offset==0)direct_boundary();continue;}
|
||||
int tile=requested_tile;
|
||||
if(adaptive) {
|
||||
start=omp_get_wtime();
|
||||
const int selector_tile=32,nx=(width+selector_tile-1)/selector_tile;
|
||||
const int ny=(height+selector_tile-1)/selector_tile;
|
||||
std::vector<unsigned char> occupied((size_t)nx*ny,0);
|
||||
size_t count_occupied=0;
|
||||
for(size_t i=0;i<n;++i) {
|
||||
const int x=(int)floor(events[offset+i].x),y=(int)floor(events[offset+i].y);
|
||||
if(x<0 || x>=width || y<0 || y>=height)continue;
|
||||
unsigned char &mark=occupied[(size_t)(y/selector_tile)*nx+x/selector_tile];
|
||||
if(!mark) {mark=1;++count_occupied;}
|
||||
}
|
||||
/* This threshold is deliberately experimental. The captured dense and
|
||||
* lensed chunks have >=45 events per occupied center tile, while the
|
||||
* equal-work dispersed control has about 2.4. Small chunks retain the
|
||||
* lower-overhead production atomic path. */
|
||||
tile=n>=8192 && count_occupied && n/count_occupied>=32 ? 16 : 0;
|
||||
center_tiles+=count_occupied;select+=omp_get_wtime()-start;
|
||||
}
|
||||
if(!tile) {
|
||||
++atomic_chunks;
|
||||
if(hip_psf_sink_submit(s,events.data()+offset,n,message,sizeof message)) {fprintf(stderr,"%s\n",message);return 1;}
|
||||
if(mixed && offset==0)direct_boundary();continue;
|
||||
}
|
||||
++tile_chunks;
|
||||
start=omp_get_wtime();
|
||||
const int nx=(width+tile-1)/tile,ny=(height+tile-1)/tile;
|
||||
std::vector<std::vector<unsigned>> lists(nx*ny);
|
||||
@@ -208,13 +238,13 @@ int main(int argc,char **argv) {
|
||||
peak_scratch=std::max(peak_scratch,bytes+refs.size()*sizeof(unsigned)+tasks.size()*sizeof(TileTask)+starts.size()*sizeof(unsigned)+n*(sizeof(Prepared)+(size_t)(2*cache.radius_pixels+1)*2*sizeof(int)));
|
||||
ref_total+=refs.size();task_total+=tasks.size();bin+=omp_get_wtime()-start;
|
||||
start=omp_get_wtime();
|
||||
check(hipMemcpyAsync(s->slots[0].device,events.data()+offset,n*sizeof(PsfCachedEvent),hipMemcpyHostToDevice,s->stream));
|
||||
check(hipMemcpyAsync(tile_events,events.data()+offset,n*sizeof(PsfCachedEvent),hipMemcpyHostToDevice,s->stream));
|
||||
if(!refs.empty())check(hipMemcpyAsync(drefs,refs.data(),refs.size()*sizeof(unsigned),hipMemcpyHostToDevice,s->stream));
|
||||
if(!tasks.empty())check(hipMemcpyAsync(dtasks,tasks.data(),tasks.size()*sizeof(TileTask),hipMemcpyHostToDevice,s->stream));
|
||||
check(hipMemcpyAsync(dstarts,starts.data(),starts.size()*sizeof(unsigned),hipMemcpyHostToDevice,s->stream));
|
||||
upload+=sync_time(s,start);
|
||||
start=omp_get_wtime();
|
||||
hipLaunchKernelGGL(prepare_tiles,dim3((n*32+127)/128),dim3(128),0,s->stream,s->slots[0].device,n,s->phase_resolution,s->radius_pixels,s->max_radius_pixels,prepared,bounds);
|
||||
hipLaunchKernelGGL(prepare_tiles,dim3((n*32+127)/128),dim3(128),0,s->stream,tile_events,n,s->phase_resolution,s->radius_pixels,s->max_radius_pixels,prepared,bounds);
|
||||
check(hipGetLastError());prepare+=sync_time(s,start);
|
||||
start=omp_get_wtime();
|
||||
if(!tasks.empty())hipLaunchKernelGGL(tile_partial,dim3(tasks.size()),dim3(tile*tile),0,s->stream,prepared,bounds,drefs,dtasks,tile,nx,width,height,s->weights,s->phase_resolution,s->radius_pixels,partial,s->hdr);
|
||||
@@ -225,10 +255,10 @@ int main(int argc,char **argv) {
|
||||
// Every partial pixel is written by exactly one thread: no memset required.
|
||||
}
|
||||
if(hip_psf_sink_finish(s,gpu.data(),message,sizeof message)){fprintf(stderr,"%s\n",message);return 1;}
|
||||
if(tile) {start=omp_get_wtime();check(hipFree(prepared));check(hipFree(bounds));check(hipFree(drefs));check(hipFree(dtasks));check(hipFree(dstarts));check(hipFree(partial));clear=omp_get_wtime()-start;}
|
||||
if(requested_tile) {start=omp_get_wtime();check(hipFree(tile_events));check(hipFree(prepared));check(hipFree(bounds));check(hipFree(drefs));check(hipFree(dtasks));check(hipFree(dstarts));check(hipFree(partial));clear=omp_get_wtime()-start;}
|
||||
const double wall=omp_get_wtime()-replay_start;
|
||||
HipPsfTiming timing={};hip_psf_sink_get_timing(s,&timing);
|
||||
if(!tile){upload=timing.upload_seconds;kernel=timing.kernel_seconds;}
|
||||
upload+=timing.upload_seconds;kernel+=timing.kernel_seconds;
|
||||
double max_abs=0,max_rel=0;long double sums[3]={},diffs[3]={};bool pass=true;
|
||||
for(size_t i=0;i<values;++i) {
|
||||
if(!std::isfinite(cpu[i]) || !std::isfinite(gpu[i]))pass=false;
|
||||
@@ -238,7 +268,7 @@ int main(int argc,char **argv) {
|
||||
}
|
||||
long double ysum=.2126L*sums[0]+.7152L*sums[1]+.0722L*sums[2],ydiff=.2126L*diffs[0]+.7152L*diffs[1]+.0722L*diffs[2];
|
||||
struct rusage usage;getrusage(RUSAGE_SELF,&usage);
|
||||
printf("complete_replay=%.9f replay_wall=%.9f bin=%.9f upload=%.9f prepare=%.9f accumulation=%.9f merge=%.9f download=%.9f cleanup=%.9f events_s=%.3f contributions_s=%.3f refs=%zu tasks=%zu scratch_used_peak=%zu scratch_device_reserved=%zu RSS_KiB=%ld max_abs=%.17g max_rel=%.17g flux_R=%.17Lg flux_G=%.17Lg flux_B=%.17Lg flux_Y=%.17Lg\n",create+wall,wall,bin,upload,prepare,kernel,merge,timing.download_seconds,clear,events.size()/wall,work/wall,ref_total,task_total,peak_scratch,tile?162*1024*1024+131072+16384*(sizeof(Prepared)+(size_t)(2*cache.radius_pixels+1)*2*sizeof(int)):0,usage.ru_maxrss,max_abs,max_rel,sums[0]?diffs[0]/sums[0]:0,sums[1]?diffs[1]/sums[1]:0,sums[2]?diffs[2]/sums[2]:0,ysum?ydiff/ysum:0);
|
||||
printf("complete_replay=%.9f replay_wall=%.9f select=%.9f bin=%.9f upload=%.9f prepare=%.9f accumulation=%.9f merge=%.9f download=%.9f cleanup=%.9f events_s=%.3f contributions_s=%.3f center_tiles=%zu tile_chunks=%zu atomic_chunks=%zu refs=%zu tasks=%zu scratch_used_peak=%zu scratch_device_reserved=%zu RSS_KiB=%ld max_abs=%.17g max_rel=%.17g flux_R=%.17Lg flux_G=%.17Lg flux_B=%.17Lg flux_Y=%.17Lg\n",create+wall,wall,select,bin,upload,prepare,kernel,merge,timing.download_seconds,clear,events.size()/wall,work/wall,center_tiles,tile_chunks,atomic_chunks,ref_total,task_total,peak_scratch,requested_tile?163*1024*1024+131072+16384*(sizeof(Prepared)+(size_t)(2*cache.radius_pixels+1)*2*sizeof(int)):0,usage.ru_maxrss,max_abs,max_rel,sums[0]?diffs[0]/sums[0]:0,sums[1]?diffs[1]/sums[1]:0,sums[2]?diffs[2]/sums[2]:0,ysum?ydiff/ysum:0);
|
||||
for(int c=0;c<3;++c)if(fabsl(diffs[c])>1e-10L*fmaxl(fabsl(sums[c]),1e-30L))pass=false;
|
||||
if(fabsl(ydiff)>1e-10L*fmaxl(fabsl(ysum),1e-30L))pass=false;
|
||||
hip_psf_sink_destroy(s);psf_kernel_cache_destroy(&cache);
|
||||
|
||||
Reference in new issue
Block a user