Eigen is a high-level C++ library of template headers for linear algebra, matrix and vector operations, geometrical transformations, numerical solvers and related algorithms. It is extensively used within all high energy physics software frameworks. These frameworks are starting to take advantage of hardware accelerators, like GPUs. At present, existing GPU-aware libraries are supporting in an efficient way a single operation on large matrices. The reconstruction of LHC events, however, involves multiple operations on many small matrices.
The goal of the project is to optimise small-to-mid size matrix and vector operations by mapping matrices to groups of GPU threads.