Skip to main content
QUICK REVIEW

[논문 리뷰] An Efficient Shared-memory Parallel Sinkhorn-Knopp Algorithm to Compute the Word Mover's Distance

Jesmin Jahan Tithi, Fabrizio Petrini|arXiv (Cornell University)|2020. 05. 14.
Topic Modeling참고 문헌 13인용 수 4
한 줄 요약

이 논문은 밀도 높은 행렬 연산을 희소 커널 융합으로 변환함으로써 워드 무버의 거리(WMD) 계산을 가속화하는 공유 메모리 병렬 Sinkhorn-Knopp 알고리즘을 제안한다. 이로 인해 96개 코어에서 67배의 성능 향상을 기록했으며, 순수한 파이썬 구현 대비 700배 이상 빠른 성능을 달성한다. 이 방법은 SDDMM_SpMM 융합과 최적화된 유클리드 거리 계산을 결합하여 현대 CPU에서 고성능의 의미적 텍스트 유사도 계산을 실현한다.

ABSTRACT

The Word Mover's Distance (WMD) is a metric that measures the semantic dissimilarity between two text documents by computing the cost of moving all words of a source/query document to the most similar words of a target document optimally. Computing WMD between two documents is costly because it requires solving an optimization problem that costs \(O(V^3log(V))\) where \(V\) is the number of unique words in the document. Fortunately, the WMD can be framed as the Earth Mover's Distance (EMD) (also known as the Optimal Transportation Distance) for which it has been shown that the algorithmic complexity can be reduced to \(O(V^2)\) by adding an entropy penalty to the optimization problem and a similar idea can be adapted to compute WMD efficiently. Additionally, the computation can be made highly parallel by computing WMD of a single query document against multiple target documents at once (e.g., finding whether a given tweet is similar to any other tweets happened in a day). In this paper, we present a shared-memory parallel Sinkhorn-Knopp Algorithm to compute the WMD of one document against many other documents by adopting the \(O(V^2)\) EMD algorithm. We used algorithmic transformations to change the original dense compute-heavy kernel to a sparse compute kernel and obtained \(67 imes\) speedup using \(96\) cores on the state-of-the-art of Intel extregistered{} 4-sockets Cascade Lake machine w.r.t. its sequential run. Our parallel algorithm is over \(700 imes\) faster than the naive parallel python code that internally uses optimized matrix library calls.

연구 동기 및 목표

  • 워드 무버의 거리(WMD) 계산의 높은 계산 비용을 해결하기 위해, 고유 단어 수 V에 대해 O(V³log V)의 시간 복잡도를 가지는 문제를 해결한다.
  • 한 개의 쿼리 문서와 동시에 여러 타겟 문서 간의 WMD를 효율적으로 병렬로 계산할 수 있도록 한다.
  • Sinkhorn-Knopp 알고리즘 내의 밀도 높은 행렬 연산의 계산 부담을 알고리즘 변환을 통해 희소 커널로 감소시킨다.
  • OpenMP와 C++를 사용하여 공유 메모리 다중 소켓 x86 시스템에서 높은 성능과 강한 확장성을 달성한다.

제안 방법

  • 논문은 WMD 계산 복잡도를 O(V³log V)에서 O(V²)로 감소시키기 위해 엔트로피 정규화된 지구 이동 거리(EMD) 공식을 채택한다.
  • 정규화된 EMD 문제를 효율적으로 해결하기 위해 Sinkhorn-Knopp 행렬 스케일링 알고리즘을 적용하여 빠르고 안정적인 수렴을 가능하게 한다.
  • 희소-밀도-밀도 행렬 곱셈(SDDMM)과 밀도-희소 행렬 곱셈(SpMM)을 하나의 최적화된 커널로 융합하는 새로운 희소 커널 융합 기법인 SDDMM_SpMM을 도입한다.
  • 유클리드 거리 계산을 블록 처리된 GEMM 유사 행렬 곱셈 커널로 재구성하여 데이터 국소성과 캐시 효율성을 향상시킨다.
  • 다중 CPU 코어와 NUMA 도메인 간의 작업 수준 병렬 처리를 위해 OpenMP를 사용하며, 확장성을 고려한 메모리 접근 패턴을 최적화한다.
  • 알고리즘 변환을 통해 밀도 높은 계산 커널을 희소 커널로 대체함으로써 메모리 대역폭 압박을 감소시키고 산술 집중도를 향상시킨다.

실험 결과

연구 질문

  • RQ1WMD 계산을 위한 Sinkhorn-Knopp 알고리즘 내의 밀도 높은 계산 커널을 성능 향상을 위해 효과적으로 희소 커널로 변환할 수 있는가?
  • RQ2공유 메모리 시스템을 활용해 여러 타겟 문서 간의 WMD 계산을 병렬화했을 때, 어떤 정도의 성능 향상을 기대할 수 있는가?
  • RQ3최적화된 수학 라이브러리를 사용하는 단순한 병렬 파이썬 구현 대비 고도로 최적화된 C++/OpenMP 구현의 성능는 어떻게 비교되는가?
  • RQ4유클리드 거리 커널의 알고리즘 최적화가 전체 WMD 계산 성능에 얼마나 큰 영향을 미치는가?
  • RQ54소켓 x86 서버 아키텍처에서 여러 NUMA 노드 간의 알고리즘이 어떻게 확장되는가?

주요 결과

  • 제안된 병렬 Sinkhorn-WMD 알고리즘은 인텔 캐스케이드 레이크 시스템에서 4개의 NUMA 소켓을 통해 96개 코어에서 순차적 구현 대비 67배의 성능 향상을 기록했다.
  • 단순한 병렬 파이썬 구현 대비 700배 이상 빠른 성능을 기록했다. 이 파이썬 구현은 최적화된 병렬 수학 라이브러리를 사용하였다.
  • SDDMM_SpMM 커널 융합은 메모리 대역폭 압박을 줄이고 산술 집중도를 향상시켜 현대 CPU 캐시의 효율적 활용을 가능하게 했다.
  • 최적화된 GEMM 유사 유클리드 거리 커널은 데이터 국소성을 향상시켜, WMD 워크로드에서 흔히 나타나는 높고 얇은 행렬에 대해 성능 향상을 이끌어냈다.
  • 알고리즘은 NUMA 도메인 간에 잘 확장되며, 4소켓 시스템에서 소스 문서의 단어 수 v_r = 37일 때 최고 성능가를 기록했다.
  • 성능 트레이스에서 캐시 미스로 인한 쿨스타트 효과가 관찰되었으며, v_r = 31일 때 가장 열악한 성능 향상을 보였다. 이는 입력 순서와 데이터 레이아웃의 중요성을 시사한다.

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

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

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

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