  Graphic Processing Units (GPUs) are getting increasingly important as target
architectures in scientific High Performance Computing (HPC). NVIDIA
established CUDA as a parallel computing architecture controlling and making
use of the compute power of GPUs. CUDA provides sufficient support for C++
language elements to enable the Expression Template (ET) technique in the
device memory domain. QDP++ is a C++ vector class library suited for quantum
field theory which provides vector data types and expressions and forms the
basis of the lattice QCD software suite Chroma. In this work accelerating QDP++
expression evaluation to a GPU was successfully implemented leveraging the ET
technique and using Just-In-Time (JIT) compilation. The Portable Expression
Template Engine (PETE) and the C API for CUDA kernel arguments were used to
build the bridge between host and device memory domains. This provides the
possibility to accelerate Chroma routines to a GPU which are typically not
subject to special optimisation. As an application example a smearing routine
was accelerated to execute on a GPU. A significant speed-up compared to normal
CPU execution could be measured.
