[논문 리뷰] Distributed, combined CPU and GPU profiling within HPX using APEX
이 논문은 HPX 런타임 내에서 APEX를 사용하여 슈퍼컴퓨터 아키텍처 두 곳인 Piz Daint와 Summit에서 천체물리학 시뮬레이션인 Octo-Tiger의 성능 저하 요인을 분석하기 위한 확장 가능하고 분산된 CPU-GPU 프로파일링 프레임워크를 제시한다. APEX가 낮은 오버헤드로 대규모 프로파일링을 가능하게 하여 아키텍처 간 차이를 드러내고, 특히 GPU 커널 실행과 노드 간 통신에서 최적화 기회를 밝혀내는 것으로 입증된다.
Benchmarking and comparing performance of a scientific simulation across hardware platforms is a complex task. When the simulation in question is constructed with an asynchronous, many-task (AMT) runtime offloading work to GPUs, the task becomes even more complex. In this paper, we discuss the use of a uniquely suited performance measurement library, APEX, to capture the performance behavior of a simulation built on HPX, a highly scalable, distributed AMT runtime. We examine the performance of the astrophysics simulation carried-out by Octo-Tiger on two different supercomputing architectures. We analyze the results of scaling and measurement overheads. In addition, we look in-depth at two similarly configured executions on the two systems to study how architectural differences affect performance and identify opportunities for optimization. As one such opportunity, we optimize the communication for the hydro solver and investigated its performance impact.
연구 동기 및 목표
- HPX 기반 과학적 응용 프로그램에서 CPU 및 GPU 워크로드의 대규모 분산 프로파일링을 가능하게 하기 위해.
- 실제 생산 규모의 시뮬레이션에서 APEX를 사용한 통합 CPU-GPU 프로파일링의 타당성과 오버헤드를 평가하기 위해.
- 다른 HPC 아키텍처(Piz Daint 및 Summit)에서 Octo-Tiger의 성능 저하 요인을 특정하기 위해.
- 프로파일링 인사이트를 바탕으로 수류 해성기의 통신을 최적화하고 그 성능 영향을 측정하기 위해.
- 최대 2000개 노드에서 GPU 측정을 포함한 APEX 프로파일링의 확장성과 정확도를 평가하기 위해.
제안 방법
- 분산 노드 전반에서 CPU 및 GPU 워크로드의 성능 메트릭을 캡처하기 위해 APEX를 HPX에 통합하기 위해.
- GPU 프로파일링을 위해 CUPTI를 사용하고 CPU 메트릭을 위해 HPX 성능 카운터를 사용하며, 계산 노드 전반에서 데이터를 집계하기 위해.
- Piz Daint에서 48개 노드(각각 48개 GPU 포함), Summit에서 8개 노드(각각 48개 GPU 포함)로 구성된 40단계의 전체 생산 시나리오 실행을 수행하기 위해.
- GPU 측정 영향을 분리하기 위해 CPU 전용 및 CPU-GPU 실행에서의 프로파일링 오버헤드를 비교하기 위해.
- 아키텍처 전반에서 커널 실행 시간, 통신 오버헤드, 작업 스케줄링의 런타임 동작을 분석하기 위해.
- APEX로 특정된 저하 요인을 바탕으로 수류 해성기의 통신 패턴을 최적화한 후, 향상 정도를 측정하기 위해 재프로파일링을 수행하기 위해.
실험 결과
연구 질문
- RQ1현대 HPC 시스템에서 대규모 분산 CPU-GPU 실행에서 APEX의 프로파일링 오버헤드는 어떻게 행동하는가?
- RQ2Piz Daint(Intel Xeon + P100)와 Summit(Power9 + V100) 아키텍처 간 Octo-Tiger 실행에서의 주요 성능 차이는 무엇인가?
- RQ3Octo-Tiger의 어떤 구성 요소가 가장 높은 성능 오버헤드를 보이며, 프로파일링 데이터를 바탕으로 최적화될 수 있는가?
- RQ4P100에서 V100 GPU로의 전환은 평균 커널 실행 시간에 어떤 영향을 미치며, 관찰된 성능 향상에 기여하는 요인은 무엇인가?
- RQ5특히 대규모에서 GPU 프로파일링이 CUPTI를 통해 상당한 오버헤드를 증가시키는 정도는 어느 정도인가?
주요 결과
- APEX는 HPX 기반 시뮬레이션에서 확장 가능하고 분산된 CPU-GPU 프로파일링을 가능하게 하며, Piz Daint에서 최대 2000개 노드에서도 실행 가능한 오버헤드를 제공한다.
- Piz Daint에서 스케일링 시 프로파일링 오버헤드는 52.4%에 달했으며, 주로 CUPTI를 통한 GPU 측정 때문이었고, CPU 전용 실행은 낮은 오버헤드를 보였다.
- Summit에서는 스케일링 시 프로파일링 오버헤드가 31.8%였으며, GPU 프로파일링에 대해 더 나은 확장성과 낮은 영향을 보였다.
- V100에서의 평균 GPU 커널 런타임은 P100 대비 뚜렷한 성능 향상을 보였으며, 주로 SM 수가 아닌 L1 캐시 증가와 메모리 대역폭 향상 때문일 가능성이 높다.
- 수류 해성기의 통신이 Piz Daint에서 주요 저하 요인으로 특정되었으며, 특히 schedule_parcel 함수에서 그러한 현상이 두드러졌다. 이는 APEX 데이터를 바탕으로 최적화되었다.
- 최적화 후 APEX 측정치는 성능 향상을 확인했으며, 이는 생산 HPC 워크로드에서 코드 최적화를 이끄는 데 있어 분산 프로파일링의 가치를 입증한다.
더 나은 연구,지금 바로 시작하세요
논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.
카드 등록 없음 · 무료 플랜 제공
이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.