[論文レビュー] Rectangular Full Packed Format for Cholesky's Algorithm: Factorization, Solution and Inversion
本論文では、パックドストレージの最小限のメモリ使用量とフルストレージの高い性能を組み合わせることで、レベル3 BLASを活用可能な新しいストレージフォーマット、長方形フルパックドフォーマット(RFPF)を導入する。RFPFは、フルフォーマットのLAPACKルーチンと同等の性能を達成しながら、メモリ使用量を半分に抑え、シングルスレッドシステムではパックドルーチンよりも最大43倍、SMP並列システムでは最大97倍の高速化を実現する。
We describe a new data format for storing triangular, symmetric, and Hermitian matrices called RFPF (Rectangular Full Packed Format). The standard two dimensional arrays of Fortran and C (also known as full format) that are used to represent triangular and symmetric matrices waste nearly half of the storage space but provide high performance via the use of Level 3 BLAS. Standard packed format arrays fully utilize storage (array space) but provide low performance as there is no Level 3 packed BLAS. We combine the good features of packed and full storage using RFPF to obtain high performance via using Level 3 BLAS as RFPF is a standard full format representation. Also, RFPF requires exactly the same minimal storage as packed format. Each LAPACK full and/or packed triangular, symmetric, and Hermitian routine becomes a single new RFPF routine based on eight possible data layouts of RFPF. This new RFPF routine usually consists of two calls to the corresponding LAPACK full format routine and two calls to Level 3 BLAS routines. This means {\it no} new software is required. As examples, we present LAPACK routines for Cholesky factorization, Cholesky solution and Cholesky inverse computation in RFPF to illustrate this new work and to describe its performance on several commonly used computer platforms. Performance of LAPACK full routines using RFPF versus LAPACK full routines using standard format for both serial and SMP parallel processing is about the same while using half the storage. Performance gains are roughly one to a factor of 43 for serial and one to a factor of 97 for SMP parallel times faster using vendor LAPACK full routines with RFPF than with using vendor and/or reference packed routines.
研究の動機と目的
- 対称および正定値行列のストレージにおいて、メモリ効率と計算性能のトレードオフを解決すること。
- レベル3 BLASのサポートが欠如しているため、性能の無駄が生じる標準的なパックドフォーマットの制限を克服すること。
- パックドフォーマットと同程度の最小限のメモリ使用量を実現しながら、レベル3 BLASルーチンを活用した高性能計算を可能にするストレージフォーマットの開発。
- LAPACKにRFPFを統合し、コレスキー分解、解法、逆行列計算をフルバックワード互換性とパフォーマンス向上を伴ってサポートすること。
- 新しいアルゴリズムの実装を必要とせず、既存のLAPACKソフトウェアスタックへのスムーズな統合を可能にすること。
提案手法
- 三角行列をコンパクトで連続する一次元配列に格納する長方形レイアウトとしてRFPFを設計し、フルフォーマットLAPACKルーチンと互換性のあるデータアクセスパターンを維持する。
- ストレージ順序、三角領域、転置の組み合わせに基づく8通りの構成を想定し、1つのRFPFルーチンが複数のフルおよびパックドLAPACKルーチンを置き換えることを可能にする。
- 標準のLAPACKフルフォーマットルーチンへの2回の呼び出しと、レベル3 BLASカーネルへの2回の呼び出しを用いてRFPFルーチンを実装し、新しいコードを書かずに高性能を実現する。
- 実数対称行列および複素数ヘルミート行列の両方をサポートし、複素数の場合の転置および共役転置処理に対応する拡張を実施する。
- 標準フォーマット(フル、パックド)とRFPF間の変換ルーチンを提供し、バックワード互換性と相互運用性を確保する。
- LAPACK 3.2にRFPFを統合し、LAPACK命名規則に従った新しいルーチン名(例:CPFTRF、DPFTRS)を採用し、すべての精度およびデータ型をサポートする。
実験結果
リサーチクエスチョン
- RQ1レベル3 BLASを介して最小限のメモリ使用量と高い性能を両立できる新しい行列ストレージフォーマットを設計できるか?
- RQ2新しいカーネルを書かずに、既存のLAPACKフルフォーマットルーチンをどれだけ再利用して高性能なRFPFルーチンを実装できるか?
- RQ3RFPFは、シングルスレッドおよびSMP並列環境下で、標準的なフルフォーマットおよびパックドフォーマットと比較してどの程度のパフォーマンスを示すか?
- RQ4RFPFは、従来のパックドストレージフォーマットに比べて、コレスキー分解、解法、逆行列計算において最大どの程度のパフォーマンス向上を達成できるか?
- RQ5RFPFは、バックワード互換性を保ちつつ、既存のソフトウェアインfraに最小限の変更でスムーズに統合可能か?
主な発見
- RFPFは、フルフォーマットLAPACKルーチンと同等のパフォーマンスを達成しながら、パックドフォーマットと同等のメモリ使用量を実現する。
- シングルスレッドシステムでは、RFPFはベンダー最適化パックドルーチン(PPTRF)およびリファレンスパックドルーチンに対して、コレスキー分解および逆行列計算で最大43倍のパフォーマンス向上を達成する。
- SMP並列システムでは、レベル3 BLASとマルチスレーディングの有効活用により、パックドルーチンよりも最大97倍の高速化を実現する。
- ベンダー最適化BLASを使用したRFPFルーチンのパフォーマンスは、標準のフルフォーマットLAPACKルーチンとほぼ同一であり、最小限のランタイムオーバーヘッドが確認された。
- LAPACK 3.2は、44のRFPFルーチン(分解、解法、逆行列、フォーマット変換を含む)をネイティブにサポートしており、LAPACKエコシステムへの完全な統合を示している。
- RFPFアプローチは、Intel Tigerton、IBM Power 4、SUN UltraSPARC-IVなどの幅広いアーキテクチャで高性能計算を可能にし、プラットフォームを問わず一貫したパフォーマンス向上を実現している。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。