AutoDock Vina (Vina) é uma ferramenta de acoplamento molecular amplamente adotada, usada por muitas pesquisas como padrão para os resultados de acoplamento molecular. No entanto, seu processo computacional é muito demorado. Vina inovou com um acelerador baseado em FPGA (Field Programmable Gate Array) — o Vina-FPGA — que oferece uma solução eficiente em energia para acelerar o processo de acoplamento. Contudo, os módulos de cálculo no design do Vina-FPGA não são utilizados de maneira eficiente. Isso se deve ao comportamento irregular do Vina em loops aninhados, cujos limites superiores mudam constantemente e o fluxo de controle varia. Felizmente, o método de busca iterativa de Monte Carlo adotado pelo Vina requer cálculos independentes para diferentes entradas iniciais aleatórias, o que cria oportunidades para design paralelo. Para isso, este artigo propõe o Vina-FPGA2 — um esquema de pipeline entre módulos visando aumentar ainda mais a eficiência de execução do Vina-FPGA. Primeiro, conseguimos a independência das tarefas preenchendo sequencialmente os módulos de cálculo com tarefas (Task). Em seguida, com o auxílio de um módulo de verificação de etiquetas e ajuste da arquitetura, implementamos um design paralelo em pipeline entre módulos, chamado Vina-FPGA2-Baseline. Para uma implementação de hardware eficiente em recursos, o design foi transformado em um problema de otimização e um solucionador baseado em aprendizagem por reforço foi desenvolvido. Para a plataforma Xilinx UltraScale XCKU060, foi alcançado um design acelerador mais eficiente, denominado Vina-FPGA2-Enhanced. Finalmente, experimentos mostram que a performance do Vina-FPGA2-Enhanced é em média 12,6 vezes superior à da unidade central de processamento (CPU), 3,3 vezes superior à do Vina-FPGA e a eficiência energética é 7,2 vezes maior em comparação ao Vina-GPU.
Keywords
AutoDock Vina (Vina); aceleradores de hardware; matrizes de portas programáveis em campo; design conjunto de hardware-software