고성능 컴퓨팅에서 SNAP 가속화: 테스트베드와 코코스를 활용한 최적화 전략 탐색
이 논문은 분자 동역학 시뮬레이션의 핵심인 SNAP(Spectral Neighbor Analysis Potential) 계산을, 이기종 아키텍처에 최적화된 Kokkos 프레임워크를 활용해 재구성하고 최적화한 과정을 소개한다. 기존 구현 대비 NVIDIA V100 GPU에서 약 22배의 성능 향상을 달성했으며, 이를 위해 메모리 접근 오버헤드를 최소화하고 계산 집약적인 패턴을 도입하는 새로운 계층적 병렬화 전략을 개발했다.
저자: Rahulkumar Gayatri, Stan Moore, Evan Weinberg
이 논문은 엑사스케일 슈퍼컴퓨터 시대에 대두된 이기종 컴퓨팅(CPU+GPU) 환경에서 과학적 응용 프로그램의 성능 이식성을 확보하기 위한 구체적인 사례 연구를 제시한다. 연구의 대상은 분자 동역학 소프트웨어 LAMMPS 내의 머신러닝 기반 정밀 원자간 포텐셜인 SNAP(Spectral Neighbor Analysis Potential)이다. SNAP 계산은 원자 주변의 이웃 환경을 Bispectrum 성분이라는 기술자로 변환하고, 이를 선형 조합하여 에너지와 힘을 계산하는 복잡한 과정을 포함하며, 계산 복잡도가 J^7에 달하는 부분이 존재한다.
기존 SNAP 구현은 새로운 CPU 및 GPU 아키텍처에서 상대적인 성능(피크 대비 효율)이 하락하는 추세를 보였고, GPU에서는 특히 저조한 성능을 기록했다. 이는 GPU의 대량 병렬 처리와 높은 연산 대역폭에 맞지 않는 알고리즘 구조와 메모리 접근 패턴, 그리고 단일 커널 내 자원 과다 사용에서 기인했다.
연구팀은 이 문제를 해결하기 위해 세 가지 주요 접근법을 채택했다. 첫째, Kokkos 성능 이식성 프레임워크를 활용하여 하나의 코드베이스로 다양한 백엔드(CPU, NVIDIA GPU, AMD GPU 등)에 대응할 수 있는 구조를 유지했다. 둘째, 알고리즘을 '이웃 목록 생성', 'U 계수 계산', 'Z 행렬 계산', '미분 계산', '힘 업데이트' 등의 개별 단계로 분리(리팩토링)하여 각 단계를 최적화하고 GPU 자원 사용을 효율화했다. 셋째, GPU의 계층적 스레드 구조(블록, 워프, 스레드)를 SNAP의 계산 계층(원자, 이웃 원자, Bispectrum 인덱스)에 매핑하는 새로운 병렬화 전략을 설계했다. 특히 메모리 접근을 최소화하기 위해 중간 결과의 재계산(CPU에서는 비효율적)이나 커널 통합 같은 GPU 친화적 최적화를 도입했다.
이 모든 최적화 탐색은 LAMMPS에서 분리된 독립형 테스트베드인 TestSNAP에서 먼저 검증되었으며, 성공적인 전략만이 본래 LAMMPS 코드베이스에 통합되었다. 최종 결과, 2000개 원자와 J=8 파라미터 설정 기준으로, 기존 Kokkos GPU 구현 대비 NVIDIA Tesla V100 GPU에서 약 22배의 실행 시간 단축을 이루어냈다. 이는 단순한 코드 포팅을 넘어 하드웨어의 근본적인 특성을 알고리즘 설계에 반영한 성공적인 최적화 사례로, 향후 다양한 과학적 응용 프로그램의 GPU 가속화에 유용한 방법론적 틀을 제공한다.
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기