Vollständig verschmolzene Multi-Layer-Perzeptrons auf Intel Data Center GPUs
Fully-fused Multi-Layer Perceptrons on Intel Data Center GPUs
March 26, 2024
Autoren: Kai Yuan, Christoph Bauinger, Xiangyi Zhang, Pascal Baehr, Matthias Kirchhart, Darius Dabert, Adrien Tousnakhoff, Pierre Boudier, Michael Paulitsch
cs.AI
Zusammenfassung
Dieses Paper präsentiert eine SYCL-Implementierung von Mehrschicht-Perzeptronen (MLPs), die auf die Intel Data Center GPU Max 1550 abzielt und für diese optimiert ist. Um die Leistung zu steigern, minimiert unsere Implementierung die langsamen globalen Speicherzugriffe, indem sie die Datenwiederverwendung im allgemeinen Registerfile und im gemeinsam genutzten lokalen Speicher maximiert, indem sie die Operationen in jeder Schicht des MLP verschmilzt. Wir zeigen mit einem einfachen Roofline-Modell, dass dies zu einer signifikanten Steigerung der arithmetischen Intensität führt, was zu einer verbesserten Leistung, insbesondere für die Inferenz, führt. Wir vergleichen unseren Ansatz mit einer ähnlichen CUDA-Implementierung für MLPs und zeigen, dass unsere Implementierung auf der Intel Data Center GPU die CUDA-Implementierung auf Nvidias H100 GPU um den Faktor bis zu 2,84 bei der Inferenz und 1,75 beim Training übertrifft. Das Paper zeigt auch die Effizienz unserer SYCL-Implementierung in drei wichtigen Bereichen: Bildkompression, Neuronale Strahlungsfelder und Physikbasiertes maschinelles Lernen. In allen Fällen übertrifft unsere Implementierung die Standard-Intel-Erweiterung für PyTorch (IPEX) auf derselben Intel-GPU um bis zu den Faktor 30 und die CUDA PyTorch-Version auf Nvidias H100-GPU um bis zu den Faktor 19. Der Code ist unter https://github.com/intel/tiny-dpcpp-nn verfügbar.
English
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.Summary
AI-Generated Summary