るGPUを搭載した計算機システムにおけるアプリケーションプログラマにとって 使いやすい利用環境のあり方を示すものとして意義がある.
5.2 今後の課題
本研究によって明らかとなった今後の課題は以下の2点である.
第1の課題は,OMPCUDAの実装によって明らかになった,汎用プログラミング 環境を用いたGPGPUの限界に関するものである.
アプローチ2では既存のCPU向け並列化プログラミング環境を用いたGPGPU プログラミングについて検討を行い,GPGPUに適した既存の並列化プログラミン グ環境としてOpenMPを選択し,CUDAと対応づけて高い演算性能を達成した.本 研究はアプリケーションプログラマにとっての習得や実装の手間を削減することを 重視した研究であるため,OpenMPに対する新たな指示子の追加等は行わないとい う方針で対応付けや実装を行った.
一方で,利用の手間や難しさが削減されることよりも高い性能が得られることを 重視するユーザ,高い性能が得られるのであれば習得や利用の手間と難しさが増加 してもかまわないというアプリケーションプログラマもいるものと考えられる.
例えばOMPCUDAの性能を向上させるための方法として以下のような2つの手
法が考えられる.
1. OpenMPとCUDAの対応付けについてはGlobalMemoryを共有メモリと見 なしてGPU上の全SP (CUDA Thread) が並列処理を行うものとしたため,
高速なCUDAプログラムを作成する上で効果の大きなSharedMemoryの活用 が行えていない.GlobalMemoryとSharedMemoryに (さらに可能であれば ConstantMemoryやTextureMemoryにも) 適切にデータを割り当てることが できれば,より高い性能を得ることができる可能性がある.
2. 現在のOMPCUDAは,OpenMPの並列実行部をGPUで実行するというOpenMP とCUDAとの対応付けを行っている.しかし,アプローチ1においてCPUと GPUによる並列処理を行うことでCPUとGPUの性能を活用しさらに高い演 算性能を得られることを示したように,GPUによる並列処理は問題のデータ
5.2 今後の課題 133
規模等によってはCPUよりも良い性能が得られないことがあり,またCPU とGPUによる問題分割を行うことでさらに高い演算性能を得られることが期 待できる.そのためマルチコアCPUとGPUを搭載したような計算機システ ムにおいては,並列実行部ごとにCPUで実行するかGPUで実行するかを切 り替えることでより高い性能が得られる可能性があり,さらに1つの並列実行 部をCPUとGPUで分割して実行すればさらに高い性能が得られると考えら れる.
これらの手法を実現するには,プログラム変換機構を改良し,OMPCUDAがGPU 上の複数種類のメモリをさらに有効に活用したり,CPUとGPUによる問題分割・
並列実行などを行えるようにする必要がある.一方で,OpenMPは単一の共有メモ リを持つ計算機システムにおいて利用されることを想定して仕様が決められており,
またCUDAではCPUとGPUのメモリ空間が独立しているうえに任意のタイミン グでCPU-GPU間のデータ送受信を行うことができない.そのため既存のOpenMP の指示子では,アプリケーションプログラマがプログラム変換機構が上記のような メモリの活用や問題分割・並列実行を含むプログラム変換を行うのに十分な情報を 記述できない可能性がある.
このように,既存の汎用プログラミング環境はCPUを対象として提案・実装さ れてきたものであるためGPGPUに利用する場合にはどうしても適用できない・非 常に適用しにくいという問題が生じる可能性がある.これらの問題を解決してGPU を搭載した計算機システムの性能をさらに活用するためには,既存の汎用プログラ ミング環境に対してある程度の仕様変更や仕様追加を行わなくてはならない可能性 が考えられる.
そのため,今後さらに高い性能への要求が高まった場合には,“既存の指示文の みでも正しく (GPU上で並列に)動作し,新たな指示文を用いるとさらに (CPUと GPUによる問題分割を行い)性能が向上する”など,既存のCPU向け並列化プログ ラミング環境に対してアプリケーションプログラマにとっての習得の手間を大きく 増加させることなくGPUの性能を活用しやすいようにするにはどのような変更を 加えていくべきかが課題となると考えられる.
第2の課題は,GPU以外のSIMD型アクセラレータやOpenCLとの比較である.
Cell向けのOpenMP環境が開発されていることを2章で述べたが,CPU・Cell・
5.2 今後の課題 134
GPUはそれぞれ異なる特徴を持つハードウェアであるため,同じOpenMPを用い たプログラミングでも性能最適化のためのチューニング方法等が異なる可能性があ る.これらを比較することで,アプリケーションプログラマにとってさらに利用し やすく高い性能が得られるGPGPU環境を提供できるようになることや,GPUだ けではなく他のSIMD型アクセラレータも含めてアプリケーションプログラマに利 用しやすく高い性能が得られるプログラミング環境の提供につながるものと考えら れる.
またOpenCLが普及し様々なハードウェア上で同じプログラムが利用できるよう
になった際には,OpenCLさえ習得すれば汎用性の高いプログラムが記述できるよ うになりアプリケーションプログラマにとっての習得や利用の手間が削減されること が考えられる.一方でOpenCLそのものの習得や利用の手間が生じるため,OpenCL を用いてアプリケーションプログラマが1からプログラムを記述した場合と本研究 の各アプローチを用いた場合とで手間や性能にどのような差が生じるかを比較する ことや,OpenCL上に既存のCPU向け並列化プログラミング環境を実装すること で,さらにアプリケーションプログラマにとって利用しやすく高い性能が得られる プログラミング環境の提供につながるものと考えられる.
謝辞 135
謝辞
本研究を進めるにあたり,あたたかいご指導ご鞭撻を頂きました並列処理学講座
(現在高性能コンピューティング学講座)本多弘樹教授に心から感謝の意を表します.
電気通信大学 弓場敏嗣名誉教授,電気通信大学 近藤正章准教授,東京大学 片桐 孝洋准教授,東京工業大学 吉瀬謙二講師,電気通信大学 平澤将一助教には,研究 内容についてのご助言のみならず,研究の進め方や研究者としての物事の見方・考 え方についても多くのご助言を頂きました.心からお礼申し上げます.
本研究の一部は独立行政法人 科学技術振興機構(JST) 戦略的創造研究推進事業
(CREST) の支援を受けて行いました.日頃からご助言を頂いた本事業グループの
方々に感謝いたします.
本研究の一部は独立行政法人 情報処理推進機構(IPA)主催の未踏ソフトウェア創
造事業(未踏ユース)の支援を受けて行いました.また,未踏ユースの関係者および
開発者の皆様には研究に対するご助言を頂いたのみならず,ソフトウェア開発者と しての情熱や心構えを学ばせていただきました.心から感謝いたします.
GPGPUの研究を行うきっかけの一部となった,そして学生生活を支えてくれた
電気通信大学 X680x0同好会の皆様に感謝いたします.
最後に,研究に関する議論や学生生活を支えて頂いた石原誠氏,田邊浩志氏,渡 邊啓正氏,ほか並列処理学講座・高性能コンピューティング学講座の皆様に感謝い たします.
参考文献 136
参考文献
[1] 佐久間弘文. 地球シミュレータ:2.地球シミュレータの応用2.1大気・海洋の シミュレーション. 情報処理学会会誌, Vol. 45, No. 2, pp. 130–133, 2004.
[2] 斎藤稔. 地球シミュレータによる蛋白質の大規模シミュレーション:ベクトル 化と並列化による加速性能. 情報処理学会論文誌 コンピューティングシステ ム, Vol. 46, No. SIG7(ACS10), pp. 9–17, 2005.
[3] 朴泰祐,佐藤三久,宇川彰. 計算科学のための超並列クラスタPACS-CSの概要 . 情報処理学会 研究報告(HPC-103), pp. 133–138, 2005.
[4] 谷啓二, 横川三津夫. 地球シミュレータ計画:<前編>地球(ガイア)との共 生の指針を求めて. 情報処理学会会誌, Vol. 41, No. 3, pp. 249–254, 2000.
[5] 松岡聡. TSUBAMEの飛翔: ペタスケールへ向けた「みんなのスパコン」の構 築. 情報処理学会 研究報告(HPC-107), pp. 37–42, 2006.
[6] Hiroshi Nakashima. T2K Open Supercomputer: university and Inter-disciplinary Collaboration on the New Generation Supercomputer.Informatics Research for Development of Knowledge Society Infrastructure, International Conference on, Vol. 0, pp. 137–142, 2008.
[7] 独 立 行 政 法 人 理 化 学 研 究 所. 次 世 代 ス ー パ ー コ ン ピュー タ 施 設 の 立 地 地 点 を 神 戸 に 決 定. プ レ ス リ リ ー ス, http://www.riken.go.jp/r-world/info/release/press/2007/070328/index.html, March 2007.
[8] A. Gara, M. A. Blumrich, D. Chen, G. L.-T. Chiu, P. Coteus, M. E. Gi-ampapa, R. A. Haring, P. Heidelberger, D. Hoenicke, G. V. Kopcsay, T. A.
Liebsch, M. Ohmacht, B. D. Steinmacher-Burow, T. Takken, and P. Vranas.
Overview of the Blue Gene/L system architecture. IBM Journal of Research and Development, pp. 195–212, 2005.
[9] Intel. Intel(R) Pentium(R) 4 Processor 6xx Sequence and Intel(R) Pentium(R) 4 Processor Extreme Edition Datasheet, 2005.
参考文献 137
[10] IBM. IBM Unleashes World’s Fastest UNIX System, Offers Twice the Perfor-mance of HP Itanium System at Comparable Price. Press release, http://www-03.ibm.com/press/us/en/pressrelease/23843.wss, April 2008.
[11] Stephen L. Smith. Intel Roadmap Overview. Intel Developer Forum’s presen-tation, 2008.
[12] Randy Allen. AMD Financial Analyst Day. AMD Financial Analyst Day’s presentation, 2008.
[13] NVIDIA. NVIDIA Tesla Computing Solutions now with the world’s first teraflop parallel processor. Press release, http://www.nvidia.com/object/io 1213744368983.html, June 2008.
[14] AMD. AMD Stream Processor First to Break 1 Ter-aflop Barrier. Press release, http://www.amd.com/us-en/Corporate/VirtualPressRoom/0,,51 104 543 15104˜126593,00.html, June 2008.
[15] John D. Owens, David Luebke, Naga Govindaraju, Mark Harris, Jens Kr¨uger, Aaron E. Lefohn, and Timothy J. Purcell. A Survey of General-Purpose Com-putation on Graphics Hardware. In Eurographics 2005, State of the Art Re-ports, pp. 21–51, August 2005.
[16] gpgpu.org. General-Purpose computation on GPUs(GPGPU) website, http://gpgpu.org/.
[17] Dinesh Manocha. General-Purpose Computations using Graphics Processors.
In Computer, Vol.38, Num.8, pp. 85–88. IEEE Computer Society, 2005.
[18] David Geer. Taking the Graphics Processor beyond Graphics. In Computer, Vol.38, Num.9, pp. 14–16. IEEE Computer Society, 2005.
[19] T.Amada, M.Imura, Y.Yasumuro, Y.Manabe, and K.Chihara. Particle-Based Fluid Simulation on GPU. InACM Workshop on General-Purpose Computing on Graphics Processors(Poster session), 2004.
参考文献 138
[20] E.Scott Larsen and David McAllister. Fast matrix multiplies using graphics hardware. In Proceedings of the 2001 ACM/IEEE conference on Supercom-puting, p. CDROM, 2001.
[21] 松井学,伊野文彦, 萩原兼一. プログラマブルGPUにおけるLU分解の設計と 実装. 先進的計算基盤システムシンポジウムSACSIS2005, pp. 359–367, 2005.
[22] Nico Galoppo, Naga K. Govindaraju, Michael Henson, and Dinesh Manocha.
LU-GPU: Efficient Algorithms for Solving Dense Linear Systems on Graphics Hardware. In Proceedings of the ACM/IEEE SC—05 Conference, p. 3, 2005.
[23] 小松原誠,森眞一郎,中島康彦,富田眞治. 汎用グラフィクスカードを用いた格子 ボルツマン法による流体シミュレーション. 情報処理学会 研究報告(ARC-163), pp. 37–42, 2005.
[24] 森眞一郎,五島正裕, 中島康彦, 富田眞治. 並列ベクトルプロセッサとしてのグ ラフィクスプロセッサ. 情報処理学会関西支部大会, pp. 179–182, 2004.
[25] 丸山悠樹, 中田智史, 高山征大,篠本雄樹, 五島正裕, 森眞一郎, 中島康彦, 富田 眞治. 汎用グラフィクスカードを用いた並列ボリュームレンダリングシステム . 情報処理学会論文誌, Vol.45, No.SIG11, ACS7, pp. 415–424, 2004.
[26] 篠本雄基, 三輪忍, 嶋田創, 森眞一郎, 中島康彦, 富田眞治. 並列ボリュームレ ンダリングにおける投機的描画に関する考察. 情報処理学会 研究報告, 2005-ARC-164, pp. 145–150, 2005.
[27] Mark Joselli, Esteban Clua, Anselmo Montenegro, Aura Conci, and Paulo Pagliosa. A new physics engine with automatic process distribution between cpu-gpu. In Sandbox ’08: Proceedings of the 2008 ACM SIGGRAPH sympo-sium on Video games, pp. 149–156, 2008.
[28] Mark Harris. Gpu physics. In SIGGRAPH ’07: ACM SIGGRAPH 2007 courses, p. 15, 2007.