Repository navigation
Guideline for developers
Leonardo Solis V edited this page Nov 16, 2020
·
11 revisions
% tree -L 1
.
├── bin
├── common
├── device
├── examples
├── host
├── input
├── wrapcl
├── Makefile
├── ...bin/: Linux binary files are placed here once compiled.
| File | Description |
|---|---|
autodock_<type>_<N>wi |
Binary file for <type> (cpu, gpu) device with <N> (16, 32, 64, 128, 256) work items |
common/: common header files for host and device.
| File | Description |
|---|---|
| calcenergy_basic.h | Basic defines and macros for energy calculation |
| defines.h | Basic defines for energy calculation and kernels optimization |
device/: source files containing kernels.
| File | Description |
|---|---|
| auxiliary_genetic.cl | Auxiliary functions for energy calculation |
| calcenergy.cl | Main function for score (binding energy) calculation |
| calcgradient.cl | Main function for gradient calculation |
| calcMergedEneGrad.cl | Score and gradient merged calculation |
| kernel1.cl |
gpu_calc_initpop: calculates the scores of initial population |
| kernel2.cl |
gpu_sum_evals: sums the evaluation counter states |
| kernel3.cl |
perform_LS: performs the Solis-Wets local search |
| kernel4.cl |
gpu_gen_and_eval_newpops: performs the genetic generation or global search |
| kernel_sd.cl |
gradient_minSD: performs the Steepest-Descent local search |
| kernel_fire.cl |
gradient_minFire: performs the Steepest-Descent local search |
| kernel_ad.cl |
gradient_minAD: performs the ADADELTA local search |
examples/output/: examples of docking log files.
host/: host source files.
| File | Description |
|---|---|
| calcenergy[.h][.cpp] | Auxiliary functions for parallel energy-calculation |
| getparameters[.h][.cpp] | Functions for processing program input arguments |
| miscellaneous[.h][.cpp] | General-purpose functions |
| main.cpp | Main source file |
| performdocking[.h][.cpp] | Entry point for OpenCL-platform setup and kernels execution |
| processgrid[.h][.cpp] | Functions for processing and converting the energy grids |
| processligand[.h][.cpp] | Functions for performing operations in the ligand |
| processresult[.h][.cpp] | Functions for processing docking results |
input/: chemical compounds taken from PDB.
| Ligan-receptor complex | Description |
|---|---|
| 1stp | Structural origins of high-affinity biotin binding to streptavidin |
| 3ce3 | Crystal structure of the tyrosine kinase domain of the hepatocyte growth factor receptor C-MET in complex with a Pyrrolopyridinepyridone based inhibitor |
For both complexes, the containing folder has a similar structure.
wrapcl/: custom wrapper functions for OpenCL API calls (compliant to OpenCL 1.2).
| File | Description |
|---|---|
| BufferObjects[.h][.cpp] | Functions for allocating, mapping, copying, and querying info of buffers |
| CommandQueues[.h][.cpp] | Functions for creating and querying info of command queues |
| commonMacros.h | Header with defines to enable features and display of info of OpenCL elements (platform, devices, etc) |
| Contexts[.h][.cpp] | Functions for creating and querying info of contexts |
| Devices[.h][.cpp] | Functions for detecting available devices and querying their attributes |
| ImportBinary[.h][.cpp] | Functions for loading kernel code and transforming (offline) it into device programs |
| ImportSource[.h][.cpp] | Functions for loading kernel code and transforming (online) it into device programs |
| Kernels[.h][.cpp] | Functions for setting kernel arguments, dispatching kernels, and querying kernel attributes |
| listAttributes[.h][.cpp] | Definitions of OpenCL attributes |
| Platforms[.h][.cpp] | Functions for detecting installed platforms and querying their attributes |
| Programs[.h][.cpp] | Functions for querying program's info |
make DEVICE=<TYPE>| Parameters | Description | Values |
|---|---|---|
<TYPE> |
Accelerator chosen |
CPU, GPU
|
After successful compilation, the host binary autodock_<type>_<N>wi is placed under bin.
| Binary-name portion | Description | Values |
|---|---|---|
| <type> | Accelerator chosen |
cpu, gpu
|
make DEVICE=<TYPE> NUMWI=<NWI> CONFIG=<CFG> REPRO=<Y/N>| Argument | Description | Possible values |
|---|---|---|
| DEVICE | OpenCL device type |
<TYPE>: CPU, GPU |
| NUMWI | Number of work items per work group |
<NWI> : 16, 32, 64, 128, 256 |
| CONFIG | Host configuration |
<CFG> : RELEASE, LDEBUG (light), FDEBUG (full) |
Check the configurations in the project's Makefile.
Go to Wiki home.
AutoDock for GPUs and other accelerators.
Contents