Linear algebra computations in heterogeneous systems
Sam Skalicky, Sonia Martín López, Marcin Łukowiak, James Letendre, David Gasser · 2013
One of the main challenges of using heterogeneous systems results from the need to find the computation-to-hardware assignments that maximize the overall application performance. The important computational factors that must be taken into account include algorithmic complexity, exploitable parallelism, memory bandwidth requirements, and data size. To achieve high performance, a hardware platform is chosen to satisfy the needs of a computation with corresponding architectural features such as clock speed, number of parallel computational units, and memory bandwidth. In this paper five linear algebra computations that are commonly found in compute-intensive applications are selected and evaluated in terms of performance on CPU, GPU, and FPGA platforms across a wide range of data sizes. The results are used to provide guidelines to help select the best performing hardware platform based on the computational factors. Using a cutting edge signal processing application as a case study, we demonstrate the importance of making computation assignments for improved performance. Our experimental results show that a properly implemented heterogeneous system achieves a speedup of up to 39x and 3.8x compared to CPU-only and GPU-only systems respectively.