Pre-built · macOS / Linux / Windows

跨平台 GPU 分子对接引擎
为原项目补齐 Windows/Linux GPU 发行

GPU-Accelerated Molecular Docking Engines with Pre-built Portable Binaries for All Major Platforms

LK-UniDock 是 Uni-DockUniDock-Pro 的跨平台打包发行项目。提供预编译二进制(含 两个原项目尚未提供的 Windows GPU 版本)和适配补丁后的源代码。静态链接 CUDA Runtime、Boost、MSVC CRT,运行时仅需 1 个 DLL。特别感谢 Uni-Dock 与 UniDock-Pro 原项目作者的工作。

2 个 GPU 引擎 3 个平台原生支持 sm_60 → sm_120 GTX 10 → RTX 50 CUDA 12.8 Blackwell 支持
ENGINES · 两款引擎

Uni-Dock 与 UniDock-Pro

LK-UniDock 打包维护两款基于 AutoDock-Vina 的 GPU 分子对接引擎。Uni-Dock 提供经典全局对接与 GPU 批量虚拟筛选;UniDock-Pro 在此基础上增加相似性引导对接与混合模式。

Uni-Dock
v1.1.3
Base · AutoDock-Vina (GPU fork)
  • macOS CPU 全局对接 · 完整支持
  • Linux GPU 虚拟筛选
  • Windows GPU 虚拟筛选(LK-UniDock build)
  • PDBQT / SDF 配体格式
  • ×
    相似性引导对接
  • ×
    混合对接模式
UniDock-Pro
v0.0.1
Base · Uni-Dock (extended fork)
  • macOS CPU:仅 Score / Local 模式
  • Linux GPU 虚拟筛选
  • Windows GPU 虚拟筛选(LK-UniDock build)
  • 相似性引导对接(Similarity-guided)
  • 混合对接模式(Hybrid docking)
  • 详细能量分解输出
BACKGROUND · 研究背景

为什么 GPU 分子对接 需要一个跨平台发行版

Uni-Dock / UniDock-Pro 是国内在 GPU 加速分子对接领域的代表性工作,原项目作者的贡献为社区提供了高质量的 GPU 对接能力。同时部分平台上的安装与依赖还需使用者手工费心配置,LK-UniDock 面向这些部署场景提供一体化发行。

GPU
大规模筛选需 GPU 加速
百万级配体的虚拟筛选在 CPU 上动辄需要数天。Uni-Dock GPU 版本单卡可将时间缩短至数小时,GPU 已成大规模对接的刚需。但 GPU 二进制的跨平台分发一直是痛点。
Win
Windows GPU 版本尚未提供
原项目 dptech-corp/Uni-DockNiBoyang/UniDock-Pro 目前 未提供 Windows GPU 预编译二进制。Windows 用户通常需要借助 WSL2 运行,或自行从源码构建,部署门槛较高。
DLL
动态依赖与环境配置
Windows 原生 build 默认依赖 10+ 个动态库(CUDA Runtime、Boost、VC++ Redist、conda Boost 等),新机器需逐项配置才能完成启动。静态打包可以显著降低这部分运维成本。

面向 Windows GPU 构建的适配工作。 在实际构建 Uni-Dock v1.1.3 与 UniDock-Pro v0.0.1 的 Windows GPU 版本过程中,我们识别并适配了下列几个点:

MSVC + CUDA 12 的头文件交互boost/filesystem/path.hpp 在 CUDA 编译单元中会触发 __std_fs_copy_options 相关问题,原源码在 Windows MSVC 环境下需采用 __CUDACC__ guard 隔离;
conda Boost 与静态打包的适配BUILD_PORTABLE=ON 与 conda 预编译动态 Boost 同时使用时会约束冲突,采用 FETCH_BOOST=ON 策略从源码拉取静态 Boost;
CUDA 11.8 与 Blackwell 架构:GitHub CI 默认的 CUDA 11.8 不覆盖 sm_100 / sm_120(RTX 50),需升级至 CUDA 12.8;
UniDock-Pro 项目补齐NiBoyang/UniDock-Pro 尚未提供 LICENSE 与自动化构建配置,LK-UniDock 同步补齐 Apache 2.0 LICENSE 与 GitHub Actions 构建流程。

