  COVID-19 has shown the importance of having a fast response against
pandemics. Finding a novel drug is a very long and complex procedure, and it is
possible to accelerate the preliminary phases by using computer simulations. In
particular, virtual screening is an in-silico phase that is needed to filter a
large set of possible drug candidates to a manageable number. This paper
presents the implementations and a comparative analysis of two GPU-optimized
implementations of a virtual screening algorithm targeting novel GPU
architectures. The first adopts a traditional approach that spreads the
computation required to evaluate a single molecule across the entire GPU. The
second uses a batched approach that exploits the parallel architecture of the
GPU to evaluate more molecules in parallel, without considering the latency to
process a single molecule. The paper describes the advantages and disadvantages
of the proposed solutions, highlighting implementation details that impact the
performance. Experimental results highlight the different performance of the
two methods on several target molecule databases while running on NVIDIA A100
GPUs. The two implementations have a strong dependency with respect to the data
to be processed. For both cases, the performance is improving while reducing
the dimension of the target molecules (number of atoms and rotatable bonds).
The two methods demonstrated a different behavior with respect to the size of
the molecule database to be screened. While the latency one reaches sooner
(with fewer molecules) the performance plateau in terms of throughput, the
batched one requires a larger set of molecules. However, the performances after
the initial transient period are much higher (up to 5x speed-up). Finally, to
check the efficiency of both implementations we deeply analyzed their workload
characteristics using the instruction roof-line methodology.
