인텔 데이터 센터 GPU에서 완전 융합된 다층 퍼셉트론
Fully-fused Multi-Layer Perceptrons on Intel Data Center GPUs
March 26, 2024
저자: Kai Yuan, Christoph Bauinger, Xiangyi Zhang, Pascal Baehr, Matthias Kirchhart, Darius Dabert, Adrien Tousnakhoff, Pierre Boudier, Michael Paulitsch
cs.AI
초록
본 논문은 Intel Data Center GPU Max 1550을 대상으로 최적화된 SYCL 기반의 다층 퍼셉트론(MLP) 구현을 제시한다. 성능을 향상시키기 위해, 우리의 구현은 MLP의 각 계층에서 연산을 융합함으로써 일반 레지스터 파일과 공유 로컬 메모리 내에서 데이터 재사용을 극대화하고, 느린 전역 메모리 접근을 최소화한다. 간단한 루프라인 모델을 통해 이 접근 방식이 산술 강도를 크게 증가시켜 특히 추론에서 성능이 개선됨을 보여준다. 우리는 MLP를 위한 유사한 CUDA 구현과 비교하여, Intel Data Center GPU에서의 우리의 구현이 Nvidia의 H100 GPU에서의 CUDA 구현보다 추론에서 최대 2.84배, 학습에서 최대 1.75배 더 우수한 성능을 보임을 입증한다. 또한, 본 논문은 우리의 SYCL 구현이 이미지 압축, 신경 방사 필드(Neural Radiance Fields), 물리 기반 머신 러닝(Physics-Informed Machine Learning)이라는 세 가지 중요한 영역에서의 효율성을 보여준다. 모든 경우에서, 우리의 구현은 동일한 Intel GPU에서의 Intel Extension for PyTorch(IPEX) 구현보다 최대 30배, Nvidia의 H100 GPU에서의 CUDA PyTorch 버전보다 최대 19배 더 우수한 성능을 보인다. 코드는 https://github.com/intel/tiny-dpcpp-nn에서 확인할 수 있다.
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