素敵なコンピュータの作り方
◆先生の専門分野である「計算機システム」の中の「リコンフィギャラブルコンピューティング」分野を簡単に説明してください。
私たちの身の周りにはたくさんのコンピュータが存在し、あらゆる場面で生活を支えています。「リコンフィギャラブルコンピューティング」では、より高速で、省エネ、低コストなコンピュータを「やわらかいハードウェア」という考え方で実現することを目指しています。
一般的に、コンピュータに何をさせるかをまとめたものがソフトウェアであり、それを解釈して処理するのがハードウェアであると認識されていると思います。その垣根を取り払い、処理内容に応じてハードウェアの形を変えることで、ソフトウェアとハードウェアを分けたコンピュータでは達成できない高い性能や電力効率を得ることができるようになります。問題は、「やわらかい」といってもハードウェアはソフトウェアと比べて、所望の動作をするものを作るのが難しいという点です。
私は特に、FPGAと呼ばれる再構成可能ハードウェア上に実現する回路を、今時の扱いやすいプログラミング言語の力を応用して、簡単に楽しく作るためのソフトウェア技術の研究をしています。
◆先生の研究内容とそのめざすところを教えてください。
素敵なコンピュータの作り方について研究しています。ここでいう素敵とは「高速」「省エネ」「安価」そして「楽しい」などの視点で優れていることを指します。最近はFPGAなどの「やわらかいハードウェア」を活用した、人工知能コンピュータの開発に取り組んでいます。
特に近年主流の深層学習(ディープラーニング)を高速・省エネルギーで処理するハードウェアと、ハードウェアらしさを最大限活用する、深層学習アルゴリズムについて、ハードウェアとアルゴリズムの両面から研究を進めています。また、アルゴリズムに特化した高品質なハードウェアを簡単に作るための、高位設計・高位合成コンパイラ技術についても研究を進めています。
今後はあらゆるデバイスが、少ないエネルギーで賢い判断ができるようになり、私たちが社会生活のあらゆる場面を無意識に支えてくれる「知能」が、より発展していくと考えています。
◆先生は研究テーマをどのように見つけたのかを教えてください。
センサーなどのデータ生成源やロボットのなどの制御対象デバイスの近くで計算処理を行うことをエッジコンピューティングと呼びます。エッジコンピューティングにおいて、反射神経のように、何かを俊敏に制御するための判断を高い精度で行うには、限られたエネルギーで高速に計算を行うためのハードウェアが必要です。
ところが、多くのエッジ向けの深層学習ハードウェアは、計算処理の正確性を妥協し、ハードウェア構成を簡略化することで高速化・省エネ化を達成しますが、その代わりに認識精度が低下することが知られています。一方、深層学習の学習技術については、認識精度を高めるためのアルゴリズムが研究されていますが、ハードウェア化を考慮したものはありません。そこで、ハードウェア化により劣化する部分を、学習時に予め補うことで、高速化・省エネ化のために妥協した軽量なハードウェアでも、高い認識精度が達成できるようになるのではないかと考えて、ハードウェアとアルゴリズムの両面から研究を進めています。
ある目的に対して、異なる側面からアプローチすることで、ひとつの側面からだけでは見つからない解決方法が見つかることがあると思います。日頃から、ぱっと見は異なる事柄であっても、それらがどのように関連するかを気にしてみると面白いと思います。
◆この分野に関心を持った高校生がより深く知るための具体的なアドバイスをいただけますか。
深層学習については、最近は多数の本が出版されていますので、本屋さんで気に入った本を手に取って読んでみるのが良いと思います。深層学習を実際に体験するために必要なソフトウェアは、ほとんどオープンソースソフトウェアとして公開されていますので、自宅やクラウドコンピュータで気軽に試すこともできます。
コンピュータの作り方については、まずは安価なFPGAボードを購入し、自分だけのデジタル回路を作ってみると面白いと思います。より速いコンピュータを作りたくなったら、コンピュータアーキテクチャの基礎理論を一度勉強し、そもそも良いコンピュータとは何かを理解してからの方が楽しめると思います。
◆先生は高専時代、何に熱中していたかを教えてください。
高専時代はアルバイトばかりしていて、あまり真面目な学生ではなかったですね・・・。でも、数学や情報工学関連の科目が幸運にして得意だったので、放課後の空き時間などにも楽しく自発的に勉強していたと思います。
◆先生の研究室の卒業生は、どのような就職先で、どのような仕事をされていますか。
卒業生や私の先輩後輩の多くは、IT関連企業全般に就職しています。例えば、普段私たちが利用しているウェブサービスの開発をしている人や、硬派なところでは、某スーパーコンピュータのハードウェア開発を行っている人もいます。ほとんどの学生は学部を卒業後、大学院の修士課程に進学し、ちゃんと研究をしてから就職します。博士課程への進学者も多く、修士課程と同等以上に好調に就職活動を済ませることが多いです。
コンピュータアーキテクチャの知識や考え方は、情報技術に限らず、良いシステムを作り上げる上で役に立ちますので、ハードウェアに限らず、面白くて役に立つ情報技術を作りたい人にはお勧めです。
◆研究室では、どのような指導をされていますか。
学生・教員関係なく、疑問に思ったことは気軽に聞くようにしています。「なぜ」を突き詰めていくと、追い求めているものの本質が見えてくると考えています。研究発表については、提案技術の善し悪しの前に、なぜそのような技術が必要で生まれてきたのかを説明する「ストーリー」を組み立てるように指導しています。面白い発表はどれも、引き込まれる素敵なストーリーの上で、技術が紹介されていますよね。良い発表をするスキルは、研究職以外の職業でも重要になりますので、かなり力を入れています。
「FPGAエクストリーム・コンピューティング」
FPGAを用いた面白いコンピュータについて発表する勉強会です。プロだけではなく、初めてFPGAを触ってみたという方の発表もあり、間口が広いです。資料が公開されています。
[Webサイトへ]