  For many, Graphics Processing Units (GPUs) provides a source of reliable
computing power. Recently, Nvidia introduced its 9th generation HPC-grade GPUs,
the Ampere 100, claiming significant performance improvements over previous
generations, particularly for AI-workloads, as well as introducing new
architectural features such as asynchronous data movement. But how well does
the A100 perform on non-AI benchmarks, and can we expect the A100 to deliver
the application improvements we have grown used to with previous GPU
generations? In this paper, we benchmark the A100 GPU and compare it to four
previous generations of GPUs, with particular focus on empirically quantifying
our derived performance expectations, and -- should those expectations be
undelivered -- investigate whether the introduced data-movement features can
offset any eventual loss in performance? We find that the A100 delivers less
performance increase than previous generations for the well-known Rodinia
benchmark suite; we show that some of these performance anomalies can be
remedied through clever use of the new data-movement features, which we
microbenchmark and demonstrate where (and more importantly, how) they should be
used.
