Skip to main content
QUICK REVIEW

[論文レビュー] Using Multi-Core HW/SW Co-design Architecture for Accelerating K-means Clustering Algorithm

Hadi Mardani Kamali|arXiv (Cornell University)|Jul 9, 2018
Advanced Data Compression Techniques参考文献 16被引用数 3
ひとこと要約

本稿では、二段階フィルタリングアルゴリズムを備えたバイナリkdツリーに基づく、FPGAを活用したHW/SW共同設計アーキテクチャであるMUCH-SWIFTを提案する。このアーキテクチャは、大規模で高次元のデータセットに対してK-meansクラスタリングを高速化する。ZYNQ Ultrascale+ SoCのすべての処理コアを活用し、高スループットDMAチャネルによるデータフロー最適化を実現することで、ソフトウェア単体の実装に比べて330倍の高速化を達成した。

ABSTRACT

The capability of classifying and clustering a desired set of data is an essential part of building knowledge from data. However, as the size and dimensionality of input data increases, the run-time for such clustering algorithms is expected to grow superlinearly, making it a big challenge when dealing with BigData. K-mean clustering is an essential tool for many big data applications including data mining, predictive analysis, forecasting studies, and machine learning. However, due to large size (volume) of Big-Data, and large dimensionality of its data points, even the application of a simple k-mean clustering may become extremely time and resource demanding. Specially when it is necessary to have a fast and modular dataset analysis flow. In this paper, we demonstrate that using a two-level filtering algorithm based on binary kd-tree structure is able to decrease the time of convergence in K-means algorithm for large datasets. The two-level filtering algorithm based on binary kd-tree structure evolves the SW to naturally divide the classification into smaller data sets, based on the number of available cores and size of logic available in a target FPGA. The empirical result on this two-level structure over multi-core FPGA-based architecture provides 330X speed-up compared to a conventional software-only solution.

研究の動機と目的

  • 高次元かつ大容量のビッグデータに対してK-meansクラスタリングを高速化するという、計算負荷の増大する課題に対処すること。
  • データサイズの増加に伴い実行時間が非線形的に増加するという、純粋なソフトウェア実装の限界を克服すること。
  • FPGAを用いたハードウェアアクセラレーションにより、クラスタリングワークロードにおける高スループットと低遅延を実現すること。
  • 再構成可能でスケーラブルかつモジュール化されたアーキテクチャを設計し、動的クラスタリングワークロードに適したマルチコアFPGAリソースを効率的に活用すること。
  • ソフトウェア最適化技術(例:三角不等式、固定小数点演算)とハードウェア並列処理を統合することで、パフォーマンスとリソース利用効率を最大化すること。

提案手法

  • K-meansにおける距離計算の冗長性を低減するため、バイナリkdツリーに基づく二段階フィルタリングアルゴリズムを実装し、探索空間を効率的に分割する。
  • ARMプロセッシングコアとプログラマブルロジックを活用したハイブリッド並列処理を実現するため、K-meansアルゴリズムをZYNQ Ultrascale+ SoCにマッピングする。
  • ホストメモリとZYNQ SoC間の効率的なデータ転送を実現するため、高帯域幅でDMAベースのPCIeインタフェースを採用し、I/Oボトルネックを低減する。
  • 利用可能なFPGAリソースとクラスタ数に応じて、クラスタリングワークロードを動的に処理ユニットに分割する。
  • BRAMとDSPの使用を最適化することでリソース割り当てを最適化し、最大80個の並列算術ユニットをクラスタ計算に割り当てられるようにする。
  • ハードウェアでの計算オーバーヘッドを削減するため、三角不等式や固定小数点演算などのソフトウェアレベル最適化を適用する。

実験結果

リサーチクエスチョン

  • RQ1バイナリkdツリーに基づく二段階フィルタリングアルゴリズムは、大規模データセットにおけるK-meansクラスタリングで距離計算の回数を顕著に削減できるか?
  • RQ2ZYNQ Ultrascale+のようなFPGAプラットフォーム上でHW/SW共同設計を実施することで、純粋なソフトウェア実装に比べてK-meansクラスタリングのパフォーマンスがどの程度向上するか?
  • RQ31つのSoCに統合されたマルチコアARMプロセッサとプログラマブルロジックを組み合わせることで、K-meansのスケーラブルかつ効率的な並列処理がどのように実現できるか?
  • RQ4リソース制約がパフォーマンスに影響を及える前に、完全並列化されたFPGAベースのK-meansアーキテクチャが処理可能な最大クラスタ数は何か?
  • RQ5高次元データと大容量の入力データを処理する際、提案アーキテクチャはどのようにして高スループットと低遅延を維持できるか?

主な発見

  • MUCH-SWIFTアーキテクチャは、大規模データセットにおいて、従来のソフトウェア単体のK-means実装に比べ330倍の高速化を達成した。
  • 二段階kdツリーによるフィルタリングにより、冗長な距離計算が削減され、高次元データのクラスタリングにおいて収束時間が顕著に短縮された。
  • システムは完全並列構成で最大20クラスタをサポートでき、ZU9EG FPGA上で最大80個の並列算術ユニットを活用し、ハードウェア利用効率を最大化した。
  • BRAMとDSPの使用を優先することでリソース利用効率が最適化され、高スループット並列計算を継続的に維持できるようになった。
  • DMAベースのPCIeインタフェースにより、ホストとZYNQ SoC間の効率的なデータ移動が実現され、I/O遅延が低減し、大容量の入力データセット処理が可能になった。
  • クラスタ数やデータ次元数の変化に関わらず高いパフォーマンスを維持でき、前人研究(Canilho et al., 2016)に比べ平均12倍の高速化を達成した。特にクラスタ数が増加する際の性能向上が顕著であった。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。