| Bibliography | Heinle, Fabian: Analysis of the performance portability of the SYCL joint_matrix extension. University of Stuttgart, Faculty of Computer Science, Electrical Engineering, and Information Technology, Master Thesis No. 50 (2025). 111 pages, english.
|
| Abstract | The growing vendor diversity across the fastest supercomputers in the world introduces significant complexity: It is not trivial to ensure that software performs efficiently across multiple hardware platforms. With the introduction of Tensor Cores, Nvidia added another layer of complexity to be considered. AMD and Intel now offer their own solutions for speeding up matrix multiplications. Often programmed in low-level and vendor-specific code, these specialized units make achieving portable high-performance code even more challenging. The performance improvements by factor two and even factor eight for half-precision compared to native cores are nevertheless a good reason to investigate the performance portability of this matrix hardware further. In the course of this thesis, the performance portability of the oneAPI joint_matrix extension is evaluated. This extension provides a vendor-independent API to program matrix hardware in a portable and efficient manner. Therefore, two benchmarks are implemented using SYCL. First, a matrix multiplication utilizing the joint_matrix extension utilizing multiple mixed-precision combinations are tested. Second, the performance of the joint_matrix for a problem not directly mapping on this specialized hardware is evaluated. Therefore, we extend a classical gravitational N-body simulation to use the joint_matrix extension for the pairwise distance calculation between bodies. The result for the matrix multiplication benchmark assesses the impact of different optimization levels when employing the joint_matrix extension. Furthermore, the effect on performance when allocating memory with malloc_share or malloc_device is measured. We found that optimizing the kernel results in the best performance for the joint_matrix extension, achieving ≈ 50% of the cuBLAS performance on Nvidia GPUs for architectural and application efficiency. For all other vendors, no performance portability can be achieved, either due to a malfunctioning oneAPI joint_matrix implementation for AMD, or due to the limited availability of mixed-precision data types for Intel. Deploying the joint_matrix extension to compute the distances between bodies within the N-body simulation showed that this usage can speed up the computation for medium-sized simulation scenarios. For larger simulation scenarios, the naive approach delivers better results due to the computational overhead employed when using the joint_matrix extension for this type of computation.
|
Full text and other links | Volltext
|
| Department(s) | University of Stuttgart, Institute of Parallel and Distributed Systems, Scientific Computing
|
| Superviser(s) | Pflüger, Prof. Dirk; Breyer, Marcel; Daiß, Gregor |
| Entry date | November 12, 2025 |
|---|