Windows 用户的现实选择。 在原项目提供 Linux GPU 版本的前提下,Windows 用户一般通过 WSL2 + CUDA 访问。WSL2 本身表现优秀,但在部分 GPU 上可能会有小幅性能损耗(常见为 10-15%),且需额外配置 CUDA-WSL 驱动栈。对企业科研团队而言,原生 Windows 工作站 + RTX 显卡 + 复制即用 的部署模式依然有价值。

从 RTX 10 到 RTX 50 的硬件跨越。 NVIDIA 近十年发布了 Pascal(sm_60)、Volta(sm_70)、Turing(sm_75)、Ampere(sm_80/86)、Ada Lovelace(sm_89)、Hopper(sm_90)、Blackwell(sm_100/120)七代架构。研发实验室中常混合使用多代显卡,一份二进制覆盖全部架构才能实用。

SIGNIFICANCE · 价值与意义

LK-UniDock 的三重价值

从二进制分发、构建补丁到生态整合,LK-UniDock 让 GPU 分子对接真正"开箱即用"。

📦
补齐 Windows GPU 发行
原项目尚未提供的 Windows GPU 二进制,LK-UniDock 首次系统性提供预编译版本。通过 BUILD_PORTABLE=ON + FETCH_BOOST=ON 策略全静态链接,让 Windows 用户可以不依赖 WSL2 也能使用 GPU 加速。
构建补丁回馈社区
将 MSVC + CUDA 12 的 __CUDACC__ guard 补丁、CMake 跨平台选项、macOS OpenMP 静态链接、UniDock-Pro LICENSE 与 CI 补全均以开源形式发布,欢迎原项目及社区取用 / PR 回上游,为整个 Uni-Dock 生态提供可复用的构建基础设施。
🖥
RTX 10 → RTX 50 全覆盖
采用 CUDA 12.8 构建,支持 sm_60 到 sm_120 全部架构。一份二进制覆盖 GTX 1060 到 RTX 5090(Blackwell),适配研发实验室中常混合使用多代显卡的真实场景。
生态意义:LK-UniDock 不改变 Uni-Dock / UniDock-Pro 原项目的核心算法与实现,将性能与质量的功劳完全归于原作者;LK-UniDock 仅为打包分发与跨平台适配,让 GPU 分子对接在 Windows / mac 上也能复制即用。
ADVANTAGES · 发行版本优势

LK-UniDock vs 从源码自行编译

下表对比预编译发行版与“从原项目源码自行编译”、“WSL2 方案”三者。原项目本身质量优秀;LK-UniDock 关注的是在不同平台上降低部署门槛。

能力维度 LK-UniDock 预编译 原项目源码自编译 WSL2 方案
Windows GPU 可用性 ✓ 预编译 exe 需适配 MSVC + CUDA 12 构建 需安装 WSL2 + CUDA-WSL
部署时间 < 1 分钟(解压) 数小时(首次构建) 30 分钟 ~ 数小时
依赖安装 零(静态打包) CUDA + Boost + MSVC 全套 WSL2 + Linux 工具链
运行时 DLL 数 1(vcomp140.dll) 10+ Linux 动态库
GPU 性能 原生 100% 原生 100% 原生 85~90%(常见 WSL 损耗)
Blackwell(RTX 50) ✓ sm_100/120 支持 需 CUDA 12.8+ 配置 需 CUDA 12.8 WSL 驱动
跨机器可移植 ✓ 复制即用 需重复构建或备齐 DLL 需在每台机器配 WSL
UniDock-Pro 发行 ✓ 同步补齐 LICENSE + CI 需自行适配 同 Linux 方案
许可证合规 Apache 2.0 明确 与原项目一致 与原项目一致
macOS Apple Silicon ✓ CPU 版预编译 需安装 brew + libomp 不支持
核心定位:LK-UniDock 完全保留 Uni-Dock / UniDock-Pro 原项目的核心算法与实现,只面向 跨平台预编译与一键部署 场景补位。对 Windows 企业工作站、多代 GPU 架构混合的实验室、以及需多台机器快速部署的场景提供开箱即用体验。
PRE-BUILT · 预编译二进制

