性能基准
准确性(合成恢复)

均匀全焦点球覆盖的合成事件:无极性错误时 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(直接运行)。
原生后端测量
本地复现:
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 |
数值与机器相关。发布性能声明前请在目标硬件上重新运行基准。