LKlight v1.1.0(original,全原子逐对)· LKlight-grid(CPU 网格加速)· LKlight-GPU(CUDA 批量加速)
LKlight 是 Python LightDock(GSO 群智能对接)的 Rust 高性能实现,以“同一内核、三种执行架构”交付:LKlight v1.1.0(全原子逐对,gold reference)、LKlight-grid(CPU 网格,三平台换机即用)、LKlight-GPU(CUDA 批量,Windows/Linux)。三档共享同一命令行、数据格式与物理打分模型。基准要点:网格相对 LKlight v1.1.0评分级加速 10–48×;同 seed 收敛 top-5 解与 LKlight v1.1.0 ±2 Å 100% 重合、排序 Spearman=1.0、vdw 逐位一致;GPU 相对 grid 的打分差异 <1e-5;RNA 大体系单 swarm(20 构象×100 步) LKlight v1.1.0 79.1 s → grid 8.5 s → GPU 7.9 s;规模 N=2000×50 步时 GPU 9.1 s,为 grid(41.8 s)的 4.6×,为 LKlight v1.1.0外推值的约 230×。对照 Python LightDock,加速约 13–107×(开发期同协议实测)。
同一套 GSO 与打分模型的三档产物;切换只影响“用哪块硬件、多快算完”,不影响“算什么、多准”。
| 引擎 | 打分架构 | 平台与二进制 | 定位 / 说明 |
|---|---|---|---|
| LKlight v1.1.0 all-pairs 参考引擎 |
全原子逐对遍历(30 Å 截断) | macOS arm64 / Win x64 / Linux x64,单文件零依赖 | gold reference:论文对照、结果校验、小体系可复现 |
| LKlight-grid v1.1.0 |
近距 ≤10 Å cell-list 精确 + 10–30 Å 远距静电势场查表 | LKlight-mac-arm64 ≈17.7 MB;LKlight-win64.exe ≈22.0 MB(仅 UCRT);LKlight-linux-x64 ≈18.5 MB(static-pie 全静态) |
日常生产默认:评分级约 10–19×,全原子函数最高 48× |
| LKlight-GPU v1.1.0 |
整步全部构象合并一次 CUDA kernel(近距+远距+device 端变换) | LKlight-linux-cuda ≈19.7 MB;LKlight-win64-cuda.exe ≈18.3 MB;仅需 NVIDIA 驱动 |
大负载(≥数百构象/步×长步数)在 grid 之上再快 1.2–4.6×;无 GPU 自动回退 CPU grid,结果等价 |
macOS(Apple Silicon)无 NVIDIA 硬件,故 GPU 档仅提供 Windows / Linux 产物。
加速只改写“求和顺序与执行硬件”,原子对覆盖与物理模型不变。
gridDim.y = 构象数;原子刚体变换在 kernel 内以 f64 完成(与宿主逐位一致)后转 f32。以 LKlight v1.1.0为真值的实测一致性(1AZP 蛋白-DNA、用户 RNA 大体系)。
| 验证项 | 结果 | 说明 |
|---|---|---|
| 12 随机位姿能量误差(含旋转,位移 1–38 Å) | 平均 0.07% / 最大 0.33% | grid vs LKlight v1.1.0 |
| 打分排序一致 | Spearman = 1.0(12/12 同序) | 不翻转任何“谁更好” |
| 同 seed 收敛 top-5 解 | ±2 Å 与 LKlight v1.1.0 100% 重合 | n=20 与 n=150 两档规模 |
| GPU vs grid 打分 | <1e-5(f32 舍入) | 同分解不同硬件 |
| 网格/GPU 二进制输出(蛋白,12 函数) | 11/12 逐字节一致 | dna 走 f32 批量路径,其余同代码同值 |
| 能量标尺系统差 | ≤0.5%(结合位姿)· vdw = 0 | 仅远距场插值,不影响排序 |
数字均来自 2026-09-03 本机/服务器/Windows 实测(详见第 9 节数据文件),非外推(注明者除外)。
| 平台 / 场景 | LKlight v1.1.0 | grid | GPU |
|---|---|---|---|
| macOS · 6×20×100 | 5.01 | 2.56 | — |
| Linux · 单 swarm 1×20×100 | 1.18 | 1.17 | 1.28(ACTIVE) |
| Linux · 6×20×100 | 7.16 | 7.35 | 7.41 |
| Windows · 6×20×100(RTX 2080) | — | 6.14 | 7.25(ACTIVE,每步 20 构象×506 原子) |
蛋白级小体系三引擎≈打平(每 swarm 固定框架开销 ~1.2 s 主导);grid/GPU 收益需由构象数×步数放大(见 4.2–4.3)。
| 评分 | LKlight v1.1.0 | grid | GPU | 加速 |
|---|---|---|---|---|
dna | 79.08 | 8.51 | 7.87(ACTIVE) | grid 9.3× · GPU 10.0× vs LKlight v1.1.0 |
| 构象数 N | LKlight v1.1.0 | grid | GPU | GPU/grid | GPU/LKlight v1.1.0 |
|---|---|---|---|---|---|
| 20 | 40.7 | 7.73 | 7.57 | 1.02× | 5.4× |
| 100 | 126.6 | 9.60 | 7.81 | 1.23× | 16.2× |
| 500 | ~537(外推) | 16.74 | 7.89 | 2.12× | ~68× |
| 1000 | ~1055(外推) | 24.72 | 8.35 | 2.96× | ~126× |
| 2000 | ~2090(外推) | 41.84 | 9.12 | 4.59× | ~230× |
| 5000 / 10000 | —(不现实) | ~93(外推) | 11.49 / 11.38(20 步) | ~8× | — |
LKlight v1.1.0线性增长(每增 1 构象/50 步约 +1.04 s);grid 线性但斜率低一个量级;GPU 在 N=20→2000 仅 7.6→9.1 s 近乎水平——GPU 硬上限实测 N=10,000 可跑,常规安全线取 5,000。
对照 Python LightDock(参考实现):同机单 swarm 100 步 × 200 构象实测 dfire 107.5×、vdw 18.8×、cpydock 14.2×、dna+ANM 13.0×(开发期同协议);用户 RNA 任务 Python >2 h 超时, LKlight-grid ≈22 s 端到端。
RNA 大体系单 swarm 20×100 步(Linux 实测;加速前=该函数在 LKlight v1.1.0语义下的耗时)。
| 函数 | 加速前 | grid v1.1.0 | 加速 | 说明 |
|---|---|---|---|---|
vdw | 50.1 s | 1.04 s | ≈48× | 与 LKlight v1.1.0逐位一致 |
pydock | 114.1 s | 7.61 s | ≈15× | 静电+LJ 网格化 |
cpydock | 114.1 s | 9.72 s | ≈12× | 脱溶精确(6.4 Å 窗口在 cell 内) |
dna | ≈19×(Mac run 级口径) | 8.9 s | — | AMBER94 全原子主路径 |
| dfire / dfire2 / mj3h / pisa / sipper / tobi / sd / ddna | 任何规模 ≤4.8 s(多为 ≤0.2 s) | — | 查表/统计势/自带 cell,天然无瓶颈 | |
GPU 档:批量加速目前仅作用于 dna;其余函数在 GPU 二进制内走与 grid 相同的 CPU 网格路径(输出逐字节一致)。注意:Linux 静态版(musl libm)对 pow 密集函数较慢,sd 实测 11.5 s vs glibc 版 1.28 s(结果一致)——sd 重度场景请用 glibc 构建。
| 场景 | 推荐 | 说明 |
|---|---|---|
| 结果校验 / 论文对照 / 数值真值 | LKlight v1.1.0 | 小体系或单点抽查,绝对可复现 |
| 日常对接 · 无 N 卡 · 流程验证(G≤200) | LKlight-grid | 全平台零依赖;快速测试档 15×150×50 ≈2–3 min |
| 大规模筛选 / 高精度对接(服务器有 N 卡,G≥300、步长≥100) | LKlight-GPU | 高精度档 75×300×150:grid 23.8 min / GPU 10 min(LKlight v1.1.0 >15 h 不可行) |
| 多 swarm 吞吐 | 任一 + tools/run_parallel.py | swarm 相互独立 → 多进程并行,实测 P4 ≈ 线性 4× |
dna:其余 11 个函数在 GPU 版走 CPU grid 路径(结果一致,无 GPU 收益)——让 pydock/cpydock 上 GPU 是明确可做的下一步。sd 等 pow 密集函数(结果一致);dna/vdw/cpydock 不受实质影响。LKlight-GPU/tests/acceptance/(macos / linux / windows_acceptance.txt、protein_e2e_1azp_20260903.txt、three_engine_horizontal_20260903.txt、python_lightdock_note_20260903.txt)PERF_COMPARE_20260902.md(精度/场景/评分函数矩阵)numeric_validation_v2.py)