Row Block Packing method (RBP 法 )
5.7 各疎行列格納方式のメモリ使用量の評価
RBP-ELL-Rが最もメモリ使用量を削減できた疎行列はRBP-ELLと同じくpwtkであ り,削減率は28.0%であった.また平均メモリ使用量削減率は,11.4%であった.
結果としてRBP法の適用により,既存の疎行列格納方式のメモリ使用量を7個以上の 疎行列において,20%以上の削減に成功した.大きな削減率となった疎行列の特徴として,
連続した非ゼロ要素が各行に多く存在することがあげられる.また医療分野のアプリケー ション例として評価に使用したUT-Heart1,UT-Heart2においても,RBP-CSRでそれぞ れ16.1%,12.4%,RBP-ELLとRBP-ELL-Rでそれぞれ11.6%,20.6%のメモリ使用量の 削減を達成した.巨大な疎行列であるCube Coup dt0,Bump 2911,Queen 4147におい てもメモリ使用量の削減に成功しており,BRP法の有効性を示した.また更に使用した 疎行列の問題を細分化,大規模化させた場合でも非ゼロ要素のパターンは大きく変化しな いと考えられ,RBP法が有効であると考察している.Bump 2911では,RBP法をELL,
ELL-Rに適用することでメモリ使用量を6GB以下に削減することに成功した.これによ
りGeForce 1060の6GBモデルでは困難であったシミュレーションが可能となり,Tesla 等の高いGPUの代替として低コストなGPUを使用することも可能となる.
しかしながらPatCompと同様に,parabolic femとthermal2の2つの行列では,RBP 法を用いても既存の疎行列格納方式のメモリ使用量を削減できず,逆にメモリ使用量が大 幅に増加した.これは,parabolic femやthermal2の行列内には,連続した非ゼロ要素が 少ないことと,連続した場合でも連続数が少ないことが原因である.
parabolic femでは,非ゼロ要素の最大連続数が2であり,RBP法による効果がない.
それどころか,不連続な非ゼロ要素を格納するのにCSRを使用するため,この分のメモ リ使用量が増大した.
thermal2の非ゼロ要素の連続数7の行が存在し,その行ではRBP法により7個の非ゼ ロ要素の列番号を二つの値で表現することで,大幅に列番号を削減できる.しかしながら 2連続の非ゼロ要素が複数存在する行もthermal2には存在する.そのような行に対しては RBP法の効果はなく,全ての非ゼロ要素の列番号を格納することになる.ColumnsELL では最も非ゼロ要素が多い行の要素数に列数が依存するため,大幅に列番号を削減できる 行があったとしても,行ごとの削減率にばらつきがある場合には圧縮効果が小さくなる.
またthermal2は疎行列内の非ゼロ要素数8,580,313のうち5,192,466が不連続な非ゼロ要 素であり,連続した非ゼロ要素が少ない.連続した非ゼロ要素が少なく,削減できた非ゼ ロ要素の列番号が少ないため,RBP-CSRではColptrを追加した分のメモリ使用量によ る増加の方が大きくなった.
今回評価対象としてFlorida Sparse Matrix Collectionを用いたのは,従来のCSRや ELLとの比較のためである.現実にはこのような連続した非ゼロ要素が少ない問題は稀 であるため,提案手法は多くの場合有効であると考えている.仮に連続した非ゼロ要素が 少ない問題があったとしても,FEMモデルの節点番号を振りなおすことにより,連続し た非ゼロ要素数を増加させる方法も考えられる.
また4章で提案したPatCompとRBP-CSRを比較すると,平均で4.3%PatCompの方 がメモリ使用量が低くなった.PatCompはRBP方に比べ広い範囲を短いインデックス
で置き換えることから,メモリ使用量削減率が高くなったと考えられる.しかしながら RBP法は変換に必要な計算量が少ないながらも,CSRに比べ最大27.9%の削減に成功し ていることから,時間ステップ毎に変換が必要な問題にとって,有用性は高いと考える.
pdb1HYS consph cant pwtk rma10 mac_econ mc2depi cop20k_A
0 10 20 30 40 50 60 70
Memory usage (Mbyte)
BCCOO RBP-CSR PatComp
図 5.7: Memory usage comparision with BCCOO
また図5.7にRBP-CSRとBCCOOのメモリ使用量の比較を示す.BCCOOはRBP法 と同様,非ゼロ要素の位置情報を削減する手法である.今回BCCOOのメモリ使用量は 論文中に記載されているメモリ使用量の値を使用している.また比較に使用する疎行列 はFEMに限定せず,BCCOOに記載されている疎行列のうち7個の疎行列を選択した.
RBP-CSRのメモリ使用量をBCCOOと比較するとpdb1HYS,pwtk以外で増加した結果 となった.FEMの疎行列ではないmac econ,mc2depiでは大幅なメモリ使用量の増加が 見られた.BCCOOでは,複数行,複数列で構成される固定サイズのブロックを用いて疎 行列を分割し,各ブロックに基準となる位置情報を一つ割り当てる.そのため適切にブ ロックサイズを選択することが出来れば,1行中の連続した非ゼロ要素を対象としている RBP法より大幅なメモリ使用量の削減が可能である.しかし固定サイズのブロックを用 いることから,ブロックの範囲内に非ゼロ要素が存在しない部分に関してはゼロ要素をパ ディングして補う必要がある.この場合にはメモリ使用量の削減率が低くなったり,最悪 の場合メモリ使用量が増加することがある.そのためBCCOOでは複数のブロックサイ ズで疎行列を格納し,その中でメモリ使用量が最も少ないサイズを選択する.この最適化 により多くの疎行列でRBP法よりメモリ使用量が多少少ない結果となった.
時間発展ごとに疎行列の形式が変わる数値シミュレーションでは,時間ステップごと に変換を行う必要があるため,疎行列格納方式への変換時間が重要となる.しかしなが
らBCCOOは多くの最適化を行う必要があることから変換時間が多く必要となる.一方
RBP法は各非ゼロ要素の列番号を一度参照するだけで変換することができることから変 換が高速である.RBP法の変換時間の評価は5.9節にて行う.
RBP法はBCCOOに比べ変換時間が短いながらも,mac econ,mc2depiを除くFEM で生成された疎行列において平均メモリ使用量の差は3.4%に抑えられている.