Skip to main content
QUICK REVIEW

[論文レビュー] A New Data Layout For Set Intersection on GPUs

Rasmus Resen Amossen, Rasmus Pagh|arXiv (Cornell University)|Feb 4, 2011
Data Mining Algorithms and Applications参考文献 26被引用数 4
ひとこと要約

本稿では、スパースなデータセットにおける効率的な集合積集合と頻出ペアマイニングを可能にする、GPUに最適化された新規データレイアウト「BatMap」を紹介する。一般化されたクックー・ハッシュ方式を用いて集合をコンパクトで並列処理に適した形式に整理することで、BatMapはCPU実装と比較して最大5倍の高速化を達成し、従来のビットマップおよびマージベースの手法を上回る。特に、多数の頻出アイテムを含む大規模で密度の高いデータに対して優れた性能を発揮する。

ABSTRACT

Set intersection is the core in a variety of problems, e.g. frequent itemset mining and sparse boolean matrix multiplication. It is well-known that large speed gains can, for some computational problems, be obtained by using a graphics processing unit (GPU) as a massively parallel computing device. However, GPUs require highly regular control flow and memory access patterns, and for this reason previous GPU methods for intersecting sets have used a simple bitmap representation. This representation requires excessive space on sparse data sets. In this paper we present a novel data layout, "BatMap", that is particularly well suited for parallel processing, and is compact even for sparse data. Frequent itemset mining is one of the most important applications of set intersection. As a case-study on the potential of BatMaps we focus on frequent pair mining, which is a core special case of frequent itemset mining. The main finding is that our method is able to achieve speedups over both Apriori and FP-growth when the number of distinct items is large, and the density of the problem instance is above 1%. Previous implementations of frequent itemset mining on GPU have not been able to show speedups over the best single-threaded implementations.

研究の動機と目的

  • GPUにおける集合積集合処理の性能ボトルネック、特に従来のビットマップ表現がメモリ非効率となるスパースデータセットに対して、解決を図ること。
  • GPUの並列処理を最大限に活用するために不可欠な、均一なメモリアクセスと制御フローを実現するデータレイアウトの設計。
  • GPU上でスケーラブルな頻出アイテムセットマイニング(特に頻出ペアマイニング)を実現すること。これにより、従来のGPUベース手法が単一スレッドのCPU実装を上回れなかったという制限を克服する。
  • GPUアクセラレーションが、スパースなブール行列乗算や関連ルールマイニングといった複雑でデータ集約的なワークロードに対しても有効であることを示すこと。

提案手法

  • 一般化されたクックー・ハッシュ方式を用いて、GPUのメモリ階層に最適化されたコンパクトでキャッシュフレンドリーな形式で集合を格納する、新規データレイアウト「BatMap」を提案。
  • 積集合計算を16×16のタイルに分割することで、共有メモリの効率的利用とグローバルメモリアクセスの遅延低減を実現。
  • スレッドブロックごとに積集合行列のタイルを処理するビットレベル並列処理戦略を採用。ワープレベルのプリミティブを用いて、集合ビット数の効率的カウントを実現。
  • ハイブリッドアプローチを採用:小規模な集合に対しては、コンパクトな形式で直接要素を格納。大規模な集合に対しては、複数のハッシュテーブルを用いたスパース表現を採用し、衝突の低減とロードバランスの向上を図る。
  • ポップカウント命令に基づくカウント技術を適用することで、交差サイズの並列計算を実現。分岐の不一致を最小限に抑え、スループットを最大化。
  • グローバルメモリアクセスをコalescingし、グローバルメモリと共有メモリ間の不要なデータ移動を最小限に抑えることで、メモリアクセスを最適化。

実験結果

リサーチクエスチョン

  • RQ1スパースデータセットにおいてもコンパクトなメモリ使用を維持しつつ、GPU上で効率的かつスケーラブルな集合積集合を実現できる新しいデータレイアウトを設計できるか?
  • RQ2特に異なるアイテム数が多い場合に、GPUの並列処理をどれほど活用すれば、単一スレッドのCPU実装を上回れるか?
  • RQ3GPUおよびCPUアーキテクチャ上での、BatMapの従来のビットマップおよびソート済みリストマージ手法との性能比較は?
  • RQ4提案されたデータレイアウトは、2つ以上の集合の積集合に対しても拡張可能か?その際のメモリと性能のトレードオフは?

主な発見

  • GPU上でのBatMapの処理速度は36.2 GB/sに達し、CPUの最大スループット7.6 GB/sをほぼ5倍上回る。CPUのオーバーヘッドを除いても同様の結果となる。
  • GPU実装のBatMapは1秒間に3.68×10⁹個の集合要素を処理可能であり、単一コアCPU実装の2.25×10⁸個/秒を大きく上回る。これは13倍以上も速い。
  • 8コアCPUを用いた場合、処理レートは1.71×10⁹個/秒に達するが、依然としてGPUのスループットの29–57%にとどまり、顕著な性能差が確認された。
  • 本手法により、アイテム数が数万、密度が1%を超えるデータセットに対しても頻出ペアマイニングがスケーラブルに実行可能となり、従来のGPU手法が単一スレッドCPUコードを上回れなかった領域でも性能を発揮した。
  • ビットマップと比較して、BatMapのコンパクトな表現は特に丸め効果が有利な場合、単位メモリあたり最大63%多くの要素を格納可能となる。
  • 著者らは、本手法がGPUのメモリ帯域幅をまだ飽和させていないと結論づけ、さらなる最適化の余地と、大規模なデータマイニングワークロードへの広範な適用可能性があると示唆している。

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

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

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

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