diff --git a/benchmarks/2mass_galactic_center_blackhole.md b/benchmarks/2mass_galactic_center_blackhole.md index 02c1654..20b917c 100644 --- a/benchmarks/2mass_galactic_center_blackhole.md +++ b/benchmarks/2mass_galactic_center_blackhole.md @@ -1,3 +1,7 @@ +> 历史记录:此运行早于 `265d7b95d5b916ec4768d174d73ad963a43f0088` 的伪像修复。 +> 当前 CPU/HIP 配对基准及优化提交 hash 见 [完整 4K 新记录](2mass_galactic_center_cpu_hip_2026-09-07.md)。 +> 下方原始命令与输出保留,不用于新版本计数对照。 + Git hash: dd8cf29dac557c881e5df1db15a58fae15294967 ``` diff --git a/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07.md b/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07.md new file mode 100644 index 0000000..d8cd9c4 --- /dev/null +++ b/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07.md @@ -0,0 +1,89 @@ +# 2MASS 银河中心完整 4K:CPU / 优化 HIP(2026-09-07 归档) + +## 代码版本与证据来源 + +HIP 优化提交:**`e1ec480669b0d24a0266ee135edf8a64a0d80ec9`** +(`HIP: accelerate PSF accumulation and restore parallel producers`)。 +该提交包含 32-thread/event kernel、并行 CPU producer、有界双缓冲、全批次计时及回归测试。 +HIP 完整运行发生在提交之前,对应此次提交的实现;运行日志本身没有嵌入 Git 或 binary hash。 + +用户指定本页 CPU 运行作为可比较基准,并说明 +`265d7b95d5b916ec4768d174d73ad963a43f0088` 修复了此前的一些伪像。 +因此,旧 `dd8cf29` 记录的 598,308,919 星像和 1,365 wing-clipped 不用于本次性能/正确性配对。 +CPU 日志同样未嵌入 binary hash,不将代码版本说明冒充运行时二进制校验。 + +两份完整命令与原始终端输出均由用户提供: + +- [CPU 原始日志](2mass_galactic_center_cpu_hip_2026-09-07/cpu.log):生成并导出 lens map。 +- [HIP 原始日志](2mass_galactic_center_cpu_hip_2026-09-07/hip.log):导入同一 lens map;保留全部 + worker 进度、每五秒 batch 进度、最终计数及 zsh `time` 输出,未删减成汇总。 + +用户确认:**两个 PNG 比特级完全一致。** 本次归档没有重跑渲染,也没有重新执行文件比较; +原始比较命令和两个 PNG 的 SHA256 未提供。不将 PNG 一致性扩大为完整任务的 linear HDR +逐样本一致性声明。此前有界样本的 HDR 验证另见 +[有界排查记录](hip_psf_2026-09-07.md)。 + +## 工作负载与环境 + +- 主机沿用有界排查的 AMD Radeon RX 9070(gfx1201)与 HIP 7.2 环境;用户说明测试时段无其他 + 持续负载。完整日志没有独立输出驱动/编译器版本,前期环境证据见 + [metadata.log](hip_psf_2026-09-07/metadata.log)。 +- Release CPU/HIP 可执行文件,启用 HDR 输出;完整运行的实际编译命令未附在用户日志中。 +- 3840×2160,45° FOV,RA 262.5° / Dec −30°,observer radius 100 M。 +- CPU coarse cell 16,refine max level 4,Jacobian min 0.2;导出的 lens map 包含 + 65,817 vertices 和 130,882 triangles,HIP 直接导入它。 +- 两次均请求并加载 64,440 tiles、343,363,141 stars,无 unavailable tile;catalog loaders=4。 +- HIP 明确报告 16 producer workers。CPU 日志报告 1521% CPU,没有单独打印 worker 数。 +- PSF FWHM 2.7 px、Moffat beta 4.5、relative tail 1e-8、min-Y=0、max-cache-psf-flux=1e8、 + exposure=1e13;cache 为 64×64 phases、radius 47 px。 +- 用户原始 CPU/HIP 命令使用相同 PNG 输出路径,且 CPU 命令的文件名也带 `full-gpu`; + 原样保留此命名,不根据文件名判断 backend。未来复现应分别指定输出文件名,避免覆盖对照。 + +## 完整运行结果 + +| 项目 | CPU | 优化 HIP | +| --- | ---: | ---: | +| 总墙钟时间 | 1474.32 s(24:34.32) | 533.06 s(8:53.06) | +| user | 22234.08 s | 7733.61 s | +| system | 200.30 s | 61.18 s | +| CPU 百分比 | 1521% | 1462% | +| PSF cache build | 0.676 s | 0.691 s | +| catalog prefetch | 49.253 s | 48.201 s | +| 星像 / cached | 598264924 | 598264924 | +| wing-clipped | 0 | 0 | +| direct fallback | 0 | 0 | +| discarded below min-Y | 0 | 0 | + +总墙钟时间比 `1474.32 / 533.06 = 2.76577`,耗时减少约 **63.84%**,节省 **941.26 秒** +(15 分 41.26 秒)。这是两次工作流的端到端时间比:CPU 包含 tracing 与 lens-map 写出, +HIP 导入文件;没有独立的 CPU PSF 阶段计时,不能把该比值称作严格隔离的 PSF backend 加速比。 + +HIP 全程诊断: + +| 项目 | 结果 | +| --- | ---: | +| producer/splat wall | 481.155 s(frame 日志四舍五入为481.2 s) | +| GPU kernel | 476.906037 s | +| event upload | 1.504570 s | +| HDR download | 0.021966 s | +| batch / timed batch | 36526 / 36526 | +| summed worker generation | 3302.459 s | +| summed worker submission/fallback | 4395.356 s | + +GPU kernel 时间约为 producer/splat wall 的 **99.12%**,kernel 吞吐约 **125.45 万事件/秒**。 +上传占比很小,CPU producer 在中段能够持续供给 GPU;下一步性能工作应优先研究 kernel, +而不是仅增加 CPU worker 或上传带宽。这不单独证明 atomic contention 是 kernel 的主导成本。 + +多数进度行的 submitted−completed=32,768,等于两个 16,384-event staging slot,符合 +有界队列与计时回收的设计。最后全部 36,526 批计时,没有沿用旧版前 64 批采样限制。 + +两个 worker 时间是线程墙钟之和,其中 submission/fallback 包含锁与设备等待: +`3302.459 + 4395.356 = 7697.815 ≈ 16 × 481.155`。不能将它们当作额外串行时间加到 +GPU 或总墙钟时间上,1462% CPU 也不能全部解释为有效计算。 + +## 比较结论 + +本次完整任务确认了优化的实际收益,星像及 PSF 分类计数全部匹配,PNG 比特级一致由用户确认。 +旧 CPU 文档中的计数差异属于不同修复版本,已不构成本次 CPU/HIP 配对的疑点。 +原有完整日志、硬件/构建证据的限制与 tracing/import 差异均保留,不用小规模 kernel 加速比 +替代这里的完整运行结果。 diff --git a/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07/cpu.log b/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07/cpu.log new file mode 100644 index 0000000..096edd2 --- /dev/null +++ b/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07/cpu.log @@ -0,0 +1,23 @@ +❯ time ./build/Release/schwarzschild_sky \ + --psf-relative-tail 1e-8 \ + --psf-min-y 0 \ + --max-cache-psf-flux 1e8 \ + --all-sky-catalog assets/2mass/processed/all_sky \ + --refine-max-level 4 \ + --refine-jacobian-min 0.2 \ + --width 3840 --height 2160 \ + --look-ra-deg 262.5 --look-dec-deg -30 \ + --fov-deg 45 \ + --coarse-cell-pixels 16 \ + --exposure 1e13 \ + --psf-fwhm-pixels 2.7 --psf-moffat-beta 4.5 \ + --catalog-load-workers 4 \ + --observer-radius 100 \ + --hdr-output --lens-map-output output/lens/schwarzschild_galactic_center_R100_45deg_16_4_4k_.grlens \ + --output output/imgs/2mass_galactic_center_schwarzschild_R100_4k_1e13_beta4.5_16_4-full-gpu.png +PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.676 s +Wrote lens map: output/lens/schwarzschild_galactic_center_R100_45deg_16_4_4k_.grlens (65817 vertices, 130882 triangles) +Catalog prefetch: 64440 requested, 64440 newly loaded (343363141 stars), 0 unavailable in 49.253 s; 4 loader workers +Rendered 598264924 images from 343363141 catalog stars to output/imgs/2mass_galactic_center_schwarzschild_R100_4k_1e13_beta4.5_16_4-full-gpu.png (ok) +PSF splats: cached 598264924, cached wing-clipped 0, direct fallbacks 0, discarded below min-Y 0 +./build/Release/schwarzschild_sky --psf-relative-tail 1e-8 --psf-min-y 0 1e8 22234.08s user 200.30s system 1521% cpu 24:34.32 total diff --git a/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07/hip.log b/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07/hip.log new file mode 100644 index 0000000..86a78e4 --- /dev/null +++ b/benchmarks/2mass_galactic_center_cpu_hip_2026-09-07/hip.log @@ -0,0 +1,315 @@ +❯ time ./build/Release/schwarzschild_sky_hip --verbose \ + --psf-relative-tail 1e-8 \ + --psf-min-y 0 \ + --max-cache-psf-flux 1e8 \ + --all-sky-catalog assets/2mass/processed/all_sky \ + --exposure 1e13 \ + --psf-fwhm-pixels 2.7 --psf-moffat-beta 4.5 \ + --catalog-load-workers 4 \ + --hdr-output --lens-map-input output/lens/schwarzschild_galactic_center_R100_45deg_16_4_4k_.grlens \ + --output output/imgs/2mass_galactic_center_schwarzschild_R100_4k_1e13_beta4.5_16_4-full-gpu.png +PSF cache ready: 64x64 phases, radius 47 px, relative tail 1e-08, tail abs 1e-06, boundary 1e-07, build 0.691 s +Frame 0: finding and prefetching catalog tiles... +Catalog prefetch: 64440 requested, 64440 newly loaded (343363141 stars), 0 unavailable in 48.201 s; 4 loader workers +Frame 0: catalog prefetch finished (64440 candidate tiles). +Frame 0: splatting 130882 lens triangles... +Frame 0: splat worker 13/16 started. +Frame 0: splat worker 1/16 started. +Frame 0: splat worker 10/16 started. +Frame 0: splat worker 4/16 started. +Frame 0: splat worker 8/16 started. +Frame 0: splat worker 11/16 started. +Frame 0: splat worker 3/16 started. +Frame 0: splat worker 15/16 started. +Frame 0: splat worker 14/16 started. +Frame 0: splat worker 6/16 started. +Frame 0: splat worker 5/16 started. +Frame 0: splat worker 9/16 started. +Frame 0: splat worker 16/16 started. +Frame 0: splat worker 7/16 started. +Frame 0: splat worker 12/16 started. +Frame 0: splat worker 2/16 started. +Frame 0: splat worker 2/16 reached 8 local triangles. +Frame 0: splat worker 12/16 reached 8 local triangles. +Frame 0: splat worker 10/16 reached 8 local triangles. +Frame 0: splat worker 1/16 reached 8 local triangles. +Frame 0: splat worker 11/16 reached 8 local triangles. +Frame 0: splat worker 5/16 reached 8 local triangles. +Frame 0: splat worker 4/16 reached 8 local triangles. +Frame 0: splat worker 6/16 reached 8 local triangles. +Frame 0: splat worker 9/16 reached 8 local triangles. +Frame 0: splat worker 3/16 reached 8 local triangles. +Frame 0: splat worker 16/16 reached 8 local triangles. +Frame 0: splat worker 7/16 reached 8 local triangles. +Frame 0: splat worker 15/16 reached 8 local triangles. +Frame 0: splat worker 8/16 reached 8 local triangles. +Frame 0: splat worker 13/16 reached 8 local triangles. +Frame 0: splat worker 14/16 reached 8 local triangles. +Frame 0: splat worker 6/16 reached 16 local triangles. +Frame 0: splat worker 10/16 reached 16 local triangles. +Frame 0: splat worker 1/16 reached 16 local triangles. +Frame 0: splat worker 4/16 reached 16 local triangles. +Frame 0: splat worker 16/16 reached 16 local triangles. +Frame 0: splat worker 12/16 reached 16 local triangles. +Frame 0: splat worker 13/16 reached 16 local triangles. +Frame 0: splat worker 5/16 reached 16 local triangles. +Frame 0: splat worker 14/16 reached 16 local triangles. +Frame 0: splat worker 11/16 reached 16 local triangles. +Frame 0: splat worker 7/16 reached 16 local triangles. +Frame 0: splat worker 15/16 reached 16 local triangles. +Frame 0: splat worker 8/16 reached 16 local triangles. +Frame 0: splat worker 2/16 reached 16 local triangles. +Frame 0: splat worker 3/16 reached 16 local triangles. +Frame 0: splat worker 9/16 reached 16 local triangles. +Frame 0: splat worker 12/16 reached 32 local triangles. +Frame 0: splat worker 13/16 reached 32 local triangles. +Frame 0: splat worker 1/16 reached 32 local triangles. +Frame 0: splat worker 4/16 reached 32 local triangles. +Frame 0: splat worker 6/16 reached 32 local triangles. +Frame 0: splat worker 12/16 reached 64 local triangles. +Frame 0: splat worker 13/16 reached 64 local triangles. +Frame 0: splat worker 14/16 reached 32 local triangles. +Frame 0: splat worker 5/16 reached 32 local triangles. +Frame 0: splat worker 10/16 reached 32 local triangles. +Frame 0: splat worker 15/16 reached 32 local triangles. +Frame 0: splat worker 2/16 reached 32 local triangles. +Frame 0: splat worker 7/16 reached 32 local triangles. +Frame 0: splat worker 11/16 reached 32 local triangles. +Frame 0: splat worker 16/16 reached 32 local triangles. +Frame 0: splat worker 3/16 reached 32 local triangles. +Frame 0: splat worker 9/16 reached 32 local triangles. +Frame 0: splat worker 8/16 reached 32 local triangles. +Frame 0: splat worker 1/16 reached 64 local triangles. +Frame 0: splat worker 4/16 reached 64 local triangles. +Frame 0: splat worker 6/16 reached 64 local triangles. +Frame 0: splat worker 14/16 reached 64 local triangles. +Frame 0: splat worker 9/16 reached 64 local triangles. +Frame 0: splat worker 3/16 reached 64 local triangles. +Frame 0: splat worker 16/16 reached 64 local triangles. +Frame 0: splat worker 7/16 reached 64 local triangles. +Frame 0: splat worker 8/16 reached 64 local triangles. +Frame 0: splat worker 11/16 reached 64 local triangles. +Frame 0: splat worker 12/16 reached 128 local triangles. +Frame 0: splat worker 5/16 reached 64 local triangles. +Frame 0: splat worker 13/16 reached 128 local triangles. +Frame 0: splat worker 1/16 reached 128 local triangles. +Frame 0: splat worker 15/16 reached 64 local triangles. +Frame 0: splat worker 10/16 reached 64 local triangles. +Frame 0: splat worker 2/16 reached 64 local triangles. +Frame 0: splat worker 4/16 reached 128 local triangles. +Frame 0: splat worker 9/16 reached 128 local triangles. +Frame 0: splat worker 3/16 reached 128 local triangles. +Frame 0: splat worker 8/16 reached 128 local triangles. +Frame 0: splat worker 6/16 reached 128 local triangles. +Frame 0: splat worker 11/16 reached 128 local triangles. +Frame 0: splat worker 14/16 reached 128 local triangles. +Frame 0: splat worker 16/16 reached 128 local triangles. +Frame 0: splat worker 5/16 reached 128 local triangles. +Frame 0: splat worker 10/16 reached 128 local triangles. +Frame 0: splat worker 7/16 reached 128 local triangles. +Frame 0: splat worker 2/16 reached 128 local triangles. +Frame 0: splat worker 15/16 reached 128 local triangles. +Frame 0: splat worker 13/16 reached 256 local triangles. +Frame 0: splat worker 12/16 reached 256 local triangles. +Frame 0: splat worker 1/16 reached 256 local triangles. +Frame 0: splat worker 4/16 reached 256 local triangles. +Frame 0: splat worker 3/16 reached 256 local triangles. +Frame 0: splat worker 14/16 reached 256 local triangles. +Frame 0: splat worker 8/16 reached 256 local triangles. +Frame 0: splat worker 9/16 reached 256 local triangles. +Frame 0: splat worker 10/16 reached 256 local triangles. +Frame 0: splat worker 5/16 reached 256 local triangles. +Frame 0: splat worker 7/16 reached 256 local triangles. +Frame 0: splat worker 6/16 reached 256 local triangles. +Frame 0: splat worker 16/16 reached 256 local triangles. +Frame 0: splat worker 15/16 reached 256 local triangles. +Frame 0: splat worker 11/16 reached 256 local triangles. +Frame 0: splat worker 2/16 reached 256 local triangles. +Frame 0: splat worker 4/16 reached 512 local triangles. +Frame 0: splat worker 12/16 reached 512 local triangles. +Frame 0: splat worker 13/16 reached 512 local triangles. +Frame 0: splat worker 9/16 reached 512 local triangles. +Frame 0: splat worker 10/16 reached 512 local triangles. +Frame 0: splat worker 8/16 reached 512 local triangles. +Frame 0: splat worker 3/16 reached 512 local triangles. +Frame 0: splat worker 1/16 reached 512 local triangles. +Frame 0: splat worker 14/16 reached 512 local triangles. +Frame 0: splat worker 6/16 reached 512 local triangles. +Frame 0: splat worker 15/16 reached 512 local triangles. +Frame 0: splat worker 5/16 reached 512 local triangles. +Frame 0: splat worker 11/16 reached 512 local triangles. +Frame 0: splat worker 16/16 reached 512 local triangles. +Frame 0: splat worker 7/16 reached 512 local triangles. +Frame 0: splat worker 2/16 reached 512 local triangles. +HIP PSF progress: 4816896 submitted / 4784128 completed events; 292 / 294 batches timed; kernel 4.083 s +Frame 0: splat worker 1/16 reached 1024 local triangles. +Frame 0: splat worker 4/16 reached 1024 local triangles. +Frame 0: splat worker 13/16 reached 1024 local triangles. +Frame 0: splat worker 12/16 reached 1024 local triangles. +Frame 0: splat worker 14/16 reached 1024 local triangles. +Frame 0: splat worker 8/16 reached 1024 local triangles. +Frame 0: splat worker 9/16 reached 1024 local triangles. +Frame 0: splat worker 6/16 reached 1024 local triangles. +Frame 0: splat worker 3/16 reached 1024 local triangles. +Frame 0: splat worker 10/16 reached 1024 local triangles. +Frame 0: splat worker 7/16 reached 1024 local triangles. +Frame 0: splat worker 15/16 reached 1024 local triangles. +Frame 0: splat worker 16/16 reached 1024 local triangles. +Frame 0: splat worker 2/16 reached 1024 local triangles. +HIP PSF progress: 11206656 submitted / 11173888 completed events; 682 / 684 batches timed; kernel 9.065 s +Frame 0: splat worker 11/16 reached 1024 local triangles. +Frame 0: splat worker 5/16 reached 1024 local triangles. +HIP PSF progress: 17547264 submitted / 17514496 completed events; 1069 / 1071 batches timed; kernel 14.057 s +HIP PSF progress: 23838720 submitted / 23805952 completed events; 1453 / 1455 batches timed; kernel 19.045 s +HIP PSF progress: 30081024 submitted / 30048256 completed events; 1834 / 1836 batches timed; kernel 24.036 s +HIP PSF progress: 36306944 submitted / 36274176 completed events; 2214 / 2216 batches timed; kernel 29.028 s +HIP PSF progress: 42483712 submitted / 42450944 completed events; 2591 / 2593 batches timed; kernel 34.020 s +HIP PSF progress: 48660480 submitted / 48627712 completed events; 2968 / 2970 batches timed; kernel 39.014 s +HIP PSF progress: 54755328 submitted / 54722560 completed events; 3340 / 3342 batches timed; kernel 43.998 s +HIP PSF progress: 60850176 submitted / 60817408 completed events; 3712 / 3714 batches timed; kernel 48.971 s +Frame 0: splat worker 14/16 reached 2048 local triangles. +Frame 0: splat worker 12/16 reached 2048 local triangles. +Frame 0: splat worker 4/16 reached 2048 local triangles. +Frame 0: splat worker 9/16 reached 2048 local triangles. +HIP PSF progress: 66977792 submitted / 66945024 completed events; 4086 / 4088 batches timed; kernel 53.963 s +Frame 0: splat worker 1/16 reached 2048 local triangles. +Frame 0: splat worker 3/16 reached 2048 local triangles. +Frame 0: splat worker 8/16 reached 2048 local triangles. +Frame 0: splat worker 16/16 reached 2048 local triangles. +Frame 0: splat worker 7/16 reached 2048 local triangles. +Frame 0: splat worker 13/16 reached 2048 local triangles. +Frame 0: splat worker 5/16 reached 2048 local triangles. +Frame 0: splat worker 15/16 reached 2048 local triangles. +Frame 0: splat worker 2/16 reached 2048 local triangles. +HIP PSF progress: 73138176 submitted / 73105408 completed events; 4462 / 4464 batches timed; kernel 58.945 s +Frame 0: splat worker 6/16 reached 2048 local triangles. +Frame 0: splat worker 10/16 reached 2048 local triangles. +Frame 0: splat worker 11/16 reached 2048 local triangles. +HIP PSF progress: 79216640 submitted / 79183872 completed events; 4833 / 4835 batches timed; kernel 63.931 s +HIP PSF progress: 85393408 submitted / 85360640 completed events; 5210 / 5212 batches timed; kernel 68.919 s +HIP PSF progress: 91537408 submitted / 91504640 completed events; 5585 / 5587 batches timed; kernel 73.903 s +HIP PSF progress: 97779712 submitted / 97746944 completed events; 5966 / 5968 batches timed; kernel 78.894 s +HIP PSF progress: 103890944 submitted / 103858176 completed events; 6339 / 6341 batches timed; kernel 83.877 s +HIP PSF progress: 110215168 submitted / 110182400 completed events; 6725 / 6727 batches timed; kernel 88.859 s +HIP PSF progress: 116506624 submitted / 116473856 completed events; 7109 / 7111 batches timed; kernel 93.844 s +HIP PSF progress: 123224064 submitted / 123191296 completed events; 7519 / 7521 batches timed; kernel 98.830 s +HIP PSF progress: 130007040 submitted / 129974272 completed events; 7933 / 7935 batches timed; kernel 103.809 s +HIP PSF progress: 136577024 submitted / 136544256 completed events; 8334 / 8336 batches timed; kernel 108.791 s +HIP PSF progress: 142950400 submitted / 142917632 completed events; 8723 / 8725 batches timed; kernel 113.777 s +HIP PSF progress: 149487616 submitted / 149454848 completed events; 9122 / 9124 batches timed; kernel 118.758 s +HIP PSF progress: 156352512 submitted / 156319744 completed events; 9541 / 9543 batches timed; kernel 123.748 s +HIP PSF progress: 163250176 submitted / 163217408 completed events; 9962 / 9964 batches timed; kernel 128.732 s +HIP PSF progress: 169689088 submitted / 169656320 completed events; 10355 / 10357 batches timed; kernel 133.705 s +HIP PSF progress: 176259072 submitted / 176226304 completed events; 10756 / 10758 batches timed; kernel 138.691 s +HIP PSF progress: 183222272 submitted / 183189504 completed events; 11181 / 11183 batches timed; kernel 143.674 s +HIP PSF progress: 190251008 submitted / 190218240 completed events; 11610 / 11612 batches timed; kernel 148.656 s +HIP PSF progress: 197181440 submitted / 197148672 completed events; 12033 / 12035 batches timed; kernel 153.645 s +HIP PSF progress: 203554816 submitted / 203522048 completed events; 12422 / 12424 batches timed; kernel 158.639 s +HIP PSF progress: 210452480 submitted / 210419712 completed events; 12843 / 12845 batches timed; kernel 163.627 s +HIP PSF progress: 217448448 submitted / 217415680 completed events; 13270 / 13272 batches timed; kernel 168.608 s +HIP PSF progress: 224083968 submitted / 224051200 completed events; 13675 / 13677 batches timed; kernel 173.601 s +HIP PSF progress: 230670336 submitted / 230637568 completed events; 14077 / 14079 batches timed; kernel 178.581 s +HIP PSF progress: 237600768 submitted / 237568000 completed events; 14500 / 14502 batches timed; kernel 183.570 s +HIP PSF progress: 244121600 submitted / 244088832 completed events; 14898 / 14900 batches timed; kernel 188.555 s +HIP PSF progress: 250937344 submitted / 250904576 completed events; 15314 / 15316 batches timed; kernel 193.537 s +HIP PSF progress: 257392640 submitted / 257359872 completed events; 15708 / 15710 batches timed; kernel 198.520 s +HIP PSF progress: 264028160 submitted / 263995392 completed events; 16113 / 16115 batches timed; kernel 203.508 s +HIP PSF progress: 270680064 submitted / 270647296 completed events; 16519 / 16521 batches timed; kernel 208.496 s +HIP PSF progress: 277184512 submitted / 277151744 completed events; 16916 / 16918 batches timed; kernel 213.465 s +HIP PSF progress: 283721728 submitted / 283688960 completed events; 17315 / 17317 batches timed; kernel 218.447 s +Frame 0: splat worker 14/16 reached 4096 local triangles. +HIP PSF progress: 290193408 submitted / 290160640 completed events; 17710 / 17712 batches timed; kernel 223.428 s +Frame 0: splat worker 16/16 reached 4096 local triangles. +HIP PSF progress: 296779776 submitted / 296747008 completed events; 18112 / 18114 batches timed; kernel 228.403 s +Frame 0: splat worker 2/16 reached 4096 local triangles. +HIP PSF progress: 303333376 submitted / 303300608 completed events; 18512 / 18514 batches timed; kernel 233.386 s +Frame 0: splat worker 13/16 reached 4096 local triangles. +Frame 0: splat worker 10/16 reached 4096 local triangles. +Frame 0: splat worker 7/16 reached 4096 local triangles. +HIP PSF progress: 309755904 submitted / 309723136 completed events; 18904 / 18906 batches timed; kernel 238.369 s +Frame 0: splat worker 4/16 reached 4096 local triangles. +Frame 0: splat worker 5/16 reached 4096 local triangles. +Frame 0: splat worker 8/16 reached 4096 local triangles. +HIP PSF progress: 315932672 submitted / 315899904 completed events; 19281 / 19283 batches timed; kernel 243.183 s +Frame 0: splat worker 3/16 reached 4096 local triangles. +Frame 0: splat worker 11/16 reached 4096 local triangles. +HIP PSF progress: 322338816 submitted / 322306048 completed events; 19672 / 19674 batches timed; kernel 248.175 s +Frame 0: splat worker 1/16 reached 4096 local triangles. +Frame 0: splat worker 6/16 reached 4096 local triangles. +Frame 0: splat worker 9/16 reached 4096 local triangles. +Frame 0: splat worker 15/16 reached 4096 local triangles. +Frame 0: splat worker 12/16 reached 4096 local triangles. +HIP PSF progress: 328597504 submitted / 328564736 completed events; 20054 / 20056 batches timed; kernel 253.161 s +HIP PSF progress: 334741504 submitted / 334708736 completed events; 20429 / 20431 batches timed; kernel 258.149 s +HIP PSF progress: 340819968 submitted / 340787200 completed events; 20800 / 20802 batches timed; kernel 263.138 s +HIP PSF progress: 346865664 submitted / 346832896 completed events; 21169 / 21171 batches timed; kernel 268.124 s +HIP PSF progress: 352894976 submitted / 352862208 completed events; 21537 / 21539 batches timed; kernel 273.097 s +HIP PSF progress: 358973440 submitted / 358940672 completed events; 21908 / 21910 batches timed; kernel 278.083 s +HIP PSF progress: 364986368 submitted / 364953600 completed events; 22275 / 22277 batches timed; kernel 283.074 s +HIP PSF progress: 370900992 submitted / 370868224 completed events; 22636 / 22638 batches timed; kernel 288.068 s +HIP PSF progress: 376946688 submitted / 376913920 completed events; 23005 / 23007 batches timed; kernel 293.054 s +HIP PSF progress: 382844928 submitted / 382812160 completed events; 23365 / 23367 batches timed; kernel 298.052 s +HIP PSF progress: 388923392 submitted / 388890624 completed events; 23736 / 23738 batches timed; kernel 303.033 s +HIP PSF progress: 394772480 submitted / 394739712 completed events; 24093 / 24095 batches timed; kernel 308.019 s +HIP PSF progress: 400621568 submitted / 400588800 completed events; 24450 / 24452 batches timed; kernel 313.006 s +HIP PSF progress: 406536192 submitted / 406503424 completed events; 24811 / 24813 batches timed; kernel 317.991 s +HIP PSF progress: 412499968 submitted / 412467200 completed events; 25175 / 25177 batches timed; kernel 322.978 s +HIP PSF progress: 418316288 submitted / 418283520 completed events; 25530 / 25532 batches timed; kernel 327.973 s +HIP PSF progress: 424148992 submitted / 424116224 completed events; 25886 / 25888 batches timed; kernel 332.964 s +HIP PSF progress: 429948928 submitted / 429916160 completed events; 26240 / 26242 batches timed; kernel 337.956 s +HIP PSF progress: 435961856 submitted / 435929088 completed events; 26607 / 26609 batches timed; kernel 342.950 s +HIP PSF progress: 441942016 submitted / 441909248 completed events; 26972 / 26974 batches timed; kernel 347.936 s +HIP PSF progress: 447741952 submitted / 447709184 completed events; 27326 / 27328 batches timed; kernel 352.922 s +HIP PSF progress: 453541888 submitted / 453509120 completed events; 27680 / 27682 batches timed; kernel 357.894 s +HIP PSF progress: 459390976 submitted / 459358208 completed events; 28037 / 28039 batches timed; kernel 362.875 s +HIP PSF progress: 465387520 submitted / 465354752 completed events; 28403 / 28405 batches timed; kernel 367.848 s +HIP PSF progress: 471400448 submitted / 471367680 completed events; 28770 / 28772 batches timed; kernel 372.843 s +HIP PSF progress: 476987392 submitted / 476954624 completed events; 29111 / 29113 batches timed; kernel 377.672 s +HIP PSF progress: 482525184 submitted / 482492416 completed events; 29449 / 29451 batches timed; kernel 382.488 s +HIP PSF progress: 488357888 submitted / 488325120 completed events; 29805 / 29807 batches timed; kernel 387.481 s +HIP PSF progress: 494190592 submitted / 494157824 completed events; 30161 / 30163 batches timed; kernel 392.467 s +HIP PSF progress: 500432896 submitted / 500400128 completed events; 30542 / 30544 batches timed; kernel 397.454 s +HIP PSF progress: 506445824 submitted / 506413056 completed events; 30909 / 30911 batches timed; kernel 402.437 s +HIP PSF progress: 512344064 submitted / 512311296 completed events; 31269 / 31271 batches timed; kernel 407.423 s +HIP PSF progress: 518455296 submitted / 518422528 completed events; 31642 / 31644 batches timed; kernel 412.408 s +HIP PSF progress: 524484608 submitted / 524451840 completed events; 32010 / 32012 batches timed; kernel 417.391 s +HIP PSF progress: 530628608 submitted / 530595840 completed events; 32385 / 32387 batches timed; kernel 422.377 s +HIP PSF progress: 536739840 submitted / 536707072 completed events; 32758 / 32760 batches timed; kernel 427.370 s +HIP PSF progress: 542867456 submitted / 542834688 completed events; 33132 / 33134 batches timed; kernel 432.358 s +HIP PSF progress: 549044224 submitted / 549011456 completed events; 33509 / 33511 batches timed; kernel 437.340 s +HIP PSF progress: 555220992 submitted / 555188224 completed events; 33886 / 33888 batches timed; kernel 442.323 s +HIP PSF progress: 561397760 submitted / 561364992 completed events; 34263 / 34265 batches timed; kernel 447.309 s +HIP PSF progress: 567607296 submitted / 567574528 completed events; 34642 / 34644 batches timed; kernel 452.300 s +HIP PSF progress: 573849600 submitted / 573816832 completed events; 35023 / 35025 batches timed; kernel 457.284 s +HIP PSF progress: 580124672 submitted / 580091904 completed events; 35406 / 35408 batches timed; kernel 462.268 s +HIP PSF progress: 586432512 submitted / 586399744 completed events; 35791 / 35793 batches timed; kernel 467.253 s +HIP PSF progress: 592773120 submitted / 592740352 completed events; 36178 / 36180 batches timed; kernel 472.247 s +Frame 0: splat worker 14/16 reached 8192 local triangles. +Frame 0: splat worker 16/16 reached 8192 local triangles. +Frame 0: splat worker 2/16 reached 8192 local triangles. +Frame 0: splat worker 13/16 reached 8192 local triangles. +Frame 0: splat worker 10/16 reached 8192 local triangles. +HIP PSF progress: 597475328 submitted / 597442560 completed events; 36465 / 36467 batches timed; kernel 476.352 s +Frame 0: splat worker 11/16 reached 8192 local triangles. +Frame 0: splat worker 3/16 finished after 8097 local triangles. +Frame 0: splat worker 12/16 finished after 7940 local triangles. +Frame 0: splat worker 13/16 finished after 8379 local triangles. +Frame 0: splat worker 1/16 finished after 8046 local triangles. +Frame 0: splat worker 16/16 finished after 8763 local triangles. +Frame 0: splat worker 9/16 finished after 7982 local triangles. +Frame 0: splat worker 11/16 finished after 8200 local triangles. +Frame 0: splat worker 8/16 finished after 8121 local triangles. +Frame 0: splat worker 14/16 finished after 8831 local triangles. +Frame 0: splat worker 4/16 finished after 7936 local triangles. +Frame 0: splat worker 6/16 finished after 8100 local triangles. +Frame 0: splat worker 5/16 finished after 7905 local triangles. +Frame 0: splat worker 15/16 finished after 7625 local triangles. +Frame 0: splat worker 7/16 finished after 8084 local triangles. +Frame 0: splat worker 10/16 finished after 8367 local triangles. +Frame 0: splat worker 2/16 finished after 8506 local triangles. +HIP producers: 16 workers; summed generation 3302.459 s, submission/fallback 4395.356 s; wall 481.155 s +Frame 0: catalog splatting finished in 481.2 s; writing image... +Rendered 598264924 images from 343363141 catalog stars to output/imgs/2mass_galactic_center_schwarzschild_R100_4k_1e13_beta4.5_16_4-full-gpu.png (ok; imported lens map) +PSF splats: cached 598264924, cached wing-clipped 0, direct fallbacks 0, discarded below min-Y 0 +HIP PSF: 598264924 events in 36526 batches (36526 timed); upload 1.504570 s, kernel 476.906037 s, download 0.021966 s +./build/Release/schwarzschild_sky_hip --verbose --psf-relative-tail 1e-8 0 7733.61s user 61.18s system 1462% cpu 8:53.06 total \ No newline at end of file diff --git a/benchmarks/hip_psf_2026-09-07.md b/benchmarks/hip_psf_2026-09-07.md index 42099d1..4ef32c5 100644 --- a/benchmarks/hip_psf_2026-09-07.md +++ b/benchmarks/hip_psf_2026-09-07.md @@ -1,5 +1,9 @@ # HIP PSF 有界排查与优化(2026-09-07) +后续用户完成了全天空 CPU/HIP 配对运行,并确认 PNG 比特级一致;见 +[完整 4K 记录](2mass_galactic_center_cpu_hip_2026-09-07.md),其中记录了本次优化提交的实际 hash。 +本页保留提交前有界排查的原始上下文。 + ## 范围与结论 本次没有运行用户的完整 343,363,141 星 / 598,308,919 星像任务。