• 検索結果がありません。

第 6 章 Strassen アルゴリズムの speedup 予測式 37

6.6 まとめ

Strassenアルゴリズムによる行列の乗算の標準的な方法に対するspeedupの予

測式を導いた. 予測式は三世代のGPUについて行数が6000以上で計測値と実測 値の差が2%以内で再現した. この結果に基づき GPUの基本的なリソース要因が どのようにStrassenアルゴリズムの計算速度に影響するのか考察をした.

図 6.7: Strassenアルゴリズムによるspeedupの理論値と実験値の比較(K20)

7 章 結論

GPUを用いたStrassenアルゴリズムによる行列の乗算の高速化を行った. NVIDIA GPU Tesla V100, P100およびK20を使用し,部分行列の乗算にCUBLAS-10. 1を 用いた. また計算過程をNVIDIA visual profilerを用いて解析することにより計算 の高速化に影響するGPUのリソース要因を調べた. 本研究の主要な寄与は以下の 三点である.

(1) 本研究のプログラムはこれまで報告されてきたStrassenアルゴリズムのGPU による計算の研究で最速の逐次計算プログラム[2]よりもすべての行列のサ イズで高速となった. GPU V100を用いた行数4096×4096の計算で先行研 究のプログラムより11%高速になった. また本研究の1-level Strassenアル ゴリズムのプログラムはCUBLAS-10. 1を用いた行列の標準的な乗算より も行数5200×5200以上で高速になり, 2-level Strassenアルゴリズムのプロ グラムは行数14336×14336で12%高速になった. これらの結果を4章と5 章で報告した.

(2) Strassenアルゴリズムの計算の高速化にCPUによるStrassenアルゴリズム の計算の場合とは異なるGPU特有のリソースの影響の仕方を初めて明らか にした. 部分行列の並列化を制限するリソース要因はCPUの場合は計算機 全体のメモリ容量であるが, GPUの場合はSMあたりのregister容量とGPU のSMの個数である. またTemporary行列の個数を減らすとCPUの場合は メモリとのデータの出し入れの回数が増えるために計算速度は低下するが, GPUの場合は逆に計算速度は高くなる. この理由はGPUではTemporary行 列のためのメモリの確保と解放が低速のCPU-GPU間の通信を介して行われ るからである. これらの結果を4章と5章で報告した.

(3) Strassenアルゴリズムによる行列の乗算の標準的な方法に対するspeedupの 予測式を導いた. 予測式は三世代のGPUの実測値をよく再現した. この結 果に基づき GPUの基本的なリソース要因がどのようにStrassenアルゴリズ ムの計算速度に影響するのか明らかにした. さらに様々な世代のGPUに適

用できるStrassenアルゴリズム計算のプログラムの標準的な行列の乗算に対

してどの行数から本研究のStrassenアルゴリズムが高速になるのか予測する ことができるようになった. これらの結果を6章で報告した.

本研究の結果はStrassenアルゴリズムによる行列の乗算の高速化にGPUが

今後重要な役割を果たすことができることを示している. 今後SMの個数が V100よりも多いGPUが実現すればStrassenアルゴリズムの部分行列の乗 算の並列化をさらに高めることができ,その結果 Strassenアルゴリズムの高 速化を通してGPUが科学技術の多くの数値計算の問題に威力を発揮し得る ことを本研究は示唆している.今後の展望として本研究のアプローチを他の 分割統治アルゴリズムにも適用する可能性を検討する。

参考文献

[1] J. Lobeiras, et al. Designing efficient index-digi algorithm for CUDA GPU architecture, IEEE Trans. Parallel Distrib. Syst. , vol. 27, no. 10, pp. 1331-1343, 2016.

[2] Pai-Wei Lai, Humayun Arafat, Venmugil Elango and P. Sadayappan, Accel-erating Strassen-Winograd’s matrix multiplication algorithm on GPUs, 2013 International Conference on Computer, Control, Informatics and Its Applica-tions (IC3INA), pp. 139-148, 2013.

[3] Nvidia Corp, NVIDIA CUDA C PROGRAMING GUIDE, October 2018.

[4] V. Strassen. Gaussian elimination is not optimal. Numer. Math. , 13:354-356, 1969.

[5] S. Winograd. On multiplication of 2×2 matices. Linear Algebra and Appli-cation, 4:381-388, 1971.

[6] A. R. Benson and G. Ballard, A framework for practical parallel fast matrix multiplication, in Proceedings of the 20th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, ser. PPoPP 2015. New York, NY, USA: ACM, 2015, pp. 42-53.

[7] D. H. Bailey, K. Lee and H. D. Simon, Using Starssen s Algorithm to Accel-erate the Solution of Linear Systems, J. Supercomputing, 4, 357-371, 1990.

[8] G. Ballard, et al. , Communication-optimal parallel algorithm for Strassen s matrix multiplication, In Proceedings of the 24th ACM Symposium on Par-allelism in Algorithms and Architectures, 193-204, ACM, 2012.

[9] J. Li, S. Ranka and S. Sahni, Strassen s matrix multiplication on GPUs, In Proceedings of the 2011 IEEE 17th International Conference on Parallel and Distributed Systems, ICPADS 11, 157-164, Washington DC, USA, 2011.

IEEE Computer Society.

関連したドキュメント