三平台 开箱即用

Releases 页面下载对应平台的预编译包,解压即可运行。macOS arm64 为 CPU 版本;Linux 与 Windows 提供 GPU 加速版本。

🍎 macOS arm64
Apple Silicon · M1/M2/M3
UniDock-macos-arm64.tar.gz
Uni-Dock, UniDock-Pro
需求:macOS 12+ · 无需 GPU
🐧 Linux x86_64
GPU · NVIDIA CUDA
UniDock-linux86.tar.gz
Uni-Dock-GPU, UniDock-Pro-GPU, split
需求:NVIDIA Driver ≥ R522 + CUDA
🪟 Windows x64
GPU · Portable
UniDock-win64.zip
Uni-Dock-GPU.exe, UniDock-Pro-GPU.exe, vcomp140.dll
需求:NVIDIA Driver ≥ R528
WINDOWS GPU · 独家优势

原项目尚未提供,LK-UniDock 静态打包补齐

原项目目前 未发布 Windows GPU 预编译二进制。LK-UniDock 通过全静态链接构建补齐这部分:CUDA Runtime、Boost、MSVC CRT 全部静态嵌入,运行时仅需 vcomp140.dll

WINDOWS GPU PORTABLE BUILD

10+ 个动态依赖仅 1 个

组件 LK-UniDock build 原项目 GitHub release
Windows GPU binary 提供 尚未提供
CUDA Runtime 静态嵌入(无需安装) 动态 DLL(需 CUDA Toolkit)
Boost 静态嵌入 FETCH_BOOST=ON 动态 conda DLL
MSVC CRT 静态嵌入 BUILD_PORTABLE=ON 需 VC++ Redist
运行时 DLL 依赖 仅 1 个:vcomp140.dll(bundled) 10+ 个,需逐一配置
CUDA 架构 sm_60 → sm_120(GTX 10 → RTX 50) 取决于 CI 配置
可移植性 ✓ 复制 exe + dll,任意机器运行 需同步部署运行时环境
GPU ARCHITECTURES · 显卡支持

PascalBlackwell
一份二进制全覆盖。

Windows / Linux GPU 构建支持 sm_60 到 sm_120 全部架构。CUDA 12.8 构建带来 Blackwell(RTX 50)支持,一个二进制覆盖 GTX 10 到 RTX 50。

架构 代表 GPU 支持
sm_60 / sm_61GTX 1060 / GTX 1080 Ti(Pascal)
sm_70Tesla V100 / Titan V(Volta)
sm_75RTX 20 系列 / T4(Turing)
sm_80 / sm_86RTX 30 系列 / A100(Ampere)
sm_89RTX 40 系列 / L40(Ada Lovelace)
sm_90H100(Hopper)
sm_100 / sm_120RTX 50 / Blackwell(CUDA 12.8 构建)

💡 最小驱动要求:Windows GPU 二进制需要 NVIDIA Driver ≥ R528(2022 年末发布)。RTX 50(Blackwell)额外需要 ≥ R570。

QUICK START · 快速开始

三种典型对接场景

单配体全局对接、GPU 批量虚拟筛选、以及 UniDock-Pro 的相似性引导 / 混合模式。

