[没原稿] GPUを用いた高性能数値計算法の研究

 「私の研究」というテーマで学園報に原稿を依頼されたので一発目に書いたのが下記の内容。さすがに砕けすぎと読み返して判断したので硬い文章で節に分割したものを新たに書き起こして提出した。まぁ大筋最初に書いたものと大差ないんだが。つーことで没にしたのが日の目を見ないもの何なんでここに公開する次第である。

——————————–

 「コンピューターの前に張り付き,数値ばっかり打ち出しては眺めてあれこれ思案している不思議な研究」というのが,本学に着任する前に在籍していた職場の上司評であった。正確には私の出身研究室の先輩がその上司と同じところで働いており,その先輩の仕事ぶりがかくの如きの印象であったらしい。そして基本的には私の現在の研究も大差ない。ただし,目の前にあるのはGPU(Graphics Processing Unit)を積んだやたらに高熱を発するパソコンであり,眺める数値は計算結果だけではなく,数値を吐き出すプログラムの処理時間だったりする。
 現在の科学技術はコンピューター上で実行される擬似的な仮想実験,すなわちコンピューターシミュレーションが重要な地位を占めている。いっとき世間を賑わせた行政の事業仕分けにおいて「二位じゃダメなんですか?」と問われた理化学研究所に設置されているスーパーコンピューター「京」が必要とされるのも,シミュレーションの処理速度が科学技術研究の進捗の決め手になるからだ。その核心部分には微分積分の計算や,行列やベクトルの計算が繰り返し使われる。ことに後者は線型計算と呼ばれ,大規模な科学技術計算の処理速度を決める重要な核である。現在スーパーコンピューターの処理速度の全世界的な競い合いで使われるのは,巨大な鶴亀算,すなわち連立一次方程式を解くためのプログラムだが,これも線型計算の一ジャンルである。私が鈴与教育研究活動支援金を頂き,秋田県立大学のO教授・H准教授・N助教の研究グループに一か月少々混ぜて頂いて行った研究もこの線型計算の高速化へのチャレンジの一つであり,高速化のための重要なツールとしてGPUを活用したのである。ゆえに,私は2012年2月下旬から3月末まで,由利本荘市のキャンパスで日がな一日,パソコンの前に座ってプログラミングしては実行し,GPUによる計算の高速化の効果を調べていたという次第である。傍から見ればまさに「日がな一日パソコンに張り付いては数値ばっかり見ていた」ことになる。
 ところでGPUという名前でピンとこない方でも,近年のコンピューターゲームやCGのリアルさは良くご存知であろう。あの細かい陰影は計算処理によって生み出されており,その処理を専門に行う特殊な電子部品としてGPUは発達してきた。元々は科学技術計算とは関係のないパーツであったものが,市場原理によってドンドンその能力を高め,ついには科学技術計算の基盤である浮動小数点演算を実行できるまでに成長したのである。パソコンに詳しい方なら,AMDやNVIDIAというGPUメーカーの名前を聞いたことがあるだろう。現在隆盛なのは後者が無料の開発ツール込みで普及を後押ししているCUDA(クーダ)であり,毎年NVIDIA社が開催しているGTC Japanは数千人の来場者が訪れるイベントになっている。私の研究もこのCUDAを使って線型計算を高速化した上で,微分方程式の数値解を高速に導出するために応用することを目指して行ったものである。この研究結果の詳細は静岡理工科大学紀要第21巻(2013年)に掲載されているのでご興味ある方はWeb上からも読めるので参照されたい。以下,その概要について簡略化して述べることにする。
 CUDAの良いところは,市販のパソコンに搭載されるグラフィックスカード(但し,NVIDIA社のGPUが搭載されているものに限る)を買ってきてデスクトップパソコンの拡張スロットに刺せばすぐに開発に着手できることにある。とは言え,そこは商売,NVIDIA社のGPUであれば何でも良いというわけにはいかない。特に科学技術計算では桁数の多い浮動小数点演算が不可欠であるが,市販の安いグラフィックスカードでは単精度(10進約7桁)の浮動小数点演算を高速化するのがせいぜいで,主流の倍精度(10進約16桁)の計算を行うにはより高価な科学技術計算専用のGPUが必要となる。そこで理工科大学の学内研究費の援助を得てTesla(テスラ)C2070という高価なGPUを搭載したコンピューターを購入し,CUDAプログラムの開発にはもっぱらこのマシンを利用して倍精度線型計算の高速化を追求した。結果としては既存のものより2倍以上の高速化が達成でき,これを土台として構築した常微分方程式の数値解計算も,大規模問題になれば最大数十倍まで高速化できることも分かった。
 GPUは組み込み用の小型コンピューターやスマートフォンでも普通に搭載されている。この研究の延長として,今年度はJetson TK1という小型の組み込み用コンピューターボードを購入し,線型計算のベンチマークテストを行ってみた。今のところ,大規模計算には向いていないが,数年前のパソコン以上の能力は持っており,今後急速に能力アップするに違いない。スーパーコンピューターから組み込みコンピューターまで幅広く使用できるGPUの能力を最大限生かすべく,本研究を継続していきたいと考えている。