Preserve user-provided complete CPU and HIP logs and associate the optimized implementation with e1ec480669. Record matching event counts, user-confirmed bit-identical PNG output, and the 2.77x workflow speedup with tracing/import differences noted.
Mark the pre-artifact-fix CPU benchmark as historical and link the new paired result.
5.1 KiB
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 原始日志:生成并导出 lens map。
- HIP 原始日志:导入同一 lens map;保留全部
worker 进度、每五秒 batch 进度、最终计数及 zsh
time输出,未删减成汇总。
用户确认:两个 PNG 比特级完全一致。 本次归档没有重跑渲染,也没有重新执行文件比较; 原始比较命令和两个 PNG 的 SHA256 未提供。不将 PNG 一致性扩大为完整任务的 linear HDR 逐样本一致性声明。此前有界样本的 HDR 验证另见 有界排查记录。
工作负载与环境
- 主机沿用有界排查的 AMD Radeon RX 9070(gfx1201)与 HIP 7.2 环境;用户说明测试时段无其他 持续负载。完整日志没有独立输出驱动/编译器版本,前期环境证据见 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 加速比 替代这里的完整运行结果。