Skip to main content
QUICK REVIEW

[논문 리뷰] Shared Memory Parallelization of MTTKRP for Dense Tensors

Koby Hayashi, Grey Ballard|arXiv (Cornell University)|2017. 08. 29.
Tensor decomposition and applications참고 문헌 18인용 수 4
한 줄 요약

이 논문은 블라스 최적화된 행렬 연산을 사용하고 텐서 재정렬 없이, 밀도 텐서 분해에서 행렬화된 텐서-카프라 곱(MTTKRP)에 대한 공유 메모리 병렬 알고리즘을 제안한다. 새로운 1단계 MTTKRP 알고리즘과 병렬 카프라 곱 구현을 결합하여 fMRI 데이터에서 기존 소프트웨어 대비 최대 7.4배의 성능 향상을 달성하며, 다핵 시스템에서 효율적인 CP 분해를 가능하게 한다.

ABSTRACT

The matricized-tensor times Khatri-Rao product (MTTKRP) is the computational bottleneck for algorithms computing CP decompositions of tensors. In this paper, we develop shared-memory parallel algorithms for MTTKRP involving dense tensors. The algorithms cast nearly all of the computation as matrix operations in order to use optimized BLAS subroutines, and they avoid reordering tensor entries in memory. We benchmark sequential and parallel performance of our implementations, demonstrating high sequential performance and efficient parallel scaling. We use our parallel implementation to compute a CP decomposition of a neuroimaging data set and achieve a speedup of up to $7.4 imes$ over existing parallel software.

연구 동기 및 목표

  • 다핵 시스템에서 밀도 텐서에 대한 CP 텐서 분해에서 MTTKRP의 성능 저하 문제를 해결한다.
  • 비용이 많이 드는 텐서 데이터 재정렬이 필요 없는 최적화된 블라스 서브루틴을 활용한 병렬 알고리즘을 개발한다.
  • 현재 Matlab 기반 도구가 너무 느려 큰 규모의 신경영상 데이터(예: fMRI)의 CP 분해 효율을 향상시킨다.
  • 표준 블라스와 OpenMP만을 사용하여 공유 메모리 아키텍처에서 고성능이고 확장 가능한 계산을 가능하게 한다.
  • MTTKRP 커널 최적화가 전체 CP-ALS 반복에서 상당한 성능 향상으로 이어짐을 입증한다.

제안 방법

  • 텐서 재정렬을 피하면서도 블라스 최적화된 행렬 연산의 시퀀스로 표현하는 새로운 1단계 MTTKRP 알고리즘 설계
  • OpenMP와 다중 스레드 블라스를 사용하여 다중 행렬의 카프라 곱을 병렬 행단위로 계산하는 알고리즘 구현
  • 비교를 위해 Phan 등(2013)의 2단계 MTTKRP 알고리즘을 기준선으로 사용하며, 동일하게 OpenMP와 블라스로 병렬화
  • 모든 MTTKRP 알고리즘의 메모리 레이아웃을 단일 고정된 텐서 구조로 유지하여 데이터 국소성 확보 및 비용이 큰 재정렬 제거
  • 최적화된 MTTKRP 커널을 신경영상 데이터용 CP-ALS 솔버에 통합하며, 외부 모드에는 1단계, 내부 모드에는 2단계 사용
  • 다양한 랭크와 스레드 수에서 3D 및 4D fMRI 텐서를 대상으로 성능 벤치마킹을 수행하며, 순차적 및 병렬 Matlab 구현과 비교

실험 결과

연구 질문

  • RQ1공유 메모리 시스템에서 텐서 재정렬 없이도 높이 최적화된 블라스 루틴을 활용하면서 밀도 텐서의 MTTKRP를 효율적으로 병렬화할 수 있는가?
  • RQ2다양한 텐서 차원과 랭크에서 1단계 및 2단계 MTTKRP 알고리즘이 순차적 및 병렬 성능 측면에서 어떻게 비교되는가?
  • RQ3MTTKRP 최적화가 실제 신경영상 데이터의 CP-ALS 전체 성능에 미치는 영향은 무엇인가?
  • RQ4특히 작은 모드에서 카프라 곱 계산의 계산 비용이 전체 MTTKRP 성능에 미치는 영향은 무엇인가?
  • RQ5모드 간 반복적인 KRP 계산을 피하는 등의 추가 최적화가 CP-ALS에서 추가 성능 향상으로 이어질 수 있는가?

주요 결과

  • 제안된 1단계 MTTKRP 알고리즘은 12개 스레드를 사용할 경우 기준 구현 대비 최대 12배의 성능 향상을 기록하며, 순차적 및 병렬 성능 모두에서 뚜렷한 향상이 있다.
  • 2단계 MTTKRP 알고리즘은 기준 구현보다 일관되게 뛰어난 성능을 보이며, 동일한 텐서 크기에서 12코어에서 최대 8배의 병렬 속도 향상이 이루어졌다.
  • fMRI 데이터에서는 최적화된 MTTKRP 커널을 사용한 전체 CP-ALS 구현이 기존 병렬 소프트웨어 대비 최대 7.4배 빠른 성능을 기록했으며, 특히 더 높은 랭크에서 두드러진 성능 향상이 있었다.
  • 카프라 곱 계산은 성능 저하의 주요 원인으로 작용하며, 연산 수가 전체의 약 1/30에 불과함에도 불구하고 1단계 알고리즘에서 최대 절반의 시간을 차지했다.
  • 단일 코어를 사용할 경우 C 구현의 순차적 성능가 Matlab의 Tensor Toolbox보다 최대 2배 빠르며, 강력한 커널 수준 최적화를 시사한다.
  • MTTKRP 최적화가 진행됨에 따라 CP-ALS에서 잔차 오차 계산이 새로운 성능 저하 요인로 부상했으며, 향후 최적화는 이 컴포넌트에도 확장되어야 할 것으로 보인다.

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

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

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

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