An Efficient Computation of Matrix Triple Products

삼중 행렬 곱셈의 효율적 연산

  • Published : 2006.07.31

Abstract

In this paper, we introduce an improved algorithm for computing matrix triple product that commonly arises in primal-dual optimization method. In computing $P=AHA^{t}$, we devise a single pass algorithm that exploits the block diagonal structure of the matrix H. This one-phase scheme requires fewer floating point operations and roughly half the memory of the generic two-phase algorithm, where the product is computed in two steps, computing first $Q=HA^{t}$ and then P=AQ. The one-phase scheme achieved speed-up of 2.04 on Intel Itanium II platform over the two-phase scheme. Based on memory latency and modeled cache miss rates, the performance improvement was evaluated through performance modeling. Our research has impact on performance tuning study of complex sparse matrix operations, while most of the previous work focused on performance tuning of basic operations.

본 논문에서는 회로 설계 소프트웨어에서 사용되는 primal-dual 최적화 문제의 해를 구하기 위해 필요한 삼중 행렬 곱셈 연산 ($P=AHA^{t}$)의 성능 개선에 관하여 연구하였다. 이를 위하여 삼중 행렬 곱셈 연산의 속도를 개선하기 위하여 기존의 2단계 연산 방법을 대신하여 1단계 연산 방법을 제안하고 성능을 분석하였다. 제안된 방법은 희소 행렬 H의 블록 대각 구조의 특성을 이용하여 부동 소숫점 연산량을 감소시킴으로써 성능 개선을 이루었으며 더불어 메모리 사용량도 기존 방법에 비하여 50% 이하로 감소하였다. 그 결과 Intel Itanium II 플랫폼에서 기존 2단계 연산 방법과 비교하여 속도 면에서 주어진 실험 데이터 집합에 대하여 평균 2.04 의 speedup을 얻었다. 또한 본 논문에서는 플랫폼의 메모리 지연량과 예측된 캐쉬 미스율을 이용한 성능 모델링을 통하여 이와 같은 성능 개선 수치의 가능 범위를 보이고 실측된 성능개선을 평가하였다. 이와 같은 연구는 희소 행렬의 성능 개선 연구를 기본 연산이 아닌 복합 연산에 적용하는 연구로써 큰 의미가 있다.

Keywords