# show:逐步实现与本次实测 测量时间:2026-10-08T00:28:41.318982+08:00(Asia/Hong_Kong)。所有表格由 `benchmark.py` 自动生成。 CPU:AMD Ryzen 7 5800H,WSL,16 个逻辑线程。GPU 型号见下面逐项输出;编译器、驱动、源码 SHA256 和全部样本保存在 `results/latest.json`。 ## 1. 分段对比:相邻版本在同一负载下测试 主线分成 A、B、C 三组,横线表示更换测试负载。分界两边重复测量衔接版本:A/B 都有 02,B/C 都有 03;只在组内计算速度比。展平实现已移到 experiments,不属于这个阶段。 原来只有 64 个 seed 的极端负载移到 `results/mapping_diagnostics.json`,用于解释并行度,不再作为主线 02→03 的优化倍数。 GPU 各对照版本核对完整 `(seed,x,z)` 命中列表;所有 GPU 命中另由独立 Python Java 算术核验。A/C 与完整 CPU 扫描核对,B 的独立 CPU 验证采用明确列出的窗口。每个版本先跑实际工作量预热,GPU 测量顺序轮换。 CPU 计时包含线程创建、搜索与结果收集;GPU kernel 时间用 CUDA event,scan 时间另含清零、同步与结果回传。两者均不含结果排序,GPU scan 不含一次性的上下文创建及内存分配。 A 的 01→02 用 CPU 搜索时间和 GPU scan 时间比较;B/C 的相邻 CUDA 版本用 kernel 时间比较。B/C 的 CPU 仅用于正确性验证,不列入性能表。 线程映射分段改测时间:2026-10-08T23:15:42.590910+08:00。后面的算法实验沿用上方日期的实测数据,分段实验测量时的源码 SHA256 记录在 metadata.mapping_source_sha256,C 单独复测的源码记录在 metadata.C_source_sha256。 C 组复测时间:2026-10-08T23:58:18.383398+08:00,100 轮轮换测量。 ### A:CPU → 按 seed 的 CUDA `seed=61692151016558` 起共 65,536 个 seed,257×257 个锚点,实心 5×5。候选总数 4,328,587,264。 GPU:NVIDIA GeForce RTX 3060 Laptop GPU。结果完全一致,命中 1 个元组;每版完整预热一次,计时 5 轮。 | 版本 | CPU 搜索/GPU kernel 中位数 | GPU scan 中位数 | | --- | ---: | ---: | | 01 CPU | 3550.398 ms | — | | 02 CUDA/每个 thread 一个 seed | 102.147 ms | 111.110 ms | | 相邻/分支对照 | 同口径速度比(前项时间/后项时间) | | --- | ---: | | 01 → 02(CPU 搜索/GPU scan) | 31.954× | 65536 个 seed 为版本 02 提供足够的独立线程,在 257×257 的完整地图上测量 CPU→CUDA。 --- **测试负载分界:下一组重新测量衔接版本,不跨横线计算加速比。** ### B:大坐标范围的固定坐标策略 `seed=61692151016558` 起共 65,536 个 seed,4097×4097 个锚点,实心 5×5。候选总数 1,100,048,564,224。 GPU:NVIDIA GeForce RTX 3060 Laptop GPU。结果完全一致,命中 1 个元组;每版完整预热一次,计时 5 轮。 | 版本 | CPU 搜索/GPU kernel 中位数 | GPU scan 中位数 | | --- | ---: | ---: | | 02 CUDA/每个 thread 一个 seed | 31598.539 ms | 34152.855 ms | | 03 CUDA/固定坐标,复用多项式后遍历 seed | 17600.387 ms | 19014.153 ms | | 相邻/分支对照 | 同口径速度比(前项时间/后项时间) | | --- | ---: | | 02 → 03(GPU kernel) | 1.795× | 本组使用 65536 个 seed,坐标范围扩大到 4097×4097(16785409 个坐标任务)。02/03 都完整扫描相同的笛卡尔积,GPU 命中列表完全一致。 独立 CPU 核对全部 65536 个 seed 在 `[50941,51197] × [418996,419252]` 的 257×257 窗口;这是窗口验证,不是完整大范围 CPU 重扫。所有 GPU 命中均另作独立精确算术验证。 --- **测试负载分界:下一组重新测量衔接版本,不跨横线计算加速比。** ### C:固定 seed 的坐标扫描与 outer sum `seed=61692151016558` 起共 1 个 seed,8193×8193 个锚点,实心 5×5。候选总数 67,125,249。 GPU:NVIDIA GeForce RTX 3060 Laptop GPU。结果完全一致,命中 1 个元组;每版完整预热一次,计时 100 轮。 | 版本 | CPU 搜索/GPU kernel 中位数 | GPU scan 中位数 | | --- | ---: | ---: | | 03 CUDA/固定坐标,复用多项式后遍历 seed | 2.715 ms | 3.127 ms | | 04 CUDA/tiled outer sum | 1.598 ms | 1.913 ms | | 相邻/分支对照 | 同口径速度比(前项时间/后项时间) | | --- | ---: | | 03 → 04(GPU kernel) | 1.698× | 本组改为固定 seed,重新测量 03 后再比较 04。03、04 均保持固定坐标后遍历 seed 的策略。 随机数性质的探索独立成章,见 [DOCUMENT.md](DOCUMENT.md)。从状态空间、低位依赖和模运算约束推导搜索方法,不列为局部计时优化。 ## 2. 固定 seed:全坐标范围余数过滤 固定 seed `61692151016558`;两轴锚点范围 `[-1875000,1874999]`,总计 14,062,500,000,000 个位置。 完整扫描 2^36 个余数对,保留 180,476 个,展开 36,937,048 个候选,得到 `(51069,419124)`。 | 时间区域 | 中位数 | | --- | ---: | | 余数 GPU kernel(实测) | 2.967 s | | 表准备+kernel+CPU 精查(实测) | 3.622 s | | 独立进程全流程(实测) | 3.939 s | | 按 8193×8193 直接扫描吞吐外推全范围 | 568.7 s | 外推直接 kernel 相对余数实测计算流程约 157.0×。分母包含余数方法的准备和 CPU 精查;没有声称实际跑完直接全范围搜索。 07 沿用 research 的首次输出候选模型,尚未覆盖 Java 拒绝尾部例外。锚点范围允许图案向外延伸四格。 ## 3. 固定坐标:seed 搜索 锚点 `(51069,419124)`、实心 5×5。CPU/CUDA 解析流程均恢复同一组 24 个已知 seed。 | 版本 | 实测规模 | 搜索/kernel 中位数 | 进程全流程中位数 | 完整 2^48 外推 | | --- | --- | ---: | ---: | ---: | | brute_cpu | 2^28 seed | 174.542 ms | 181.317 ms | 183020.0 s | | brute_cuda | 2^34 seed | 386.768 ms | 777.132 ms | 6336.8 s | | solver_cpu | 全部 lower35 候选+upper13 解析 | 1013.310 ms | 1022.607 ms | — | | solver_cuda | 全部 lower35 候选+upper13 解析 | 80.108 ms | 446.468 ms | — | 同 GPU 算法比值:暴力完整空间外推/解析 kernel 约 79,104×。 solver_cpu 的程序内 seconds 计时从通过筛选的低 18 位取值 生成之后开始;进程全流程覆盖全部准备。CUDA 的 milliseconds 为 kernel 时间。 解析流程是首次输出候选模型,不是含全部拒绝尾部分支的严格穷尽。 ### 高 13 位优化的受控拆解 相同的 65536 个连续 lower35 平面,从 `16420645998` 开始。枚举与解析都使用首次输出候选模型,并准确验证最终候选。 这里的 lower35 指世界种子的低 35 位。 | 高位策略 | kernel 中位数 | | --- | ---: | | enumerate_upper13 | 8.793 ms | | analytic_upper13 | 0.087 ms | 完整候选结果相同。局部解析加速 101.024×,只适用于这组供给的 lower35 平面。 ## 复现与边界 ```bash make -C show -j4 python3 show/test_steps.py --gpu python3 show/benchmark.py --repeats 5 ``` GPU 运行需要宿主 GPU 可用。计时期间 GPU 同时承担桌面工作,时钟、温度和系统负载会影响数字;全部原始样本可检查波动。 01–04 精确覆盖被请求的有限输入范围。07/08 的生成器保留研究原型的拒绝尾部覆盖限制;全 seed × 全世界联合生成仍未实现。 本报告不把“潜在笛卡尔积大小”当作实际访问次数,也不把局部加速比连乘。