LKlight:Rust 高性能 LightDock 引擎 —— 技术规格与基准测试

LKlight v1.1.0(original,全原子逐对)· LKlight-grid(CPU 网格加速)· LKlight-GPU(CUDA 批量加速)

文档版本:2026-09-03 引擎版本:LKlight v1.1.0 / LKlight-grid v1.1.0 / LKlight-GPU v1.1.0 许可:GPL-3.0 机器:本机 macOS · Linux 服务器 RTX 3080 Ti/12 核 · Windows Server 2022 + RTX 2080
摘要

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×(开发期同协议实测)。

1引擎家族与交付

同一套 GSO 与打分模型的三档产物;切换只影响“用哪块硬件、多快算完”,不影响“算什么、多准”。

表 1 三档引擎一览(二进制均为单文件发布,见 Release)
引擎打分架构平台与二进制定位 / 说明
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 产物。

2加速原理

加速只改写“求和顺序与执行硬件”,原子对覆盖与物理模型不变。

2.1 打分分解(grid)

2.2 GPU 批量(gpu)

2.3 约束 / 膜 / ANM

3数值契约

以 LKlight v1.1.0为真值的实测一致性(1AZP 蛋白-DNA、用户 RNA 大体系)。

表 2 精度验证(真实体系,同 seed 控制变量)
验证项结果说明
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仅远距场插值,不影响排序

4性能基准

数字均来自 2026-09-03 本机/服务器/Windows 实测(详见第 9 节数据文件),非外推(注明者除外)。

4.1 蛋白-DNA(1AZP)端到端

表 3 完整流程 setup→run→rank→generate 实测(秒)
平台 / 场景LKlight v1.1.0gridGPU
macOS · 6×20×1005.012.56
Linux · 单 swarm 1×20×1001.181.171.28(ACTIVE)
Linux · 6×20×1007.167.357.41
Windows · 6×20×100(RTX 2080)6.147.25(ACTIVE,每步 20 构象×506 原子)

蛋白级小体系三引擎≈打平(每 swarm 固定框架开销 ~1.2 s 主导);grid/GPU 收益需由构象数×步数放大(见 4.2–4.3)。

4.2 RNA 大体系(受体 8,218 + 配体 12,625 原子)

表 4 单 swarm 20 构象 × 100 步(Linux,秒)
评分LKlight v1.1.0gridGPU加速
dna79.088.517.87(ACTIVE)grid 9.3× · GPU 10.0× vs LKlight v1.1.0

4.3 规模极限(RNA 大体系,50 步/列,秒)

表 5 规模扫描与极限(LKlight v1.1.0 3 点实测后线性外推,标注“外推”)
构象数 NLKlight v1.1.0gridGPUGPU/gridGPU/LKlight v1.1.0
2040.77.737.571.02×5.4×
100126.69.607.811.23×16.2×
500~537(外推)16.747.892.12×~68×
1000~1055(外推)24.728.352.96×~126×
2000~2090(外推)41.849.124.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 端到端。

512 评分函数矩阵

RNA 大体系单 swarm 20×100 步(Linux 实测;加速前=该函数在 LKlight v1.1.0语义下的耗时)。

表 6 全原子瓶颈函数全部网格化,其余天然快速
函数加速前grid v1.1.0加速说明
vdw50.1 s1.04 s≈48×与 LKlight v1.1.0逐位一致
pydock114.1 s7.61 s≈15×静电+LJ 网格化
cpydock114.1 s9.72 s≈12×脱溶精确(6.4 Å 窗口在 cell 内)
dna≈19×(Mac run 级口径)8.9 sAMBER94 全原子主路径
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 构建。

6场景选型

表 7 业务场景默认建议(参考耗时来自表 3–5 与整场景实测)
场景推荐说明
结果校验 / 论文对照 / 数值真值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.pyswarm 相互独立 → 多进程并行,实测 P4 ≈ 线性 4×

7已知边界与差距(实测确认,不回避)

8数据来源与复现

  1. 代码与发布:github.com/LK-Studio1128/LKlight(v1.1.0 参考引擎)· LKlight-grid · LKlight-GPU(Release v1.1.0 含二进制)
  2. 验收与基准原始数据:LKlight-GPU/tests/acceptance/(macos / linux / windows_acceptance.txt、protein_e2e_1azp_20260903.txt、three_engine_horizontal_20260903.txt、python_lightdock_note_20260903.txt)
  3. 性能报告:PERF_COMPARE_20260902.md(精度/场景/评分函数矩阵)
  4. 数值一致性验证:LightDock 0.9.4 同协议 48/48 pose、最大差 4.85e-7(开发期,见 numeric_validation_v2.py