本研究では、SARIS (Stencil Acceleration using Register-mapped Indirect Streams)と呼ばれる手法を提案している。SARISは、ステンシルコードの計算ループ内で参照されるグリッド要素のオフセットを事前にインデックス配列に格納し、各グリッド点の更新時にこのインデックスを再利用することで、メモリアクセスのオーバーヘッドを削減する。
具体的には以下の手順で実現される:
提案手法は任意のステンシル形状やI/Oアレイ数に対応可能で、既存の最適化手法(ループアンロール、演算の再構成、ハードウェアループの活用など)と組み合わせることができる。
著者らは、オープンソースのRISC-VコンピューティングクラスタSnitch上で、提案手法を用いて各種ステンシルコードの並列実装を行い、評価を行った。その結果、ベースラインコードに比べて平均2.72倍の高速化、81%の高いFPU利用率、1.58倍の省エネ性能向上を達成した。さらに、256コアのマニーコアシステムでの性能推定では、平均2.14倍の高速化と64%のFPU利用率を示し、先行GPU実装よりも最大15%高い演算性能を得られることが分かった。
翻譯成其他語言
從原文內容
arxiv.org
深入探究