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

LKlight(参考引擎,全原子逐对,v1.2.0)· LKlight-grid(CPU 网格加速,v1.2.0)· GPU 版本(LKlight-GPU,CUDA / Metal 双后端,v1.2.2)

文档版本:2026-09-06 引擎版本:LKlight v1.2.0 / LKlight-grid v1.2.0 / LKlight-GPU v1.2.2 许可:GPL-3.0 机器:Mac mini M4(Apple Silicon,Metal GPU)· Linux 服务器 RTX 3080 Ti/12 核 · Windows Server 2022 + RTX 2080 · Windows + RTX 5090
摘要

LKlight 是 Python LightDock(GSO 群智能对接)的 Rust 高性能实现,以“同一内核、三种执行架构”交付:LKlight(参考引擎,全原子逐对,v1.2.0)、LKlight-grid(CPU 网格,四平台换机即用)、GPU 版本(LKlight-GPU)——同一 GPU 引擎提供 NVIDIA CUDA 与 Apple Silicon Metal 两个后端(v1.2.2),实现级把“GPU 加速”覆盖到 Windows / Linux / macOS 全平台。三档共享同一命令行、数据格式与物理打分模型。基准要点(全部真机实测,见第 8 节数据来源):

  • v1.2.0 起远场网格加密到 0.5 Å(默认):远场插值最大误差 9.6 → 6.94 能量单位(约 1.4× 收紧),vdw 保持逐位一致。
  • 同机同批 1,000 萤火虫 × 1,000 步(10⁶ 位姿-步,1AZP):LKlight 128.41 s → LKlight-grid 37.01 s → GPU 版(CUDA)4.05 s,端到端 31.7× / 9.1×;该 4.05 s 来自对一次缓存缺陷的修复(早期内部构建同批 267.6 s,修复后不改变任何打分、最优能量逐位不变)。
  • Apple Silicon 也能 GPU 加速(Metal 后端):同批在 Mac mini M4 上 6.22 s 完成(其 CPU grid 47.10 s、LKlight 219.29 s → 7.6× / 35.3×),无 NVIDIA 设备同样享受 GPU 加速。
  • 跨平台逐位一致:Windows RTX 5090 / Linux RTX 3080 Ti / macOS M4 三地最优能量逐位相同(GPU best −7254.9516108,CPU grid −7254.95220161,差 <1e-5 f32 舍入);Metal best 与 CUDA best 逐位一致(同源 kernel)。
  • 同架构换机即用:二进制仅依赖系统库(macOS 仅 libSystem / Metal / Foundation),洁净目录与任意路径复跑结果逐位一致,无机器绑定。
  • RNA 大体系单 swarm(20 构象 × 100 步) grid 相对 LKlight 提速约 10–48×;同 seed 收敛 top-5 解 ±2 Å 100% 重合、排序 Spearman=1.0(v1.1.0 时代指标,v1.2.x 同源保持)。

1引擎家族与交付

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

表 1 三档引擎一览(二进制均为单文件发布,见 Release;引擎命名统一:LKlight / LKlight-grid / GPU 版本 LKlight-GPU)
引擎打分架构平台与二进制定位 / 说明
LKlight
v1.2.0 · 参考引擎
全原子逐对遍历(30 Å 截断) macOS arm64 / Win x64 / Linux x64,单文件零依赖 gold reference:论文对照、结果校验、小体系可复现
LKlight-grid
v1.2.0
近距 ≤10 Å cell-list 精确 + 10–30 Å 远距静电势场查表(v1.2.0 起 0.5 Å 场,默认) LKlight-v1.2.0-mac-arm64 ≈17.7 MB;LKlight-win64.exe;LKlight-linux-x64(static-pie 全静态) 日常生产默认:评分级约 10–19×,全原子函数最高 48×;四平台换机即用
LKlight-GPU
GPU 版本 · v1.2.2
整步全部构象合并一次 GPU kernel(近距+远距+device 端变换);CUDA(NVIDIA)与 Metal(Apple Silicon)同源双后端 CUDA:LKlight-win64-cuda.exe / LKlight-linux-cuda(v1.2.0,仅需驱动);Metal:LKlight-mac-arm64-metal ≈17.7 MB(仅系统框架) 大负载(≥数百构象/步×长步数)在 grid 之上再快约 7.6–31×;无 GPU 自动回退 CPU grid,结果等价

GPU 版为 Apple Silicon 提供 Metal 后端(v1.2.1 起):macOS 无 NVIDIA,但仍可借助集成 GPU 加速(同源 kernel 逐行移植,Metal best 与 CUDA best 逐位一致);CUDA 后端面向 Windows / Linux NVIDIA 主机。任一主机无可用 GPU 时自动回退 CPU grid 路径,结果不变。

