Fully-fused Multi-Layer Perceptrons on Intel Data Center GPUs
Authors:
Kai Yuan,
Christoph Bauinger,
Xiangyi Zhang,
Pascal Baehr,
Matthias Kirchhart,
Darius Dabert,
Adrien Tousnakhoff,
Pierre Boudier,
Michael Paulitsch
Abstract:
This paper presents a SYCL implementation of Multi-Layer Perceptrons (MLPs), which targets and is optimized for the Intel Data Center GPU Max 1550. To increase the performance, our implementation minimizes the slow global memory accesses by maximizing the data reuse within the general register file and the shared local memory by fusing the operations in each layer of the MLP. We show with a simple…
▽ More
This paper presents a SYCL implementation of Multi-Layer Perceptrons (MLPs), which targets and is optimized for the Intel Data Center GPU Max 1550. To increase the performance, our implementation minimizes the slow global memory accesses by maximizing the data reuse within the general register file and the shared local memory by fusing the operations in each layer of the MLP. We show with a simple roofline model that this results in a significant increase in the arithmetic intensity, leading to improved performance, especially for inference. We compare our approach to a similar CUDA implementation for MLPs and show that our implementation on the Intel Data Center GPU outperforms the CUDA implementation on Nvidia's H100 GPU by a factor up to 2.84 in inference and 1.75 in training. The paper also showcases the efficiency of our SYCL implementation in three significant areas: Image Compression, Neural Radiance Fields, and Physics-Informed Machine Learning. In all cases, our implementation outperforms the off-the-shelf Intel Extension for PyTorch (IPEX) implementation on the same Intel GPU by up to a factor of 30 and the CUDA PyTorch version on Nvidia's H100 GPU by up to a factor 19. The code can be found at https://github.com/intel/tiny-dpcpp-nn.
△ Less
Submitted 26 March, 2024;
originally announced March 2024.
Solidfmm: A highly optimised library of operations on the solid harmonics for use in fast multipole methods
Authors:
Matthias Kirchhart
Abstract:
We present solidfmm, a highly optimised C++ library for the solid harmonics as they are needed in fast multipole methods. The library provides efficient, vectorised implementations of the translation operations M2M, M2L, and L2L, and is available as free software. While asymptotically of complexity $O(P^3)$, for all practically relevant expansion orders, the translation operators display an empiri…
▽ More
We present solidfmm, a highly optimised C++ library for the solid harmonics as they are needed in fast multipole methods. The library provides efficient, vectorised implementations of the translation operations M2M, M2L, and L2L, and is available as free software. While asymptotically of complexity $O(P^3)$, for all practically relevant expansion orders, the translation operators display an empirical complexity of $O(P^2)$, outperforming the naïve implementation by orders of magnitude.
△ Less
Submitted 6 February, 2022;
originally announced February 2022.