Google 翻訳 _ttp://arxiv-vanity.com/papers/1612.00530/# ? ry として提供しているので、PDFを詳しく読む必要 ry 。 arXiv Vanityは、 arXivの学術論文をレスポンシブWebページとしてレンダするので、PDF に煩わされる必要はありません。 arXiv.orgでこの論文を読んでください。
本稿では、PEZY-SCプロセッサ上でのスパース行列とベクトルの乗算(以下、SpMV乗算)の実装と性能 述べる。 特に、パフォーマンスに対するさまざまなデータ圧縮方式の影響に焦点 。 スパース行列とベクトルの乗算は、不規則グリッドを使用する多くの実際のアプリ の中で最も時間がかかる部分 。 最もよく知られている例は、構造解析と他の多くのCAEアプリ のためのFEM(有限要素法) 。 不規則なグリッドは、複雑な形状を持つオブジェクトの分析を可能にするために不可欠 ? ry が、一般的に不規則な ッドははるか ry 数の自由でより ry します。 規則的なグリッドを複雑な形状に適用 は不可能ではありませんが一般的には、不規則なグリッドは遥かに少 数の freedoms で、より正確な結果 。
? ry 乗算で合理的な効率 ry 。 しかしながら、現代のHPCシステム上でのSpMV乗算に於ては合理的効率さえ達成 は非常に困難 ? この問題には主に2つの理由 ry 。 この困難には 2 つの主たる理由 。 最初のものはメモリ帯域幅 ? ry ます。 行列Aとベクトルxの乗算を考えます、 y = A x 。 (1)
? 実際のア では、行列Aは大きすぎてキャッ に収まりません。 現実のアプリ には行列Aは、キャッシュメモリに収めるには大き過ぎます。 ? ry yははるかに小さいので、常に広範囲のデータを再利用する可能性があ 。 一方、ベクトルxとyそれらは遥かに小さく、そしてそれらの為の広範囲データ再利用の実現性が常にあります。 ? ry 、SpMV動作のため ry の主な部分 ry 。 したがって、 SpMV オペレーションのためのメモリアクセスの支配的部分は、(スパース)行列Aの読み取り 。 0021yamaguti垢版2019/10/30(水) 06:19:18.18ID:mUIxiXRX ? ry Aのゼロ以外の要素数 ry 。 行列Aの正確なデータサイズは、 データ形式によって異なりますが、 A の要素である所の非ゼロなものの個数より小さく できません ? Aの 1つの非ゼロ要素あたり ry 。 A の非ゼロ要素 1 つあたりの浮動小数点演算の数は2 したがって、 倍精度フォーマットである場合、2 浮動小数点演算ごとに8バイトのメモリ読み取り ? つまり、「 ry 。 言換えれば、「必須」B / F(byte per flops)数は8/2 = 4 ? ここでは、インデックス用に読み込まれたメモリを無視したことに ry 。 インデックス用に読込まれるメモリを我々が無視している事に注意 ? FLLア ry 50100 ry 。 FEM アプリ で行列を保存 に最も効率的な形式 ELL形式 、必要な帯域幅は50〜100%増加する可能性 従って、B / F数に関して要求されるメモリ帯域幅は、6から8の間であり得る。
? ry かなりの部分を ry 。 1980年代のベクトルマシンのハードウェアB / F数は4から12の間だったので、1980年代にはベクトルスーパーコンピュ はSpMV動作のメモリ帯域幅要求の少なくともかなりの割合をサポートできるメモリサブシステムを持っていました。 0022yamaguti垢版2019/10/30(水) 06:19:41.50ID:mUIxiXRX _ttp://webcache.googleusercontent.com/search?q=cache:arxiv.org/pdf/1612.00530#2
? マシン ry 秒あたりの浮動 ry の理論上のピーク ry 。 ここで ハードウェアB / F数は、1秒当り浮動小数点演算数で測定 浮動小数点演算ピーク性能理論値で割った、バイト/秒での理論的な(または測定 )メモリ帯域幅と 定義 。 1980年代のベクトルマシンは、SpMV乗算のために浮動小数点ユニットをビジー状態に保つ 十分なメモリ帯域 持っていました。
しかし、最近のHPCシステムで使用されているマイクロプロセッサのB / F数ははるかに少 ? ry 、Kコンピュータ ry 。 、京コンピュータのB / F数は0.5 、 今日の標準ではかなり例外的に高 ?ry of around 0.2. 最近のXeonベースのシステムでは、B / F値は約0.2です。 ? ry around or less than 5%. 必要なB / F数が6の場合、 現代のHPCシステムの理論上の最大効率が約5%以下 意味します。
? ry マシンのHPLパフォーマンスの測定値 ry パフォーマンスの測定値の比率 ry 。 、2016年6月のHPCGベンチ ※1 のトップ10 マシン HPLパフォーマンス測定値とHPCGパフォーマンス測定値との間の比率は0.4〜5%の範囲であり、Xeonベースのシステムの数は2〜3% 。
? ry は、明らかにそれらに対するSpMV乗算の非常に低い効率の主な理由です。 したがって、現代のHPCシステムの低メモリ帯域幅は、それらでのSpMV乗算の非常に低い効率の明らかな筆頭の理由 。
? ry は、要素ごと(EbE)の方法です。 必要なメモリ読み取りを減らすための1つの方法は、 EbE ( element-by-element : 要素ごと ) メソッド ? ry では、スパース行列Aは、各要素の元の ry データからその場で構築 ry 。 EbE法では、各要素の、元の物理データと位相データとから、オンザフライでスパース行列 A が構築 ? すべての要素 ry は生成 ry を減らす ry 。 その全要素の総データ量は、生成された行列のサイズよりもかなり小 、メモリアクセスの量を我々は減 。 行列のオンザフライ構成の計算コストがかなり高い場合でも、EbE法に移行 で総計算時間を大幅に減 。 EbE法は、計算コストが増加しても実際の計算速度を大幅に向上 、多くのFEMアプリ で広く使 。 0024yamaguti垢版2019/10/30(水) 06:22:34.99ID:mUIxiXRX 必要 メモリアクセス量を減 に潜在的に有用であり得る別 法は、 行列を圧縮 。 ただし、HPCアプリ でのデータ圧縮の使用に関する多 研究論文があるにもかかわらず、SpMV乗算へのデータ圧縮の適用に関する研究はほとんどない ? ry するためには、1つの行列要素あたり ry 。 考えられる理由の 1 つは、実際の高速化を達成 際の、行列要素 1 つあたりの浮動小数点演算の数が2つだけなので、データ圧縮解除アルゴリズムは非常に効率的でなければならないこと ? 解凍ア が2、3以上の命令を必要 ry それは総費用のかなり ry 。 ほんの幾つかでなく更なる命令をもしも解凍アルゴリズムが必要 ならば、 トータルコストのかなりの増加を引き起 ? ry に、一般に、解凍ア はいくつかのテーブル ry 操作、すなわち現代 ry 特に効率的ではない間接的なメモリアクセスを必要 ry 。 さらに、現代のマイクロプロセッサにとって特に非効率的な、テーブルルックアップ操作即ち間接メモリアクセスをいくつか、一般に解凍ア は必要とする。