کد مقاله | کد نشریه | سال انتشار | مقاله انگلیسی | نسخه تمام متن |
---|---|---|---|---|
524628 | 868786 | 2016 | 13 صفحه PDF | دانلود رایگان |
• This paper presents a performance portable matrix multiplication.
• The implementation has a set of parameters that can be tuned for each device.
• These parameters are tuned using a genetic algorithm.
• Our approach generates matrix multiplications 74% faster than clBLAS.
• Our approach requires 18% less autotuning time than clBLAS.
There are several frameworks that, while providing functional portability of code across different platforms, do not automatically provide performance portability. As a consequence, programmers have to hand-tune the kernel codes for each device. The Heterogeneous Programming Library (HPL) is one of these libraries, but it has the interesting feature that the kernel codes, which implement the computation to be performed, are generated at run-time. This run-time code generation (RTCG) capability can be used, in conjunction with generic parameterized algorithms, to write performance-portable codes. In this paper we explain how these techniques can be applied to a matrix multiplication algorithm. The performance of our implementation is compared to two state-of-the-art adaptive implementations, clBLAS and ViennaCL, on four different platforms, achieving average speedups with respect to them of 1.74 and 1.44, respectively.
Journal: Parallel Computing - Volume 52, February 2016, Pages 65–77