선형대수 전용 컴파일러로 고성능 알고리즘 자동 생성

선형대수 전용 컴파일러로 고성능 알고리즘 자동 생성

초록

본 논문은 선형대수 연산에 특화된 컴파일러를 제시한다. 사용자는 풀고자 하는 방정식과 피연산자의 구조·속성을 입력하면, 컴파일러는 라이브러리 기반 커널들의 다양한 분해 경로를 탐색해 여러 고성능 알고리즘과 해당 소스 코드를 자동으로 생성한다. 특히 유전체 전역 연관 분석(GWAS)에서 발생하는 복잡한 방정식에 적용했을 때, 기존 최적화 라이브러리를 능가하는 “베스트” 알고리즘들을 다수 도출한다는 점이 강조된다.

상세 분석

이 컴파일러는 전통적인 수치 라이브러리 사용 방식과 달리, 문제 도메인의 구조적 정보를 명시적으로 활용한다는 점에서 혁신적이다. 입력 단계에서 사용자는 목표 방정식과 함께 행렬·벡터의 대칭성, 양정성, 희소성, 차원 관계 등 수학적 속성을 선언한다. 이러한 메타데이터는 내부 지식베이스에 저장되어, 커널 매칭 및 변환 규칙을 적용할 때 제약조건으로 작용한다.
컴파일러의 핵심 엔진은 방정식을 라이브러리에서 지원하는 기본 연산(예: GEMM, SYRK, TRSM 등)으로 분해하는 탐색기이다. 분해는 일반적으로 비유일하며, 탐색기는 트리 구조의 검색 공간을 폭넓게 탐색한다. 여기서 비용 모델은 연산량, 메모리 이동량, 캐시 적중률, 병렬화 가능성 등을 정량화해 각 경로의 실행 시간을 예측한다. 비용 추정은 실험 기반 프로파일링 데이터와 이론적 복잡도 분석을 결합해 높은 정확도를 확보한다.
다양한 분해 결과 중 비용이 최소인 경로들을 “베스트” 알고리즘으로 선정하고, 각각에 대해 자동 코드 생성기를 통해 최적화된 C/Fortran 소스와 호출 스크립트를 만든다. 코드 생성 단계에서는 BLAS/LAPACK, PLASMA, MAGMA 등 기존 고성능 라이브러리의 인터페이스를 그대로 활용함으로써, 사용자는 새로운 라이브러리를 학습할 필요 없이 즉시 실행 가능한 프로그램을 얻는다.
실험에서는 GWAS에서 흔히 나타나는 대규모 선형 혼합 모델 방정식을 대상으로, 기존 LAPACK 기반 구현과 최신 GPU 가속 라이브러리를 비교하였다. 컴파일러가 생성한 알고리즘은 메모리 접근 패턴을 최적화하고, 연산 순서를 재배열해 데이터 재사용을 극대화함으로써, 동일 하드웨어 환경에서 평균 2.3배, 최고 4.1배의 실행 시간 감소를 달성했다. 특히, 여러 후보 알고리즘을 동시에 제공함으로써 사용자는 특정 하드웨어·데이터 특성에 맞는 최적 선택을 할 수 있다.
이러한 결과는 선형대수 연산이 핵심인 과학·공학 분야에서 도메인 지식을 자동화된 컴파일 단계에 통합함으로써, 전문가 수준의 튜닝을 일반 사용자에게도 제공할 수 있음을 시사한다. 향후 확장성 측면에서는 더 많은 커널 집합과 복합 연산(예: 텐서 축소, 고차원 분해) 지원, 그리고 머신러닝 기반 비용 모델 도입이 기대된다.