Abstract:
Kernel-stream programming is a state-of-the-art method to program on parallel Digital Signal Processing (DSP) platforms. As the most legacy programs are written in sequen...Show MoreMetadata
Abstract:
Kernel-stream programming is a state-of-the-art method to program on parallel Digital Signal Processing (DSP) platforms. As the most legacy programs are written in sequential languages, a challenge of kernel-stream programming is to automatically recognize kernel code patterns and replace them with hardware optimized parallel library codes. In this paper, we try to solve an essential problem of kernel code recognition: the memory access patterns of matrix kernel codes. Though it is essential, most kernel recognizers previously did not recognize memory access patterns, simply recognizing only custom templates instead. We define eight 1-dimensional and 2-dimensional array access patterns frequently used in matrix kernel computing. The recognition algorithm is implemented in LLVM compiler infrastructure and is tested against several matrix kernels. Results show much improved matrix codes matches based on using our predefined access patterns. As modeling of access patterns in this paper is close to their original mathematical representations, limited number of kernel templates is needed to successfully complete recognitions of our interested matrix algorithms.
Date of Conference: 15-17 November 2014
Date Added to IEEE Xplore: 15 January 2015
ISBN Information: