Skip to main content
QUICK REVIEW

[論文レビュー] cuTT: A High-Performance Tensor Transpose Library for CUDA Compatible GPUs

Antti‐Pekka Hynninen, Dmitry I. Lyakh|arXiv (Cornell University)|May 3, 2017
Parallel Computing and Optimization Techniques被引用数 13
ひとこと要約

cuTT は、Kepler 以降のアーキテクチャを搭載した NVIDIA GPU でテンソル転置演算を高速に実行する CUDA ライブラリである。2 つの共有メモリ最適化転置アルゴリズムとスレッド並列メモリインデックス方式を採用することで、統合ワークロードにおけるテンソル縮約のオーバーヘッドを最大で 1% まで低減し、ランクに依存しないパフォーマンスを達成している。

ABSTRACT

We introduce the CUDA Tensor Transpose (cuTT) library that implements high-performance tensor transposes for NVIDIA GPUs with Kepler and above architectures. cuTT achieves high performance by (a) utilizing two GPU-optimized transpose algorithms that both use a shared memory buffer in order to reduce global memory access scatter, and by (b) computing memory positions of tensor elements using a thread-parallel algorithm. We evaluate the performance of cuTT on a variety of benchmarks with tensor ranks ranging from 2 to 12 and show that cuTT performance is independent of the tensor rank and that it performs no worse than an approach based on code generation. We develop a heuristic scheme for choosing the optimal parameters for tensor transpose algorithms by implementing an analytical GPU performance model that can be used at runtime without need for performance measurements or profiling. Finally, by integrating cuTT into the tensor algebra library TAL-SH, we significantly reduce the tensor transpose overhead in tensor contractions, achieving as low as just one percent overhead for arithmetically intensive tensor contractions.

研究の動機と目的

  • GPU で加速されたテンソル代数ワークロードにおけるテンソル転置演算のパフォーマンスボトルネックを解消すること。
  • プロファイル駆動のチューニングに依存せずに、2 から 12 のあらゆるテンソルランクで高いパフォーマンスを維持できるライブラリを設計すること。
  • 分析的 GPU パフォーマンスモデルを基に、実行時における最適な転置アルゴリズムパラメータを選択するランタイムヒューリスティクスを開発すること。
  • TAL-SH テンソル代数ライブラリに非常に最適化された転置カーネルを統合することで、テンソル縮約におけるオーバーヘッドを最小限に抑えること。

提案手法

  • ライブラリは、グローバルメモリアクセスの散乱を低減するために、両方のアルゴリズムが共有メモリを活用する GPU 最適化された転置アルゴリズムを採用している。
  • スレッド並列アルゴリズムを用いて、並列にテンソル要素のメモリアドレスを計算することで、分岐を最小限に抑え、メモリコalescing を最大化している。
  • プロファイルを必要としない分析的 GPU パフォーマンスモデルに基づくヒューリスティクスパラメータ選択方式を構築している。
  • パフォーマンスモデルにより、実行時におけるブロックサイズとタイルサイズの最適な選択が、テンソルランクと形状に応じて動的に可能になっている。
  • TAL-SH テンソル代数ライブラリに cuTT を統合し、テンソル縮約におけるエンドツーエンドのパフォーマンスを評価している。
  • cuTT はテンソルランク 2 から 12 をサポートしており、アルゴリズム的最適化により、ランクに依存しないパフォーマンスを実現している。

実験結果

リサーチクエスチョン

  • RQ1プロファイルベースのチューニングに依存せずに、広範なテンソルランク範囲で高いパフォーマンスを達成できるテンソル転置ライブラリは構築可能か?
  • RQ2パフォーマンス測定を一切行わずに、実行時におけるテンソル転置の最適なアルゴリズムパラメータをどのように選択できるか?
  • RQ3最適化されたカーネルを用いることで、テンソル縮約ワークロードにおけるテンソル転置のオーバーヘッドはどの程度低減できるか?
  • RQ4共有メモリとスレッド並列インデックスの使用は、テンソル転置におけるメモリアクセスパターンを顕著に改善するか?
  • RQ5分析的パフォーマンスモデルは、現代の GPU におけるテンソル転置カーネルのパラメータ選択を正確に導くことができるか?

主な発見

  • cuTT はテンソルランクに依存しないパフォーマンスを達成しており、2 から 12 のあらゆるランクで高い効率を維持している。
  • コード生成ベースのアプローチと比較しても、cuTT のパフォーマンスは劣らないことが確認され、競争力のある最適化が実現されている。
  • 分析的パフォーマンスモデルにより、プロファイルやベンチマークを必要とせずに、効果的なランタイムパラメータ選択が可能である。
  • TAL-SH に cuTT を統合することで、算術演算が豊富な縮約において、テンソル転置のオーバーヘッドが最大で 1% まで低減された。
  • 共有メモリとスレッド並列メモリインデックスの使用により、グローバルメモリアクセスの散乱が顕著に低減され、帯域幅の利用効率が向上した。

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

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

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

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