FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

Google初のカスタムデザインチップPixel Visual Coreから考えるソフトウェアプログラミングモデル

GoogleフラグシップスマートフォンPixel 2が発表された。スマートフォン自体についてはあまり興味が湧かなかったのだが、搭載されているチップについては興味をそそる内容だ。

www.blog.google

Googleが初めて作ったカスタムデザインのチップということだが(あれ、ではTensor Processing Unitはどうなった?)、構成としてはIPUという画像処理用のプロセッサが8つ、その中には512個のALUが搭載されている。 1秒間に3兆回の演算ということは、3Topsということか?512器の演算器が8セット入っているため、4096個の演算器が入っているものとすると1演算器あたり秒間に750M回の実行となる。そうすると動作周波数は単純に考えて750MHzかなあ。

私が考えるPixel Visual Coreの特徴は、半導体チップ自体の特徴というよりもそのプログラミングモデルだと思う。演算器およびコアをよりシンプルなものにし、ソフトウェア側に詳細な制御をゆだねるという構造になっているからだ。 こういうことは、ソフトウェアで力をつけた組織でないとなかなかできないことだと思う(なぜなら、だいたいの半導体メーカーは最初にチップを作り、ソフトウェアはあとで作るという形を取ってしまうからだ)。

それに引き換えGoogleのPixel Visual Coreは、TensorFlowのサポートと、さらにDSL(Domain Specific Language)を使うようになっている。 画像処理用のオリジナル言語に対応してそちらに制御を委ねるというのは、ソフトウェアベンダでないと出来ないことだし、プログラミングモデルとソフトウェアを詳細に理解していないとなかなかできないことだと思う。

Halide

ターゲットのアプリケーションを最初に明確にすると、このような解が出てくるのだ。 半導体メーカのように、とりあえずチップありきで話をしてしまっては、チップが出来た後にソリューションを考えたって出てきっこない。