Skip to main content
QUICK REVIEW

[논문 리뷰] Task-Based Algorithm for Matrix Multiplication: A Step Towards Block-Sparse Tensor Computing

Justus A. Calvin, Edward F. Valeev|arXiv (Cornell University)|2015. 04. 20.
Parallel Computing and Optimization Techniques참고 문헌 38인용 수 7
한 줄 요약

이 논문은 분산 메모리 시스템에서 비정규적이고 블록 희소 데이터 구조를 가진 행렬 곱셈을 효율적이고 확장 가능한 방식으로 수행할 수 있도록, 확장 가능한 유니버설 행렬 곱셈 알고리즘(SUMMA)을 임무 기반으로 재구성한 것을 제안한다. 미세한 수준의 임무 병렬 처리와 다중 이슈 스케줄링을 통해 비균일한 블록 구조로 인한 로드 불균형을 견디며, 최대 262,144개의 코어에서 최대 75%의 효율성을 달성하여, 일반 소비자용 및 고성능 계산(HPC) 시스템 모두에서 뛰어난 성능을 보였다.

ABSTRACT

Distributed-memory matrix multiplication (MM) is a key element of algorithms in many domains (machine learning, quantum physics). Conventional algorithms for dense MM rely on regular/uniform data decomposition to ensure load balance. These traits conflict with the irregular structure (block-sparse or rank-sparse within blocks) that is increasingly relevant for fast methods in quantum physics. To deal with such irregular data we present a new MM algorithm based on Scalable Universal Matrix Multiplication Algorithm (SUMMA). The novel features are: (1) multiple-issue scheduling of SUMMA iterations, and (2) fine-grained task-based formulation. The latter eliminates the need for explicit internodal synchronization; with multiple-iteration scheduling this allows load imbalance due to nonuniform matrix structure. For square MM with uniform and nonuniform block sizes (the latter simulates matrices with general irregular structure) we found excellent performance in weak and strong-scaling regimes, on commodity and high-end hardware.

연구 동기 및 목표

  • 양자 물리학과 텐서 계산에서 흔히 볼 수 있는 비정규적이고 블록 희소적인 행렬 구조를 가진 분산 메모리 행렬 곱셈에서의 로드 불균형 문제를 해결하기 위해.
  • 데이터 비균일성에 영향을 받지 않으면서도 밀도 있는 행렬이나 균일하게 블록화된 행렬의 성능을 저하시키지 않는 통신 회피 및 지연 내성 행렬 곱셈 알고리즘을 개발하기 위해.
  • 임무 기반 병렬 처리를 활용해 표준 밀도 행렬 곱셈 알고리즘을 재구성함으로써, 비정규적인 텐서 데이터 구조에서의 효율적 계산을 가능하게 하기 위해.
  • 다양한 하드웨어, 특히 일반 클러스터와 IBM BG/Q 슈퍼컴퓨터에서 강한 스케일링 및 약한 스케일링 성능을 입증하기 위해.

제안 방법

  • 계산과 동기화를 분리하기 위해, 미세한 수준의 임무 기반 프로그래밍 모델을 사용해 표준 SUMMA 알고리즘을 재구성한다.
  • 노드 간의 계산과 통신을 겹치기 위해, SUMMA 반복을 다중 이슈 스케줄링 방식으로 구현한다.
  • 작업 그래프를 사용해 행렬 곱셈 연산을 표현함으로써, 동적 로드 밸런싱과 비정규적인 데이터 분포에 대한 내성을 확보한다.
  • 기존 최적화된 BLAS 커널(예: DGEMM)을 임무 기반 프레임워크 내의 계산 원자 단위로 활용한다.
  • 사용자 정의 유형과 블록 구조를 지원하는 일반 목적의 텐서 계산을 가능하게 하기 위해, 오픈소스 TiledArray 라이브러리에 알고리즘을 통합한다.
  • 데이터 과다 분해를 적용해, 블록 크기의 큰 변동이 있더라도 각 프로세스의 로드 불균형을 줄인다.

실험 결과

연구 질문

  • RQ1임무 기반으로 재구성된 SUMMA는 비균일하고 블록 희소적인 행렬 구조를 효과적으로 처리하면서도, 밀도 있는 행렬에서 높은 성능을 유지할 수 있는가?
  • RQ2임무 기반 병렬 처리는 비정규적인 데이터를 가진 분산 메모리 행렬 곱셈에서 로드 밸런싱과 통신 숨기기 성능을 어떻게 향상시키는가?
  • RQ3SUMMA 반복의 다중 이슈 스케줄링은 데이터 비균일성과 네트워크 지연으로 인한 성능 저하를 어느 정도 완화할 수 있는가?
  • RQ4임무 기반 SUMMA의 강한 스케일링 및 약한 스케일링 행동은 고성능 및 일반 소비자용 HPC 시스템에서 어떻게 나타나는가?
  • RQ5코어 수와 행렬 크기가 다양할 때, 알고리즘의 효율성은 단일 노드의 최대 성능에 비해 어떻게 비교되는가?

주요 결과

  • Intel MKL를 사용한 단일 노드에서, 임무 기반 SUMMA의 구현은 이론적 최대 성능의 90.98%를 달성하여 높은 계산 효율성을 보였다.
  • IBM BG/Q 시스템에서, 비균일한 블록화 조건에도 불구하고 다양한 행렬 크기와 코어 수 범위에서 75% 이상의 효율성을 유지했다.
  • 각 코어가 네 개 이하의 행렬 블록을 가질 경우 강한 스케일링 한계에서 효율성이 최소 50%까지 떨어졌으며, 이는 작업의 세분성 제약 때문이었다.
  • 비균일한 행렬에서 최소 블록 크기 대 최대 블록 크기 비율이 최대 1:7.12임에도 불구하고, 데이터 과다 분해 덕분에 각 프로세스의 로드 불균형은 1:1.35로 줄어들었다.
  • 262,144개의 코어(2^18)까지 효과적으로 스케일링되었으며, 균일한 블록화와 비균일한 블록화 패턴 모두에서 성능가 안정성을 유지했다.
  • 하드웨어 이질성과 네트워크 지연에 대해 뛰어난 내성성을 보였으며, 성능이 네트워크 토폴로지와 CPU 클럭 변동에 덜 민감했다.

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

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

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

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