A heterogeneous OpenCL implementation of AutoDock Vina
[NEWS]: We have released Vina-GPU 2.1, which provides more speed targeting on virtual screening!
[NEWS]: Vina-GPU+: a virtual-screening-accelerated version of Vina-GPU is released together with our Vina-GPU 2.0 toolkit
[NEWS]: A CUDA version of Vina-GPU is avaliable at here
Note: at least one GPU card is required and make sure the version of GPU driver is up to date
Vina-GPU-K.exe
with command ./Vina-GPU-K.exe --config=./input_file_example/2bm2_config.txt
You are supposed to have the docking results 2bm2_out.pdbqt
of our example complex and a Kernel2_Opt.bin
fileKernel2_Opt.bin
file, you can run Vina-GPU.exe
without compiling the kernel files (thus to save more runtime)
When you run
Vina-GPU.exe
, please make sureKernel2_Opt.bin
file are in the same directory
For the usage and limitaiton of Vina-GPU, please check Usage and Limitation. A graphic user interface (GUI) is also provided for Windows users, please check GUI
Visual Studio 2019 is recommended for build Vina-GPU from source
- install boost library (current version is 1.77.0)
- install CUDA Toolkit (current version is v11.5) if you are using NVIDIA GPU cards
Note: the OpenCL library can be found in CUDA installation path for NVIDIA or in the driver installation path for AMD
./lib
./OpenCL/inc
$(YOUR_BOOST_LIBRARY_PATH)/boost
$(YOUR_CUDA_TOOLKIT_LIBRARY_PATH)/CUDA/v11.5/include
in the include directories$(YOUR_BOOST_LIBRARY_PATH)/stage/lib
$(YOUR_CUDA_TOOLKIT_PATH)/CUDA/lib/Win32
in the addtional library OpenCL.lib
in the additional dependencies --config=./input_file_example/2bm2_config.txt
in the command argumentsWIN32
in the preprocessor definitions if necessaryBUILD_KERNEL_FROM_SOURCE
in the preprocessor definitionsNote: ensure the line ending are CLRF
Note: At least 8M stack size is needed. To change the stack size, use ulimit -s 8192
.
install CUDA Toolkit (current version is 11.5) if you are using NVIDIA GPU cards
note: OpenCL library can be usually in /usr/local/cuda
(for NVIDIA GPU cards)
BOOST_LIB_PATH
and OPENCL_LIB_PATH
accordingly in Makefile
set GPU platform GPU_PLATFORM
and OpenCL version OPENCL_VERSION
in Makefile
. some options are given below:
Note: -DOPENCL_3_0 is highly recommended in Linux. To check the OpenCL version on a given platform, use clinfo
.
Macros | Options | Descriptions |
---|---|---|
GPU_PLATFORM | -DNVIDIA_PLATFORM / -DAMD_PLATFORM | NVIDIA / AMD GPU platform |
OPENCL_VERSION | -DOPENCL_3_0 / -DOPENCL_1_2 | OpenCL version 3.0 / 1.2 |
type make clean
and make source
to build Vina-GPU that compile the kernel files on the fly (this would take some time at the first use)
after a successful compiling, Vina-GPU
can be seen in the directory
type ./Vina-GPU --config ./input_file_example/2bm2_config.txt
to run Vina-GPU
once you successfully run Vina-GPU, its runtime can be further reduced by typing make clean
and make
to build it without compiling kernel files (but make sure the Kernel2_Opt.bin
file is unchanged)
other compile options:
Options | Description |
---|---|
-g | debug |
-DDISPLAY_ADDITION_INFO | print addition information |
Note: The running Vina-GPU on macOS is not recommended and has not fully tested yet
- install boost library (current version is 1.77.0) modify
Makefile
as follows:- annotate
OPENCL_LIB_PATH
,OPENCL_INC_PATH
and-L$(OPENCL_LIB_PATH)/lib64
- add
-framework OpenCL
inLIB3
- type
make
and run
Arguments | Description | Default value |
---|---|---|
--config | the config file (in .txt format) that contains all the following arguments for the convenience of use | no default |
--receptor | the recrptor file (in .pdbqt format) | no default |
--ligand | the ligand file (in .pdbqt fotmat) | no default |
--thread | the scale of parallelism (docking lanes) | 1000 |
--search_depth | the number of searching iterations in each docking lane | heuristically determined |
--center_x/y/z | the center of searching box in the receptor | no default |
--size_x/y/z | the volume of the searching box | no default |
Arguments | Description | Limitation |
---|---|---|
--thread | the scale of parallelism (docking lanes) | preferably less than 10000 |
--size_x/y/z | the volume of the searching box | less than 30/30/30 |
A graphic user interface (GUI) is provided for users on Windows OS
Vina-GPU.exe
can run on a terminalVina-GPU.exe
and Kernel2_Opt.bin
files in ./Vina-GPU/GUI/exec
and overwrite the original filesVina-GPU-GUI.exe
file within ./Vina-GPU/GUI
to start up the Vina-GPU GUIstart
button to run Vina-GPU