# 性能基准 ## 准确性(合成恢复) ![准确性验证](../images/accuracy_verification.png) 均匀全焦点球覆盖的合成事件:无极性错误时 CNCHASH 10/10 恢复已知机制 (Kagan 旋转角中位数约 8 度,即 dang=5 网格离散化的下限);约 10% 极性翻转时 9/10 保持在 25 度接受角内。这些检查是测试套件的一部分 (tests/test_accuracy.py)。 **注意:** 走向差异(40-80 度)是正常的——震源机制有两个互相正交的 节面,都能满足极性数据。 历史 notebook 结果(HASH_Tests.ipynb):CNCHASH 合成试验 300/300 成功 求解;HASH v1.2 60/60(直接运行)。 ## 原生后端测量 本地复现: ```bash python benchmarks/benchmark_backends.py --events 1000 --seconds 2 ``` 在开发机(x86_64, gfortran)上测量。数值为 30 台站、30 次 MC 试验 (`dang=5`)。 ## 线程扩展(可移植构建,30 台站) | 线程 | ms/事件 | 加速比 | 并行效率 | |------|---------|--------|----------| | 1 | 49.5 | 1.00x | 100% | | 2 | 33.0 | 1.50x | 75% | | 4 | 19.4 | 2.56x | 64% | | 8 | 15.5 | 3.19x | 40% | | 16 | 14.0 | 3.53x | 22% | 原生构建(`-DCNCHASH_NATIVE_MARCH=ON`,AVX2)约快 2 倍:1 线程约 23 ms/事件,16 线程约 4 ms/事件。 ## 配置对比(可移植构建,ms/事件) | 配置 | 1 线程 | 4 线程 | |---------------|--------|--------| | small(12 台站)| 39 | 25 | | medium(30 台站)| 49 | 20 | | large(80 台站)| 119 | 41 | | dense(dang=2)| 49 | 19 | | nmc=100 | 156 | 63 | 弱约束事件(台站少、多解)的耗时主要来自 MECH_PROB 聚类,其工作集 行为现已与原始 HASH 一致;并行路径仍有帮助。 ## 与原版 HASH v1.2 对比(同一台机器) | 实现 | ms/事件 | |-----------------------------|---------| | 原版 HASH v1.2(1 线程) | ~145 | | CNCHASH 可移植(1 线程) | ~49 | | CNCHASH 可移植(4 线程) | ~20 | | CNCHASH 原生 AVX2(4 线程) | ~8 | ## 批量模式(medium 配置,可移植构建) | 线程 | 批量 ev/s | 标量 ev/s | 批量加速比 | |------|-----------|-----------|------------| | 1 | 18.6 | 18.7 | 1.00x | | 4 | 56.9 | 42.6 | 1.34x | 数值与机器相关。发布性能声明前请在目标硬件上重新运行基准。