[論文レビュー] AccFFT: A library for distributed-memory FFT on CPU and GPU architectures
AccFFT は、CPU および GPU クラスタ上で分散メモリ FFT を実行するための高性能でオープンソースのライブラリであり、パencil分解と PCIe トランスファーデータの計算とを重ねることで通信オーバーヘッドを低減する。Titan システム上で 4,096 個の K20 GPU まで強力なスケーリングを達成し、大規模なパencil分解をサポートする最初のオープンソース GPU FFT ライブラリである。
We present a new library for parallel distributed Fast Fourier Transforms (FFT). The importance of FFT in science and engineering and the advances in high performance computing necessitate further improvements. AccFFT extends existing FFT libraries for CUDA-enabled Graphics Processing Units (GPUs) to distributed memory clusters. We use overlapping communication method to reduce the overhead of PCIe transfers from/to GPU. We present numerical results on the Maverick platform at the Texas Advanced Computing Center (TACC) and on the Titan system at the Oak Ridge National Laboratory (ORNL). We present the scaling of the library up to 4,096 K20 GPUs of Titan.
研究の動機と目的
- 分散メモリシステムにおけるパencil分解をサポートするスケーラブルでオープンソースの GPU FFT ライブラリの不足に対処すること。
- GPU メモリ転送を計算と重ねることで、PCIe バッファの制限を軽減し、大規模 FFT のパフォーマンスを向上させること。
- 科学計算ワークロード向けに、効率的でポータブルかつスケーラブルな FFT を、異種の CPU-GPU クラスタで実現すること。
- 3D を超える多次元変換を含め、実数および複素数変換の両方をサポートすること。
- プロプライエタリまたはメンテナンスされていない GPU FFT ライブラリの代替として、本番環境で使用可能なオープンソースの代替を提供すること。
提案手法
- 3D FFT においてパencil分解を用いることで、スラブ分解と比較してより良い負荷分散とスケーラビリティを実現する。
- 非ブロッキング MPI アルル・ツー・アール通信を用いて、データの転置をローカル FFT 計算と重ね合わせる。
- パイプライン処理と非同期カーネルを用いて、GPU メモリ転送(PCIe)を計算と重ね合わせる。
- GPU 上のローカル FFT には cuFFT を、ノード間通信には MPI を使用する。
- 最適化されたデータレイアウトを用いて、複素数から複素数(C2C)および実数から複素数(R2C)変換の両方をサポートする。
- CPU 実行にはハイブリッド MPI+OpenMP モデルを採用し、GPU 対応 MPI を用いて GPU 対応通信を統合する。
実験結果
リサーチクエスチョン
- RQ1通信とメモリ帯域幅が制限要因となる大規模な分散メモリクラスタにおいて、GPU アクセelerated FFT は効率的にスケーリング可能か?
- RQ2PCIe トランスファーデータを計算と重ねることで、マルチノード環境における GPU FFT のパフォーマンスが顕著に向上するか?
- RQ3パencil分解は、GPU ベースの分散 FFT ライブラリにおいて、スラブ分解を上回るスケーラビリティを実現するために効果的に実装可能か?
- RQ4ノードあたり複数の CPU コアが利用可能な場合、GPU ベースの FFT と CPU ベースの FFT のパフォーマンスはどのように比較されるか?
- RQ54,096 個の GPU まで強力なスケーリングを維持しながら、実数および複素数変換の両方をサポートできるか?
主な発見
- AccFFT は、Titan システム上で 4,096 個の K20 GPU まで強力なスケーリングを達成し、パencil分解を用いた最大規模のオープンソース GPU FFT であることを実証した。
- GPU バージョンは、GPU 数が 32 倍に増加しても 26% の効率を達成し、PCIe の重ね合わせが効果的であったため、ノードあたり 2 コアの CPU コードを上回った。
- PCIe トランスファーデータの重ね合わせにより、通信時間は CPU バージョンと同等に保たれ、パフォーマンスの差が縮小された。
- 特に通信が重いフェーズにおいて、FFTE や他の GPU FFT ライブラリと比較して AccFFT が優れた性能を示した。
- 4D 変換(512×256×128×64)においても、AccFFT は強力なスケーリング効率を維持しており、通信パターンが高次元に一般化されることを示した。
- Titan 上の CPU バージョンは、コア数が 32 倍に増加しても 40% の効率を示し、通信が制限要因であり、特にノードあたり複数コアが使用される場合に計算ではなく通信がボトルネックであることが示された。
より良い研究を、今すぐ始めましょう
論文設計から論文執筆まで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。