Vengineerの妄想(準備期間)

人生は短いけど、長いです。人生を楽しみましょう!

Google、今度はASIC(TPU)で攻めてきた


GoogleGoogle I/O 2016で発表した

TPU (Tensor Processing Unit)



そしてこちらは、Norm Jouppiさんへのインタビュー記事
Google’s TPU Hit a Tight Sked
これによると、
HPから2年半前にGoogleに移って、このチップの開発をしていると。
ファーストシリコンからプロダクションまでたった22日とは、凄過ぎる。

Google answered some of our questions about its fancy new AI chipによると、
引用
Google's answer: The TPU has a PCIe connector.  It doesn’t matter whether a PCIe card is in a motherboard PCIe slot or connected by a short cable.  We had room for them in disk slots in our servers, so that was just a convenient place.
とあります。TPUからはPCieが出ているが、
直接PCのPCIeスロットに差すわけではないのですね。
基板の写真(表面、裏面)を見ると、
2つのエッジの片面から4本づつ配線されています。
全部で4x2x2本です。差動の送信と受信なので、
x4のPCIeが1組か、x8のPCIeが1組なんですね。
サーバーのPCIeスロットには、どんな感じに接続されるんですかね。

そうそう、MicrosoftはFPGAでしたが、GoogleはASIC。

マイクロソフトはどうやってBingをFPGAで実装したかで振り返ってみると、
PCIe x8でマザーボードとは接続されていて、FPGAボード間にも直接のパスがあると。

なぜ、そうしたのかをじっくり考える、ことが重要なのではないでしょうか?

インタビュー記事には、CPU、GPUFPGAで評価していて、
結果としては、FPGAではなく、ASICで実装したと。

MicrosoftはAltera OpenCLFPGA回路を書き換えていろいろなアルゴリズムに対応しているが、
GoogleではTensorを実装できる回路をASICに実装し、
内部の接続等をプログラミング可能にしている。
プログラミング可能になれば、
FPGAよりASICの方がコスト、電力、速度どれをとっても有利です。

で、これって、
実は半導体開発に使われているエミュレータの実装と同じなんじゃないかな。
MentorはMeta Systemを買収して、エミュレータに参入して、
その後、カスタムチップでエミュレータを作った。
一方、IKOSを買収してエミュレータを強化したCadenceは、
プロセッサーベースのエミュレータを導入。
そして、EVEを買収したSynopsysはFPGAベースのエミュレータ

エミュレータなんで、対象となる回路(RTL記述)を
FPGA、カスタムチップにマッピングするんだけど、
考え方は、MicrosoftのBing FPGAGoogleのTPUと同じだよ。

そうそう、牧本ウェーブに、コンピュータと半導体は一緒に考えるものと、
ずーと昔に考えたと書いてあるけど、これも同じなんだろうね。

繋がっているの。

Tom's Hardwareにもアップされています。

各社はGoogleの発表を受けて、記事をアップしています。









2014年にドワンゴがFPGAアクセラレータのために、人を集めていましたが、
今はどうなんでしょうか?
FPGAなので、既にプロトタイプはできていると思いますが、どうなのでしょうか?