계층적 성능 모델링을 통한 밀집 선형대수 알고리즘 순위 매기기

본 논문은 블록 기반 밀집 선형대수 연산에서 다수의 알고리즘 변형이 존재할 때, 실제 실행 없이도 각 변형의 성능을 예측하고 순위를 매길 수 있는 계층적 모델링 방법을 제안한다. 핵심 도구인 Sampler가 기본 BLAS/LAPACK 루틴의 실행 시간을 측정하고, 이를 기반으로 만든 회귀 모델이 상위 알고리즘의 전체 실행 시간을 추정한다. 실험 결과, 다양

계층적 성능 모델링을 통한 밀집 선형대수 알고리즘 순위 매기기

초록

본 논문은 블록 기반 밀집 선형대수 연산에서 다수의 알고리즘 변형이 존재할 때, 실제 실행 없이도 각 변형의 성능을 예측하고 순위를 매길 수 있는 계층적 모델링 방법을 제안한다. 핵심 도구인 Sampler가 기본 BLAS/LAPACK 루틴의 실행 시간을 측정하고, 이를 기반으로 만든 회귀 모델이 상위 알고리즘의 전체 실행 시간을 추정한다. 실험 결과, 다양한 아키텍처와 문제 규모에서 제안된 모델이 실제 성능과 높은 상관성을 보이며, 블록 크기와 같은 파라미터 튜닝에도 활용 가능함을 입증한다.

상세 요약

이 연구는 밀집 선형대수 연산, 특히 LU 분해와 삼각 행렬 역행 같은 블록 알고리즘에 초점을 맞춘다. 기존에는 동일 연산에 대해 여러 구현 변형이 존재하고, 각각의 성능은 하드웨어, 라이브러리, 문제 크기에 따라 크게 달라졌다. 저자들은 이러한 변형들을 ‘알고리즘 트리’ 형태로 계층화하고, 최하위 레벨인 BLAS/LAPACK 루틴을 독립적으로 측정·모델링한다. 첫 번째 도구인 Sampler는 다양한 입력 크기와 블록 크기에 대해 루틴의 실행 시간을 미세하게 측정하고, 노이즈를 최소화하기 위해 반복 실행과 통계적 필터링을 적용한다. 두 번째 단계에서는 측정된 데이터를 기반으로 다항 회귀 혹은 머신러닝 기반 모델을 구축해, 루틴별 실행 시간을 입력 파라미터(행·열 크기, 메모리 접근 패턴 등)의 함수로 표현한다. 이렇게 얻은 하위 모델은 상위 알고리즘의 전체 실행 시간을 재귀적으로 합산하는 방식으로 사용된다. 중요한 점은 모델이 계층적 구조를 유지함으로써 새로운 루틴이나 변형이 추가될 때 전체 모델을 재학습할 필요 없이 해당 루틴만 재측정하면 된다는 점이다. 또한, 블록 크기와 같은 튜닝 파라미터를 모델에 포함시켜 최적값을 탐색할 수 있다. 실험에서는 Intel Xeon, AMD EPYC, ARM 기반 서버 등 다양한 플랫폼에서 10여 개의 알고리즘 변형을 평가했으며, 예측 오차가 5 % 이하인 경우가 다수였다. 이는 전통적인 실험 기반 튜닝에 비해 시간과 비용을 크게 절감할 수 있음을 의미한다. 모델링 과정에서 고려된 메모리 계층 구조와 캐시 효과는 특히 대규모 행렬에 대해 정확도를 높이는 핵심 요인으로 작용한다. 전체적으로 이 논문은 성능 예측과 자동 튜닝을 위한 실용적인 프레임워크를 제공하며, 고성능 컴퓨팅 환경에서 알고리즘 선택을 체계화하는 데 기여한다.


📜 논문 원문 (영문)

🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...