Skip to main content
QUICK REVIEW

[논문 리뷰] Speeding up Madgraph5 aMC@NLO through CPU vectorization and GPU offloading: towards a first alpha release

A. Valassi, J. T. Childers|arXiv (Cornell University)|2023. 03. 31.
Advanced Data Storage Technologies인용 수 6
한 줄 요약

이 논문은 CPU 벡터화(AVX512)와 GPU 오프로딩(CUDA, SYCL)를 통해 매트릭스 원소 계산을 가속화하여 Madgraph5_aMC@NLO의 성능을 대대적으로 향상시킨다. 벡터 CPU에서는 최대 16배의 속도 향상을 기록하고 GPU에서는 상당한 성능 향상을 달성한다. 이 작업은 MadEvent 프레임워크에 완전히 통합되며, 2023년 2분기 첫 알파 릴리스를 목표로 하며, LHC 수준의 QCD 과정을 완전한 물리적 정밀도와 함께 처리하고 처리량을 향상시킨다.

ABSTRACT

The matrix element (ME) calculation in any Monte Carlo physics event generator is an ideal fit for implementing data parallelism with lockstep processing on GPUs and vector CPUs. For complex physics processes where the ME calculation is the computational bottleneck of event generation workflows, this can lead to large overall speedups by efficiently exploiting these hardware architectures, which are now largely underutilized in HEP. In this paper, we present the status of our work on the reengineering of the Madgraph5_aMC@NLO event generator at the time of the ACAT2022 conference. The progress achieved since our previous publication in the ICHEP2022 proceedings is discussed, for our implementations of the ME calculations in vectorized C++, in CUDA and in the SYCL framework, as well as in their integration into the existing MadEvent framework. The outlook towards a first alpha release of the software supporting QCD LO processes usable by the LHC experiments is also discussed.

연구 동기 및 목표

  • 고성능 컴퓨팅(HPC) 하드웨어—특히 벡터 CPU와 GPU—가 고에너지물리학(HEP) 워크로드, 특히 몬테카를로 이벤트 생성에서 제대로 활용되지 않는 문제를 해결하기 위해.
  • Madgraph5_aMC@NLO의 매트릭스 원소(ME) 계산을 재설계하여, 데이터 병렬성과 잠금스텝 실행을 활용해 벡터화된 CPU와 GPU에서 성능을 극대화하기 위해.
  • 기존의 포트란 기반 외부 쉘을 변경하지 않은 채로, CUDA, SYCL, 벡터화된 C++를 포함한 고성능 ME 환경을 기존 MadEvent 프레임워크에 통합하기 위해.
  • 무게 조정이 없는 샘플을 포함한 전체 LHC 호환 이벤트 생성을 가능하게 하여 생산 환경에서 사용할 수 있도록 하기 위해.
  • 2023년 2분기까지 가속화된 프레임워크의 첫 알파 릴리스를 제공하여, 동일한 물리적 출력을 유지하면서 계산 비용을 극적으로 감소시킨 QCD LO 과정을 지원하기 위해.

제안 방법

  • 최신 CPU에서 단일 정밀도 기준 이론적 SIMD 속도 향상 최대 16배, 이중 정밀도 기준 8배를 달성하기 위해 AVX512 인스트럭션을 사용한 벡터화된 C++로 매트릭스 원소 계산을 재구현한다.
  • NVIDIA GPU를 위한 CUDA로 ME 계산을 이식하여 브랜치 효율성이 100%에 도달하고 잠금스텝 처리를 통해 GPU 활용도를 극대화한다.
  • SYCL과 sycl::vec 추상화를 사용한 이식 가능한 ME 커널을 구현하여, AMD 및 인텔 GPU를 포함한 이질적 아키텍처에서도 실행 가능하게 한다.
  • 새로운 데이터 병렬 ME 커널을 기존의 MadEvent 프레임워크에 통합하여, 스칼라 포트란 ME 모듈만 교체하고 나머지 워크플로우는 그대로 유지한다.
  • ME 가속화 이후 성능 저하 요인이 되는 시리얼 컴ponent(예: 난수 생성, 무게 조정 해제, I/O)을 최적화하여 성능 저하를 완화한다.
  • 정확성과 성능의 균형을 맞추기 위해 단일 정밀도와 이중 정밀도를 ME 계산 전반에 걸쳐 선택적으로 사용하는 혼합 정밀도 모드를 도입한다.
