ソフトウェアを手作りで作れるけれど、自分だけのオリジナルのハードウェアを作るのはとうていムリだよと人は多いと思います。ところが、簡単にできちゃうやわらかハードがFPGAというハードウェアです。普段から使って楽しいコンピュータをめざす高前田先生は、FGPA+高位合成ツールがあれば、自分で自由に書き換えし、しかもその作業を大幅圧縮できる“ゆるふわコンピュータ”の魅力について語ります。
ハードウェアも自分で作れる! ~素敵な「ゆるふわコンピュータ」
コンピュータそのものの研究をしています。ステキなコンピュータって何でしょう。速い、省エネ、使って楽しいことを大切にしたいと僕は考えています。それを実現するキーワードが「ゆるふわコンピュータ」です。
コンピュータの構成要素には、プログラムを書き込むソフトウェアと、プログラムを解釈し実行するハードウェアがあります。ハードウェアとは、具体的にインテルのCPUなどがそれに対応します。
皆さん、ソフトは作れても、ハードを作るのムリと思いあきらめていませんか。
今日は、FPGAと高位合成ツールがあれば、自分だけのハードウェアを簡単に作れるという話をしましょう。まずFPGAとは何か。自分で書き換えのできるやわらかハードのことです。例えば画像処理専用の自分だけのためのハードウェアが欲しいと思った時、それが実現できます。
FPGAのすごい点はマイクロソフトの検索エンジンにも導入され、人工知能研究のディープラーニングにもFPGAを用いるとより省エネになることなどが知られています。つまりFPGAを用いると、よりステキなコンピュータが作れるというわけ。
実際にどんなFPGAが市販されているのでしょう。おススメはPYNQ-Z1(ピンク)。¥7000と、高校生でも入手可です。
以前は、こういうFPGAを100並べた未来のCPU検証システムなんてのも作りました。
実際に、自分用のFPGAにどうやって書き換えをするのでしょう。基本的には、ハードウェア記述言語で書いていきます。書き方は、ソフトのプログラミング言語と同じように、何をしたいかを書けばいいのですが、それ以外に、いつ、どのようにそれを実現するかを書く必要があります。例えばソフトウェアで積和演算――かけて足す処理を繰り返す処理――を繰り返すと、たった11行くらいで書けるわけです。
これをハードウェアで積和演算すると105行も必要になってしまう。
それは非常につらいですね。これのために救世主として「高位合成ツール」というのがあります。
これを用いると、ソフトを記述するプログラミング言語で書くだけでハードウェアに変換されてしまうのです!しかもハードウェア記述言語で書いていた時に比べ、その作業が桁違いに大幅圧縮されます。まさに魔法のツール。ですから、これを使って作ると、とても楽しいわけです。
まとめると「ゆるふわコンピュータ」の「ゆる」とは高位合成で手軽にハードウェアが作れること。「ふわ」は、柔らかいということで、やわらかハード=FPGAのこと。ゆるふわコンピュータで、ソフトとハードの間に壁のない、ステキなコンピュータの世界を一緒に作っていきましょう。
「FPGAエクストリーム・コンピューティング」
FPGAを用いた面白いコンピュータについて発表する勉強会です。プロだけではなく、初めてFPGAを触ってみたという方の発表もあり、間口が広いです。資料が公開されています。
https://fpgax.connpass.com/