  Due to the variety and importance of applications of treecodes and FMM, the
combination of algorithmic acceleration with hardware acceleration can have
tremendous impact. Alas, programming these algorithms efficiently is no piece
of cake. In this contribution, we aim to present GPU kernels for treecode and
FMM in, as much as possible, an uncomplicated, accessible way. The interested
reader should consult some of the copious literature on the subject for a
deeper understanding of the algorithms themselves. Here, we will offer the
briefest of summaries. We will focus our attention on achieving a GPU
implementation that is efficient in its utilization of the architecture, but
without applying the most advanced techniques known in the field (which would
complicate the presentation).