# ───── Uni-Dock:单配体全局对接(CPU · macOS / Linux / Windows)───── ./Uni-Dock \ --receptor receptor.pdbqt \ --ligand ligand.pdbqt \ --center_x 15.19 --center_y 53.90 --center_z 16.92 \ --size_x 20 --size_y 20 --size_z 20 \ --out output.pdbqt \ --exhaustiveness 8 \ --num_modes 9 # ───── Uni-Dock-GPU:批量虚拟筛选(Linux / Windows · 需 NVIDIA GPU)───── ./Uni-Dock-GPU \ --receptor receptor.pdbqt \ --gpu_batch lig1.pdbqt lig2.pdbqt lig3.pdbqt \ --center_x 15.19 --center_y 53.90 --center_z 16.92 \ --size_x 25 --size_y 25 --size_z 25 \ --dir output_dir/ \ --exhaustiveness 32 # ───── 大规模筛选:配体索引文件 ───── ./Uni-Dock-GPU --receptor receptor.pdbqt \ --ligand_index ligands.txt \ --center_x X --center_y Y --center_z Z \ --size_x 20 --size_y 20 --size_z 20 \ --dir output_dir/
# ───── UniDock-Pro:Score 模式(CPU · macOS 支持)───── ./UniDock-Pro \ --receptor receptor.pdbqt \ --ligand ligand.pdbqt \ --center_x 15.19 --center_y 53.90 --center_z 16.92 \ --size_x 20 --size_y 20 --size_z 20 \ --score_only # 输出包含详细能量分解: # Score: -18.118 kcal/mol # (1) Final Intermolecular Energy: -17.634 kcal/mol # (2) Final Total Internal Energy: -0.485 kcal/mol # (3) Torsional Free Energy: 5.121 kcal/mol # ───── 相似性引导对接(需 CUDA)───── ./UniDock-Pro-GPU \ --receptor receptor.pdbqt \ --gpu_batch candidates.pdbqt \ --reference_ligand known_active.pdbqt \ --similarity_searching # ───── 混合模式(相似性 + 自由对接)───── ./UniDock-Pro-GPU \ --receptor receptor.pdbqt \ --gpu_batch candidates.pdbqt \ --reference_ligand known_active.pdbqt \ --hybrid_mode
KEY PARAMETERS · 关键参数

常用选项一览

参数 默认值 说明
Uni-Dock
--exhaustiveness8搜索彻底性(越大越准、越慢)
--num_modes9最大输出构象数
--energy_range3.0能量窗口(kcal/mol)
--scoringvina评分函数:vina / vinardo / ad4
--score_only仅评估当前 pose,不搜索
--local_only仅局部优化
UniDock-Pro 额外参数
--reference_ligand相似性引导对接的参考配体
--similarity_searching启用相似性搜索引导
--hybrid_mode混合模式(相似性 + 自由对接)
--max_gpu_memoryall限制 GPU 内存使用(MB)
--refine_step3精化步数
VS ORIGINAL · 与原项目的差异

LK-UniDock 在原项目上进行了哪些适配

LK-UniDock 的源码基于 Uni-Dock / UniDock-Pro 原项目,主要进行了几个跨平台构建适配,以便 MSVC + CUDA 12 环境下能顺利构建、以及支持静态打包(portable build)。所有修改均以开源形式发布,欢迎原项目及社区取用。