2加速原理

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

2.1 打分分解(grid)

2.2 GPU 批量(gpu)

2.3 约束 / 膜 / ANM

3数值契约

以 LKlight 为真值的实测一致性(v1.1.0 采集口径,v1.2.x 同源保持)(1AZP 蛋白-DNA、用户 RNA 大体系)。

表 2 精度验证(真实体系,同 seed 控制变量;标 ★ 行为 v1.2.0 / v1.2.2 新增口径)
验证项结果说明
★ 远场插值误差逐函数审计(v1.2.0,0.5 Å 场,1AZP 31 decoy)9/12 逐字节一致;dna / pydock / cpydock 共享有界 max 6.94(中位 2.50)能量单位v1.1.0(1.0 Å 场)同口径 max 9.6 → 0.5 Å 收紧约 1.4×
★ 三平台最优能量逐位一致(1AZP dna,1,000×1,000 同批)Windows RTX 5090 = Linux RTX 3080 Ti = macOS M4GPU −7254.9516108;CPU grid −7254.95220161(差 <1e-5 f32 舍入)
★ Metal vs CUDA 最优能量(v1.2.1)逐位一致MSL kernel 逐字移植 CUDA 数值,GPU 结果与厂商无关
★ 缓存修复不改变打分(v1.2.0)最优能量与修复前逐位相同267.6 s → 4.05 s 为纯实现级提速,零打分变化
12 随机位姿能量误差(含旋转,位移 1–38 Å)平均 0.07% / 最大 0.33%grid vs LKlight(v1.1.0 口径,v1.2.x 同源保持)
打分排序一致Spearman = 1.0(12/12 同序)不翻转任何“谁更好”
同 seed 收敛 top-5 解±2 Å 与 LKlight 100% 重合n=20 与 n=150 两档规模
GPU vs grid 打分<1e-5(f32 舍入)同分解不同硬件
网格/GPU 二进制输出(蛋白,12 函数)11/12 逐字节一致dna 走 f32 批量路径,其余同代码同值
能量标尺系统差≤0.5%(结合位姿)· vdw = 0仅远距场插值,不影响排序

4性能基准

4.0 为 v1.2.0 / v1.2.1 最新同场验收(2026-09-06 采集);4.1–4.3 为 v1.1.0 era 在 Linux RTX 3080 Ti 上采集的规模扫描(1.0 Å grid 口径;v1.2.x 同源结构保持——远场 0.5 Å 精度更高、GPU 批路径经缓存修复后只快不变、最优能量不变)。

4.0 同场 1,000 × 1,000 高吞吐验收(v1.2.0 / v1.2.1,最新)

表 3 同一 1AZP·dna 批(1,000 萤火虫 × 1,000 步 = 10⁶ 位姿-步,seed 324324),一机一批实测墙钟(秒)
主机LKlightLKlight-gridGPU 版(后端)GPU/gridGPU/LKlight
Windows + RTX 5090(32 GB,Blackwell sm_120)128.4137.014.05(CUDA)9.1×31.7×
macOS Mac mini M4(10 核,Apple Silicon)219.2947.106.22(Metal,v1.2.1)7.6×35.3×

GPU 4.05 s 为缓存修复后实测(早期内部构建同批 267.6 s;修复不改变任何打分,best 逐位不变,见 §7)。两主机 CPU 行均为 v1.2.0 同参数、同 PDB、同 seed;GPU/CPU-grid/LKlight 三档 best 与 Linux RTX 3080 Ti 逐位一致(表 2)。Mac M4 无 NVIDIA 设备即达 7.6× grid——Metal 后端把 GPU 加速带到 Apple 平台。GPU 单步(1000 构象批打分)≈4–6 ms;跨平台同批数据与驱动器见第 8 节归档。

4.1 蛋白-DNA(1AZP)端到端(v1.1.0 era 采集)

表 4 完整流程 setup→run→rank→generate 实测(秒;小体系三引擎≈打平为框架开销主导)
平台 / 场景LKlightLKlight-gridGPU 版
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.0 与 4.2–4.3)。

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

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

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

表 6 规模扫描与极限(LKlight 3 点实测后线性外推,标注“外推”;v1.2.x GPU 批路径经缓存修复只会更快)
构象数 NLKlightLKlight-gridGPU 版GPU/gridGPU/LKlight
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 线性增长(每增 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 实测,v1.1.0 era 采集;加速前=该函数在 LKlight 全原子语义下的耗时)。

