3Dゲーム制作の先生から教わったCUDAが、私の物理学の博士論文になるまで(前編)
2008年秋、私は京都のとある専門学校で、卒業制作を行っていた。卒業制作のテーマは、「3Dゲーム風に美しく描写されたリアルタイム分子動力学(MD)シミュレーション」だった。描画エンジンにはDirectXを使い、シミュレーション対象は、レナード・ジョーンズポテンシャルで相互作用するシンプルなアルゴン原子系だった。
周囲の学生が卒業制作で3Dゲームを作っている中で、私はこのように「浮いた」卒業制作を行っていた。私は長崎大学工学部を卒業した後、ゲーム制作や電子工作を学ぶために専門学校へ入学していた。そんな私にとって、3Dゲームと物理学を融合させることは極めて自然だった。
そんな中、ある先生が私にこう教えてくれた。その先生の専門は、もちろん3Dゲーム制作である。「NVIDIAがCUDAという技術をリリースしている。数値計算がGPU上で高速に実行できるそうだ。君の卒業制作に役立つかもしれない」。当時の私はこれを聞いて、MDよりも第一原理計算にCUDAという技術が役立つかもしれないと閃いた。
当時の私は、第一原理計算についてほとんど無知だった。ただ、「実験しなくても物質の性質が分かる魔法のような技術」らしいと聞いていた。今思えば、この素朴な理解は、後に私の博士論文で扱うことになる第一原理計算の本質を、ある意味では捉えていた。そしてもう一つ、第一原理計算の重い部分の多くは、行列演算に帰着される、ということも聞いていた。一方、3Dゲームの内部でも、行っていることの多くは行列演算である。頂点座標の変換、視点変換、投影変換。美しい3D空間の背後には、膨大な数の行列演算がある。
当時の私はこう直観した。「3Dゲームと第一原理計算はCUDAでつなげられる」、と。しかし、2008年当時の私は、第一原理計算は個人が気軽に実行できるものではないと思い込んでいた。実はこの時点でも、私が後に開発に携わることになるOpenMXは公開されており、ダイヤモンド程度の小規模な系であれば当時のPCでも計算可能だった。ただし、研究レベルの本格的な計算には、研究室の計算機環境やスーパーコンピュータが必要だった。そして当時の私が在学していたのは専門学校であり、大学の研究室のような計算機環境は存在しなかった。それでも私は、いつかこの直観を実現できると、根拠もなく確信していた。
そして2009年、専門学校を卒業した私は、北陸先端科学技術大学院大学(JAIST)に入学した。JAISTは石川県の山あいにある、かなり独特な大学院大学だった。当時の私にとって、専門学校卒業後というイレギュラーな経歴でも挑戦でき、しかも自分の興味に近い研究室がある、数少ない選択肢だった。それが尾崎泰助研究室で、第一原理計算ソフトOpenMXの開発を行っている研究室だった。入学に先立って、私は尾崎先生の研究室を訪問していた。私の異色の経歴に対して、何も否定的なことを言わなかった、稀有な先生だった。他の研究室も訪問したが、先生方からは「そのまま就職した方がいいんじゃない?」といったことを言われたこともあった。だから、尾崎先生との出会いは、私にとって非常に大きかった。後に私の恩師となる尾崎先生を、インターネット検索で見つけることができたのは、本当に幸運だった。
JAISTに入学してから、私は尾崎先生に自分の構想を語った。「OpenMXをGPUで加速する」という構想である。この構想は、少なくとも主要な第一原理計算コードのGPU対応が広く語られるより、かなり早かったと思う。VASPやQuantum ESPRESSOといった、世界的に広く使われている第一原理計算コードがGPU加速されるのは、もっと後のことである。しかし、この構想を聞いた尾崎先生の反応は芳しくなかった。正確な言葉は覚えていないが、趣旨としてはこうだった。「君の構想のためには、まずはGPUを買わないといけないね。うちの研究室にそんなお金は…」だった。それは当然だった。現実問題として、当時のGPUは今よりはるかに性能が低く、十分なVRAMもなかった。CUDAも、現在のような成熟した科学計算基盤ではなかった。
結局、当時のハードウェア環境と研究室の状況を考え、私はGPU加速ではなく、擬ポテンシャル(※)の研究を行うことになった。この擬ポテンシャルの研究は、これはこれで私にとって非常に意義のあるものとなった。後に以前のnote記事で述べた、ランダムサンプリングで擬ポテンシャルの生成パラメータを半自動的に決定するという「MISAKAアルゴリズム」を生む契機となった。しかし、これはまた別の物語である。
私は、尾崎先生の下で多くを学んだ。密度汎関数理論(DFT)はその最たるものである。しかし、2009年に私が思い描いた「OpenMXをGPUで加速する」という構想は、実現するまでに実に15年の期間を要することになる。
中編に続く。
※擬ポテンシャルとは、第一原理計算で電子と原子核の相互作用を効率的に扱うための数学的手法である。
