Row Block Packing method (RBP 法 )
5.6 評価実験概要・環境
本節よりRBP法の評価実験を行う.RBP法は疎行列からの変換時間を重視した手法で
あり,GMRESにおいて変換時間が支配的にならないことを確認することが重要である.
広い範囲に対して圧縮を行うPatCompに比べて,狭い範囲での圧縮を行うRBP法がメ
モリ使用量の削減率,SpMV演算時間がどのように影響するか確認する.
表 5.1: Expriment condition Specification
OS Ubuntu 16.04
CPU Intel Core i7 6700K @ 4.0 GHz
GPU NVIDIA Tesla V100 @ 1.38 GHz
device memory 16 GB device memory bandwidth 900 GB/s
CUDA core 5,120
CUDA CUDA 10.1
Compiler gcc-4.4.7
Start
ELL, ELLRCSR,
RBP
GMRES End FEM
GMRES
(1) CPU
GPU
CPU GPU
Return
No Yes
CPUGPU (2) SpMV
PatComp
GPU上の処理
図 5.5: Model of Calculating GMRES with RBP and PatComp
RBP法の評価実験で使用するGPUサーバ,疎行列は4.6で使用した条件と同じである.
再度表5.1,表5.2に実験環境と使用した疎行列を示す.
また,表5.2中のN,Nz,Nnon,K,Kv,Kcは,式(3.1)から(5.2)で使用されている変数に 対応している.本実験にて使用する疎行列格納方式は,CSR, RBP-CSR, ELL, RBP-ELL, ELL-R,RBP-ELL-R,PatCompである.RBP-ELL-Rは,RBP-ELLに各行の非ゼロ要 素数を示す配列を追加しただけである.ELLの演算性能を高めたELL-RにRBP法を適 用することで,RBP法の演算性能への影響も確認する.
表 5.2: Sparse Matrices for the expiments
Name of matrix N Nz Nnon K Kv Kc
cant 62,451 4,007,383 87,657 78 78 28
rma10 46,835 2,374,001 447 145 145 40
consph 83,334 6,010,480 52,325 81 81 42 parabolic fem 525,825 3,674,625 2,081,987 7 7 6 pwtk 217,918 11,524,432 4,049 180 180 28 thermal2 1,228,045 8,580,313 5,192,466 11 10 8 af shell9 504,855 17,588,845 0 40 40 10 F1 343,791 26,837,113 9,300 435 435 162 nd24k 72,000 28,715,634 887,233 520 509 126 dielFilterV2real 1,157,456 48,538,952 18,745,748 110 87 56 Cube Coup dt0 2,164,760 124,406,070 0 68 68 34 Bump 2911 2,911,419 127,729,899 86,208 195 195 68 Queen 4147 4,147,110 316,548,962 1 81 81 54
UT-Heart1 82,047 3,423,519 0 63 63 40
UT-Heart2 130,595 6,954,413 969,595 124 111 50
図5.5は実験で使用する,FEMにて生成された連立一次方程式(疎行列)にRBP法.
PatComp法を適用し,GMRESで解くことを想定したモデルを示す.赤枠より上の処理,
「FEMモデルの生成」,「作成された疎行列をファイルに保存」で保存された疎行列に,
Florida Sparse Matrix Collectionまたはアプリケーション例として加えた2つの疎行列 を使用することで評価を行う.評価対象は,図5.5中の赤枠,つまりGMRES処理の開始 から終了までである.GPUによる評価を行うために,NVIDIAが提供するCUDA10.1を 使用し,各疎行列格納方式を用いたSpMVを組み込んだGMRESプログラムを記述した.
疎行列ファイルの読み込みからRBP法,PatCompの適用,GMRESの初期処理までが CPU上で処理し,その後はGPU上での処理となる.図5.5の青枠で囲まれた部分がGPU 上で実行される.データ転送時間,GPU演算時間は,CUDAのイベント変数を用いて,
“cudaEventRecord()”,“cudaEventElapsedTime()” により測定を行った.またGPUによ る高速化の有効性を示すため,CPU版のGMRESとの比較を行う.CPU版のGMRESは 図5.5の処理全てをCPU上で行う.
5.7節では,RBP法,PatComp法をそれぞれ用いて疎行列を格納した際に必要となる メモリ使用量を評価し,5.8節では図5.5内のSpMV(赤ブロック)のSpMVを1回実行し た際の演算時間を評価する.最後に5.9節にて,図5.5内の赤枠全体の演算時間の評価を 行う.