表 7 全原子瓶颈函数全部网格化,其余天然快速
函数加速前LKlight-grid加速说明
vdw50.1 s1.04 s≈48×与 LKlight 逐位一致
pydock114.1 s7.61 s≈15×静电+LJ 网格化
cpydock114.1 s9.72 s≈12×脱溶精确(6.4 Å 窗口在 cell 内)
dna≈19×(Mac run 级口径)8.9 s—AMBER94 全原子主路径;GPU 批量(CUDA+Metal)自 dna 起始,现与 vdw/pydock/cpydock 共享按族参数化 kernel
dfire / dfire2 / mj3h / pisa / sipper / tobi / sd / ddna任何规模 ≤4.8 s(多为 ≤0.2 s)—查表/统计势/自带 cell,天然无瓶颈

GPU 版:批量加速覆盖全部四个全原子族——dna/vdw/pydock/cpydock,CUDA 与 Metal 双后端同构(按族参数化 batch kernel,cpydock 另含两阶段去溶剂化)。1,000×1,000 实测:M4 上 6.99 s / 5.42 s / 7.02 s / 26.9 s(对 CPU grid 6.7× / 6.8× / 6.1× / 7.5×),3080Ti CUDA 对 cpydock 27.8×;各族 best 能量差在 f32 预算内(vdw ≈2.5e-4、pydock ≈3.5e-4、cpydock ≈1.5e-4 绝对值,dna 逐位一致)。其余 8 个查表/统计势函数(dfire … ddna)exact 即 ≤4.8 s(多为 ≤0.2 s),无瓶颈,在 GPU 二进制内走与 LKlight-grid 相同的 CPU 网格路径(输出逐字节一致)。注意:Linux 静态版(musl libm)对 pow 密集函数较慢,sd 实测 11.5 s vs glibc 版 1.28 s(结果一致)——sd 重度场景请用 glibc 构建。

6场景选型

表 8 业务场景默认建议(参考耗时来自表 3–6 与整场景实测)
场景推荐说明
结果校验 / 论文对照 / 数值真值LKlight小体系或单点抽查,绝对可复现
日常对接 · 无 GPU · 流程验证(G≤200)LKlight-grid四平台零依赖;快速测试档 15×150×50 ≈2–3 min
Apple Silicon Mac 大规模(G≥300、步长≥100)GPU 版(Metal 后端)v1.2.1:1,000×1,000 同批 6.22 s(7.6× grid),无需 NVIDIA 设备
大规模筛选 / 高精度对接(NVIDIA 服务器,G≥300、步长≥100)GPU 版(CUDA 后端)1,000×1,000 同批 4.05 s(31.7× LKlight / 9.1× grid,RTX 5090);高精度档 75×300×150:LKlight-grid 23.8 min / GPU 10 min(LKlight >15 h 不可行)
多 swarm 吞吐任一 + tools/run_parallel.pyswarm 相互独立 → 多进程并行,实测 P4 ≈ 线性 4×

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

8数据来源与复现

  1. 代码与发布:github.com/LK-Studio1128/LKlight(v1.2.0 参考引擎)· LKlight-grid(v1.2.0)· LKlight-GPU(GPU 版本;Release v1.2.2 含 LKlight-mac-arm64-metal 与 LKlight-mac-arm64-cpu;Windows/Linux CUDA 资产见 v1.2.0 Release)
  2. 最新同场验收数据:LKlight论文/functest/ht1000_regression_summary.csv(5090 / M4 / 洁净复跑四档矩阵)、ht1000_summary_5090.csv、ht1000_mac/ht1000_summary_mac.csv、ht1000_metal/(Metal 引擎与运行日志)、TEST_REPORT_20260906.md(全面回归报告:便携性 / 逐位一致 / 回退验证)
  3. 复现驱动器:functest/win_drive.ps1(三档同参驱动器)· functest/ht1000_mac/mac_drive_ht1000.sh(Mac 版)· functest/make_fig7.py(同场基准图)
  4. 验收与基准原始数据(v1.1.0 era 亦归档):LKlight-GPU/tests/acceptance/(macos / linux / windows_acceptance.txt、protein_e2e_1azp、three_engine_horizontal、python_lightdock_note)
  5. 性能报告:GPU_BENCH_20260902.md(GPU 批量与缓存修复 267.6→4.05 s)· PERF_COMPARE_20260902.md(精度/场景/评分函数矩阵)· RELEASE_NOTES_v1.2.1.md(Metal 后端与实测)
  6. 数值一致性验证:LightDock 0.9.4 同协议 48/48 pose、最大差 4.85e-7(开发期,见 numeric_validation_v2.py);v1.2.0 0.5 Å 逐函数审计见论文 §3.7(functest/equiv_full_summary.csv)