Figure 1: Total combined throughput for the $gg\!\rightarrow\!t\bar{t}gg$ process using 1, 2, 4 or 8 copies of our standalone application (see Ref. [ 1 ] ), as a function of the CUDA grid size (number of blocks per grid times number of threads per block — ”gt00256” indicates that the latter is fixed
Figure 1: Total combined throughput for the $gg\!\rightarrow\!t\bar{t}gg$ process using 1, 2, 4 or 8 copies of our standalone application (see Ref. [ 1 ] ), as a function of the CUDA grid size (number of blocks per grid times number of threads per block — ”gt00256” indicates that the latter is fixed

실험 결과

연구 질문

  • RQ1Madgraph5_aMC@NLO의 매트릭스 원소 계산이 물리적 정확도와 인터페이스 호환성을 유지하면서 CPU 벡터화와 GPU 오프로딩을 통해 가속화될 수 있는가?
  • RQ2데이터 병렬성과 잠금스텝 실행은 ME 계산에서 얼마나 실현 가능하며, 최신 벡터 CPU와 GPU에서 기대할 수 있는 성능 향상은 어느 정도인가?
  • RQ3SYCL과 같은 성능 이식성 프레임워크는 효율성을 손상시키지 않고 고성능 ME 커널을 다양한 아키텍처에 배포하는 데 어떻게 기여할 수 있는가?
  • RQ4헬리시티와 색 상태의 확률적 선택이 GPU 및 벡터 CPU 실행에서 잠금스텝 처리와 전체 성능에 미치는 영향은 어떠한가?
  • RQ5ME 가속화 이후 MadEvent 프레임워크에서 나타나는 주요 성능 저하 요인은 무엇이며, 이를 어떻게 완화하여 생산용 알파 릴리스를 가능하게 할 수 있는가?

주요 결과

  • AVX512 호환 CPU 코어 하나에서 벡터화된 C++ 구현이 단일 정밀도 기준 최대 16배, 이중 정밀도 기준 최대 8배의 이론적 속도 향상을 달성한다.
  • CUDA 구현은 NVIDIA GPU에서 브랜치 효율성이 100%에 도달하여 근사적으로 이상적인 잠금스텝 실행이 가능하고, 스칼라 포트란 대비 상당한 속도 향상을 기록한다.
  • SYCL 기반 ME 커널은 MadEvent에 완전히 통합되었으며, AMD 및 인텔 GPU로도 ME 계산을 성공적으로 오프로딩하여, NVIDIA 외 하드웨어에서도 전체 LHC 호환 이벤트 생성이 가능해졌다.
  • CPU용 프로토타입 벡터화된 SYCL 구현은 gcc 컴파일된 CUDA/C++ 빌드와 비교해 성능이 유사하거나 이를 초월하며, 이는 인텔 icx 컴파일러의 강력한 인lines 및 벡터화 기능 덕분으로 보인다.
  • 이전까지 마지막으로 남아 있던 이벤트별 난수 헬리시티 및 색 상태 선택 기능이 완료되어, 정확한 물리적 출력을 갖춘 완전한 무게 조정 없는 이벤트 생성이 가능해졌다.
  • 성능 비교 결과, icx 컴파일러로 빌드한 CUDA/C++ 커널은 일부 케이스에서 gcc 빌드 대비 2배 이상 빠른 성능을 보였으며, 특히 AVX512와 강력한 인라인 처리를 적용한 경우 두드러진 성능 향상을 보였다.
Figure 2: Total combined throughput for the $gg\!\rightarrow\!t\bar{t}gg$ process as a function of the number of copies of our single-threaded standalone application, in our five C++ vectorization scenarios. The y-axis represents the ratio of the achieved throughput to a reference with no vectorizat
Figure 2: Total combined throughput for the $gg\!\rightarrow\!t\bar{t}gg$ process as a function of the number of copies of our single-threaded standalone application, in our five C++ vectorization scenarios. The y-axis represents the ratio of the achieved throughput to a reference with no vectorizat

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.