PATCH 1
Boost Filesystem CUDA Guard
src/lib/common.hboost/filesystem/path.hpp 在 MSVC + CUDA 12 下会引发 __std_fs_copy_options 相关构建错误。添加 __CUDACC__ guard 隔离。
PATCH 2
File I/O CUDA Guard
src/lib/file.h 应用同样的 __CUDACC__ guard,防止 CUDA TU 通过 file.h 间接引入 Boost filesystem 头。
PATCH 3
Cache Headers 改造
cache.h / ad4cache.h 中 Boost filesystem #include 下移到 .cpp 文件,防止 monte_carlo.cu 链式导入。
PATCH 4
CMakeLists 跨平台扩展
新增 CMP0167FORCE_CPU_ONLYBUILD_PORTABLEFETCH_BOOST、macOS OpenMP 检测、CUDA sm_100/120 自动检测、/utf-8 MSVC 标志等。
PATCH 5
构建脚本
新增 build_mac.sh(macOS CPU)、build_linux.sh(Linux CPU + GPU)、build_windows.bat(Windows CPU + GPU Portable)。
PATCH 6
UniDock-Pro 项目补齐
原项目尚未提供 LICENSE,LK-UniDock 同步补齐 Apache 2.0;补全 .github/workflows/build.yml CI 工作流;MSVC/CUDA 补丁同步。相关改动可 PR 回原项目。
项目 原项目 dptech-corp/Uni-Dock LK-UniDock
源码版本v1.1.3v1.1.3(同源)
Windows GPU 预编译尚未提供✓ 提供
CUDA 版本11.8(GitHub CI)12.8(支持 RTX 50 / Blackwell)
CUDA Runtime动态(需 CUDA Toolkit)静态嵌入
Boost动态(需 conda / vcpkg)静态嵌入 FETCH_BOOST=ON
MSVC CRT动态(需 VC++ Redist)静态嵌入 BUILD_PORTABLE=ON
Windows 运行时 DLL 数10+1(vcomp140.dll
MSVC + CUDA 环境适配需手工处理✓ 已通过 __CUDACC__ guard 适配
BUILD · 源码构建

从源码构建三平台完整版本

要求:CMake 3.16+,C++17(GCC 7+ / Clang 5+ / MSVC 2019+),Boost 1.72+(可自动 fetch),CUDA Toolkit 11.8+(GPU 构建)。

# ───── macOS(CPU-only,Apple Silicon 不支持 NVIDIA CUDA)───── brew install cmake boost libomp cd Uni-Dock-main && bash build_mac.sh --clean cd UniDock-Pro-main && bash build_mac.sh --clean # 输出:dist/Uni-Dock 和 dist/UniDock-Pro(仅系统库依赖,完全可移植) # ───── Linux(CPU + GPU)───── bash build_linux.sh # 同时构建 CPU + GPU 版本 bash build_linux.sh --cpu-only # 仅 CPU bash build_linux.sh --gpu-only # 仅 GPU(需 CUDA 11.8+) bash build_linux.sh --fetch-boost # 自动下载 Boost # ───── Windows GPU Portable Build(推荐)───── # 必须在 x64 Native Tools Command Prompt for VS 2022 中运行 # 要求:Visual Studio 2022 + CUDA Toolkit 12.8 set CUDA_PATH=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.8 set CUDACXX=%CUDA_PATH%\bin\nvcc.exe set PATH=%CUDA_PATH%\bin;%PATH% cd Uni-Dock-main cmake -S unidock -B build_portable ^ -G "Visual Studio 17 2022" -A x64 ^ -T cuda="%CUDA_PATH%" ^ -DFETCH_BOOST=ON ^ -DBUILD_PORTABLE=ON ^ -DCMAKE_BUILD_TYPE=Release cmake --build build_portable --config Release -j # 预期输出: # [Uni-Dock] CUDA found: .../v12.8/bin/nvcc.exe. Building GPU-accelerated version. # [Uni-Dock] BUILD_PORTABLE=ON: using static CUDA runtime. # [Uni-Dock] CUDA >= 12.8 detected: enabling sm_100/sm_120 for Blackwell. # # 结果:build_portable\Release\unidock.exe(仅需 vcomp140.dll 运行)
TROUBLESHOOTING · 常见构建错误

遇到报错对号入座

错误信息 原因 解决方案
[CPU-only build] GPU batch docking unavailable CUDA 未检测到 使用 -DCMAKE_CUDA_COMPILER=... 显式指定 nvcc
boost/filesystem/path.hpp 编译错误 CUDA TU 导入 Boost filesystem 应用 __CUDACC__ guard(此仓库已包含)
boost_thread.lib (shared, Boost_USE_STATIC_LIBS=ON) conda Boost + BUILD_PORTABLE=ON 冲突 使用 -DFETCH_BOOST=ON 跳过 conda Boost
nvcc fatal: Unsupported gpu architecture 'compute_60' CUDA 13+ 已移除 Pascal / Volta 使用 CUDA 12.8
CMake CUDA 检测失败(即使 nvcc 在 PATH) -T cuda="..." 路径含空格 使用 -DCMAKE_CUDA_COMPILER=full\path\to\nvcc.exe

开始 GPU 加速 虚拟筛选

LK-UniDock 基于 Apache 2.0 许可证开源发行。预编译二进制覆盖 macOS arm64、Linux x86_64、Windows x64 三平台。Windows GPU 版本全静态链接,复制即用。核心算法与实现来自 Uni-Dock 与 UniDock-Pro 原项目,特此致谢。