後藤弘茂のWeekly海外ニュース
NVIDIAのARM CPU 「Denver」と「Tegra K1」の展開
(2014/2/12 06:00)
Denver CPUのワイドなスーパースカラの謎
NVIDIAは、今年(2014年)後半に自社開発のCPUコア「Denver(デンバー)」を投入する。次期モバイルSoC(System on a Chip)「Tegra K1」には、32-bit ARM CPUコア「Cortex-A15」ベースの製品と、64-bit ARM CPUコアのDenverベースの製品の2系列がある。最初に出るのはCortex-A15ベースで、今年後半にDenverベースのTegra K1が登場する。
Denverの大きな特徴は、7-wayのスーパースカラの高い並列性を持つこと。ARMの現在の最高峰のコア「Cortex-A15」は3-wayデコードのスーパースカラで、DenverはCortex-A15より2倍以上の命令並列性を備えることになる。どうやって、ここまでの並列性が可能になったのか。NVIDIAのJen-Hsun Huang(ジェンセン・フアン)氏(Co-founder, President and CEO)は、次のようなヒントを示している。
「20年に渡るマイクロプロセッサ設計の課題は、スーパースカラ設計を採った時の、命令発行レートを高く維持することにあった。命令発行レートは高くすることが難しい。なぜなら、命令間の依存性による(パイプライン)ハザードが数多く発生するため、並列に命令を発行できないからだ。命令発行レートを高く維持できなければ、Denverの7-wayのスーパースカラユニットは、単に命令待ちとなり、ほとんどの時間、稼働できなくなってしまう。
問題は、どうやって多くの命令を発行できるようにするかという点にある。この問題を解決する方法の1つは、当然だが、非常に複雑な(命令スケジューリング)ハードウェアを搭載することだ。だが、そうすると、IBMのPowerアーキテクチャのように、CPUが複雑で大きくなってしまうため、モバイル向けでこの方法は採ることが難しい。
それではハードウェアを複雑にしないで済む、その解決法は何かということになる。我々もほかのCPU設計会社も、みな同じ物理の法則の枠の中で戦っている。同じ物理ならテクニックを工夫するしかない。そして、我々は、いくつかの新しいテクニックが、この問題を解決する助けになると考えている。
ただし、その詳細の発表はしばらく先にさせて欲しい。非常に画期的で、楽しみな発表になることは確かで、おそらく驚かれると思う。新しいテクニックを開発したからこそ、我々はDenverの開発に5年もかかったのだ」。
つまり、新しい手法を採ったから、モバイルにも搭載できる複雑度のCPUコアで、7-wayのスーパースカラを実現できるとHuang氏は説明する。単純にアウトオブオーダ型の命令スケジューラハードウェアを載せたわけではないことも示唆されている。
バイナリトランスレーションで最適化スケジューリング?
高い命令発行度を相対的にシンプルなハードウェアで実現するプロセッサアーキテクチャは、過去にも何度か試みがあった。そして、これまでの技術の流れを考えれば、バイナリトランスレーションで並列性の高い内部命令(VLIWなど)に変換し、ソフトウェアスケジューリングを広域なコード範囲に行なって、コードの中のホットスポット部分の命令の並列発行度を高める手法が思い浮かべられる。かつてTransmetaがEfficeonで採ったような手法を発展させて、ハードウェアアシストで行なうことは可能だ。
そもそも、NVIDIAはGPUの会社であり、GPUはネイティブ命令を露出させず、リアルタイムコンパイラで変換する実行スタイルを採っている。トランスレーションはGPUでは当たり前だ。では、Denverはどうなのか。例えば、バイナリトランスレーションでARM命令を変換して実行するスタイルで、ネイティブ命令を通すことも可能なアーキテクチャを採っていたりするのだろうか。Huang氏は次のようなヒントを出す。
「我々は、Denverを新しいテクニックによって最適化しても、それはDenverボックスの内部に留めるのが最上のアプローチだと考えている。Denverの外側から見れば……、つまり、静的コンパイラやOSから見れば、完全にブラックボックスとなる。単に、高いIPC(Instruction-per-Clock)を持つ優れたCPUのように見えると考えている。ソフトウェアの対応は難しくするような、CPUの外側に対する最適化は一切求めない」。
Huang氏はここで「静的コンパイラ」からは「ブラックボックス」と、言葉を選んでいる。動的なコンパイレーションで命令変換する可能性は外していないが、そうだとしてもブラックボックスの中のネイティブ命令は露出させないことも分かる。NVIDIAは今年(2014年)後半にDenverをリリースする予定であり、それまでにアーキテクチャの発表が行なわれると見られる。
省電力重視の設計思想を全ての製品ラインに
NVIDIAはTegra K1に、Kepler(ケプラ)アーキテクチャのGPUコアを搭載した。従来のTegraは、古いG70世代のアーキテクチャを拡張したGPUコアを搭載していたが、Tegra K1でPC向けGPUと同世代に並んだ。そして、NVIDIAの最大の武器であるCUDAベースのGPUコンピューティングがTegra K1で可能になった。Tegra K1では、Denverと並んで、このKeplerコアが重要な特徴となっている。
「Keplerは、我々が今まで設計した中で最も電力効率の高いGPUだ。だから、そのGPUアーキテクチャをTegraに持って来ることができた。Keplerを通じて、我々は、どうやって電力効率の高いアーキテクチャを作るかを学んだ。そして、今後は、さらに電力効率の高いアーキテクチャを作らなければならない。
電力効率性を求めるアーキテクチャは、当初はTegraに牽引されて来た。しかし、現在は、省電力の手法と設計思想が、モバイルだけではなく、PCからスーパーコンピュータまで全てに渡って必要とされている。電力効率性は、今後はパフォーマンスとイコールになるため、同じ手法が全てに求められている。Tegra K1の電力効率は非常に高く、現在出荷されている他のどのデバイスも凌駕している。これを全ての製品にもたらす」。
NVIDIAは、Keplerの次のMaxwell(マクスウェル)からは、アーキテクチャ開発の始めの段階からモバイル製品にも搭載することを前提として設計をスタートしている。NVIDIAのGPU設計は、Keplerをターニングポイントとして完全に方針転換を行ない、現在は電力効率を追求するようになった。Tegra K1は、そうした流れの最初のチップだ。
NVIDIAはTegra K1を、前世代のTegra 4の発表から、わずか1年で発表した。Tegra 4はモバイル市場では採用数も少なく、その上後続のTegra K1が登場したために、一気に霞んでしまった。短期間での製品発表は、製品戦略としてはうまくないように見える。しかし、それもわかった上での決定だとHuang氏は言う。
「Tegra 4は、本来の予定よりも6カ月ぐらい遅れてしまった。一方、Tegra K1は遅れなかったので順調に市場に投入できる。その結果こうなった(Tegra 4とTegra K1の間の時間差が少ない)が、我々が下した決定自体は間違えていないと思っている。なぜなら、Tegra K1がそれだけ重要な製品だからだ。
Tegra K1は192個の完全にプログラマブルなCUDAコアを搭載したスーパーチップで、画期的な製品だ。そのため、Tegra K1をできるだけ速く出すことが重要だと考えた。確かに、短期的には(製品戦略上の)犠牲も出るだろうが、長期的かつ大局的に見れば、たいした問題ではないと思う。それよりも、Tegra K1を出すことが我々にとっても顧客にとっても大切だ。例えば、アウディにとっては、Tegra K1がないよりも、ある方がはるかにいい」。
車載のキープロダクトであるTegra K1
Huang氏が最後に付け加えたように、NVIDIAはTegra K1を特に車載でのキープロダクトと考えている。それは、GPUコンピューティングが車載では重要な役割を果たすとNVIDIAが見ているからだ。センサーからのデータ処理に、GPUコンピューティングが役立つからだ。
「Tegra K1は同時に自動車業界向けに製品化することを発表した。Tegra K1が自動車産業にとって重要なのは、スーパーコンピュータ並と言っていい性能を備えているからだ。例えば、Tegra K1なら、ドライバーアシスタントのための高度なコンピュータビジョンを実現できる。
我々は、将来のクルマはコンピュータビジョンの膨大なナレッジライブラリを利用できるようになると考えている。他のクルマを認識するだけでなく、道路標識や自転車、歩行者、ネコ、転がってきたボールまでも、それが何であるかを認識できるようになる。あるいは、今が晴天なのか雨なのか、朝なのか夕方なのかを認識する。
バックエンドのクラウドにこうしたナレッジライブラリを蓄え、24時間常にデータを加えて、GPUを使った『ディープラーニング(Deep Learning)』などの手法で、ライブラリの認識機能を常に向上させ続ける。それによって、より高度な認識が可能になる。例えば、将来のデータベースは、この顔はJen-Hsun Huangだと、認識するようになる(笑)。音声認識がいい例で、今も常に認識度が向上している。これが将来は、さまざまな訛りやアクセントを認識できるようになる。
クルマ側では、搭載されたTegra K1が、30fps毎に入力されるビデオ画像データやレーダのデータ、その他の車載センサーのデータをリアルタイムに処理する。膨大なデータから、パターンを抽出して、分類し、ライブラリを使って検知して対処する。こういった処理ができるのは、スーパーコンピュータTegra K1がクルマに搭載されているからだ。
その結果、クルマは周囲や路上にあるものをリアルタイムに正確に認識して、安全なドライブを可能にする。ドライバが安全に操作できるように助ける。例えば、大雨の中を運転している時、歩行者を検知したら、ハイドロプレーニング現象を起こさずにクルマを制御して安全に停止させる」
クライアント側でのリアルタイム処理、それに対応するクラウド側でのナレッジライブラリの熟成。NVIDIAはこの両端にGPUコンピューティングを活かすことができると見ている。NVIDIAは、クラウドへの浸透に、流行の技術であるディープラーニングへの適用を考えている。
モバイルの次は車載と、次々に市場を拓くNVIDIA
NVIDIAは、Tegra 2/3をまずモバイルで軌道に乗せ、Tegra 4世代でモバイル市場で劣勢になると、今度はTegraの車載を立ち上げと、次々に成功させている。同様にハイパフォーマンスGPUも、PCグラフィックスから、HPC(High Performance Computing)市場へと道を切り開いた。こうした舵取りが上手いのがNVIDIAだ。Huang氏はその秘密を次のように語る。
「長期的に見た場合の当社の市場機会は、驚くほど大きい。ビジュアルコンピューティングが必要とされるフィールドは非常に幅広いからだ。そして、当社の創造力が、市場を広げている。
一体、誰がNVIDIAにとって車載コンピュータがこんな大きなチャンスになると考えたろう。大抵の人は「車載? クルマに載せているチップはあんなに小さいのだから、儲けることなんてできないだろう」と言った。ところが、今では3個の大きなチップがクルマに載っている。近い将来には5個の大きなチップになるだろう。
こうした我々の成功を見て「どうやって(市場の変化を)予期したのか」とよく聞かれる。答えは「我々が夢を見た」からだ。我々は、ビジュアルコンピューティングをこのようにしたいという夢があり、その夢を追う勇気がある。それがNVIDIAが他社と違う部分だと思う。NVIDIAはすでに20歳だが、まだ夢見る子どものままで、それが我々の優れた特徴だと考えている」。
夢を見るというのは、ちょっと臭いセリフに聞こえるが、実際に、これがNVIDIAの大きな原動力となっている。プロセッサをこうしたい、というビジョンが先にあり、その技術で何ができるのかの展開のストーリがあり、それをテコに市場を掘り起こしている。このパターンを継続することが、NVIDIAの生き残り戦略と言えそうだ。