Skip to main content
QUICK REVIEW

[논문 리뷰] Enabling Distributed-Memory Tensor Completion in Python using New Sparse Tensor Kernels.

Zecheng Zhang, Xiaoxiao Wu|arXiv (Cornell University)|2019. 10. 06.
Tensor decomposition and applications참고 문헌 71인용 수 5
한 줄 요약

이 논문은 분산 메모리 시스템에서 고성능이고 확장 가능한 텐서 완성 작업을 가능하게 하는 Cyclops 텐서 라이브러리에 대한 고수준 파이썬 인터페이스를 소개한다. 특히 다중 텐서 연산을 위한 새로운 희소 텐서 커널, 특히 TTTP 루틴을 활용하여 ALS, SGD, CCD++ 알고리즘을 가속화함으로써 초희소 텐서에서 높은 성능을 달성하였으며, 이는 100억 개의 비제로 요소를 가진 합성 텐서와 Stampede2를 사용한 Netflix 데이터셋을 통해 입증되었다.

ABSTRACT

Tensor computations are increasingly prevalent numerical techniques in data science, but pose unique challenges for high-performance implementation. We provide novel algorithms and systems infrastructure, together enabling the first high-level parallel implementations of three algorithms for the tensor completion problem: alternating least squares (ALS), stochastic gradient descent (SGD), and coordinate descent (CCD++). We develop these methods using a new Python interface to the Cyclops tensor algebra library, which fully automates the management of distributed-memory parallelism and sparsity for NumPy-style operations on multidimensional arrays. To make possible tensor completion for very sparse tensors, we introduce a new multi-tensor routine, TTTP, that is asymptotically more efficient than pairwise tensor contraction for key components of the tensor completion methods. In particular, we show how TTTP can be used to perform an ALS via conjugate gradient with implicit matrix-vector products, a novel tensor completion algorithm. Further, we provide the first distributed tensor library with hypersparse matrix representations, via integration of new sequential and parallel routines into the Cyclops library. We provide microbenchmarking results on the Stampede2 supercomputer to demonstrate the efficiency of this functionality. Finally, we study the performance of the tensor completion methods for a synthetic tensor with 10 billion nonzeros and the Netflix dataset.

연구 동기 및 목표

  • 매우 희소한 텐서에 대해 분산 메모리 시스템에서 텐서 완성의 성능과 확장성 문제를 해결하기 위해.
  • 자신들만의 분포와 희소성 관리를 자동으로 처리하는 고수준의 사용자 友好的한 파이썬 기반 병렬 텐서 연산을 가능하게 하기 위해.
  • 기존의 이원 텐서 곱셈보다 뛰어난 성능을 내는 새로운 희소 텐서 커널, 특히 TTTP를 개발하고 통합하기 위해.
  • 메모리 및 계산 효율성을 향상시키기 위해 분산 텐서 라이브러리 내에서 초희소 행렬 표현을 지원하기 위해.
  • 대규모 실세계 및 합성 데이터셋에서 텐서 완성 알고리즘의 성능을 평가하기 위해.

제안 방법

  • 분산된 희소 텐서에서 NumPy 스타일 연산을 위한 Cyclops 텐서 대수 라이브러리에 대한 새로운 파이썬 인터페이스를 설계하고 구현하기 위해.
  • 다중 텐서 곱셈을 효율적으로 계산하기 위해 TTTP(Tensor-Tensor-Tensor Product) 루틴을 도입하여 이원 방법에 비해 점근적 복잡도를 감소시키기 위해.
  • ALS의 공액 경사 하강법 솔버에서 암묵적 행렬-벡터 곱셈을 TTTP를 활용해 구현함으로써 새로운 ALS 변종을 구성하기 위해.
  • 초희소 행렬 표현을 위한 순차적 및 병렬 루틴을 Cyclops 라이브러리에 통합하여 극도로 희소한 데이터를 지원하기 위해.
  • 신규 커널과 알고리즘의 마이크로 벤치마킹 및 성능 평가를 위해 Stampede2 슈퍼컴퓨터를 사용하기 위해.
  • 새로운 인프라를 기반으로 세 가지 텐서 완성 알고리즘인 ALS, SGD, CCD++를 구현하고 최적화하기 위해.

실험 결과

연구 질문

  • RQ1고수준 파이썬 인터페이스는 텐서 연산의 분산 메모리 병렬 처리와 희소성 관리를 효과적으로 관리할 수 있는가?
  • RQ2TTTP 루틴은 기존의 이원 텐서 곱셈에 비해 텐서 완성의 효율성을 어떻게 향상시키는가?
  • RQ3TTTP를 통한 암묵적 행렬-벡터 곱셈은 새로운 확장 가능한 ALS 알고리즘을 가능하게 하는가?
  • RQ4신규 분산 텐서 라이브러리는 초희소 텐서에서 어떤 성능 향상을 달성하는가?
  • RQ5실세계(Netflix) 및 대규모 합성 데이터셋에서 텐서 완성 알고리즘이 어떻게 확장되는가?

주요 결과

  • TTTP 루틴은 텐서 완성의 핵심 구성 요소에 대해 이원 텐서 곱셈보다 점근적으로 더 좋은 성능을 제공한다.
  • TTTP를 통한 공액 경사 하강법과 암묵적 행렬-벡터 곱셈을 활용한 새로운 ALS 변종은 희소 텐서에서 높은 효율성을 달성한다.
  • 초희소 행렬 지원 기능을 갖춘 분산 텐서 라이브러리는 최대 100억 개의 비제로 요소를 가진 텐서에서 효율적인 계산을 가능하게 한다.
  • Stampede2에서의 마이크로 벤치마킹 결과, 새로운 희소 텐서 커널의 효율성과 확장성은 확인되었다.
  • 합성 100억 비제로 요소 텐서와 Netflix 데이터셋 양쪽 모두에서 텐서 완성 알고리즘이 뛰어난 성능을 보였다.
  • 새로운 커널이 Cyclops에 통합되면서 파이썬에서 고수준의 확장 가능하고 효율적인 텐서 완성을 처음으로 실현하였다.

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

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

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

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