OCLADock-FPGA: OpenCL Accelerated Molecular Docking on FPGAs
=============================================================
# Description
OpenCL task-parallel version of AutoDock4 for FPGAs.
It achieves speed-ups of up to 2.7x over the original single-threaded AutoDock 4.2 on CPU.
# Development branches
The master branch points to the latest OCLADock-FPGA version: [lga-aoc160](https://git.esa.informatik.tu-darmstadt.de/docking/ocladock-fpga/tree/lga-aoc160).
The other branches are under regular development & optimization. Their labels follow this convention: `-`:
* [ga-aoc160](https://git.esa.informatik.tu-darmstadt.de/docking/ocladock-fpga/tree/ga-aoc160): Genetic Algorithm (traditional) - Altera OpenCL Compiler v16.0
* [lga-intel171](https://git.esa.informatik.tu-darmstadt.de/docking/ocladock-fpga/tree/lga-intel171): Lamarckian Genetic Algorithm - Intel FPGA SDK for OpenCL v17.1
* [lga-sdx174](https://git.esa.informatik.tu-darmstadt.de/docking/ocladock-fpga/tree/lga-sdx174): Lamarckian Genetic Algorithm - Xilinx SDAccel v2017.4
# Development tools
Specific information of the utilized OpenCL tools can be found in the respective README.md for each development branch.
Initialization scripts automate the tool setup-process. E.g.:
```zsh
% source init_aoc160_gidel.sh
```
## Important commands
See rules in [Makefile](./ofdock_taskpar_alt/Makefile).
**OpenCL kernels compilation**
```zsh
make keremu
```
**Design emulation**
```zsh
make emu
```
**Estimation & optimization reports generation**
```zsh
make kerrpt
```
**FPGA building**
```zsh
make hw
```
**FPGA building for hardware profiling**
```zsh
make hw-prof
```
**FPGA evaluation**
```zsh
make exe
```
# Documentation
For more details, go to the [Documentation](doc/readme/home.md).
# Bibliographic information for citing OCLADock-FPGA
Leonardo Solis-Vasquez and Andreas Koch. 2018. A Case Study in Using OpenCL on FPGAs: Creating an Open-Source Accelerator of the AutoDock Molecular Docking Software. In Proceedings of the 5th International Workshop on FPGAs for Software Programmers (FSP), 2018.
# License
This project is licensed under the GNU GPLv2 - see the [LICENSE](LICENSE) file for details.
# Related projects
A data-parallel OpenCL implementation of AutoDock4 for CPUs and GPUs can be found in the [OCLADock](https://git.esa.informatik.tu-darmstadt.de/docking/ocladock) repository .