Tegra K1 32bitモデル内部下に4基のCortex-A15 “r3” CPUコアと、その中央に小さな「battery-saver core」が1基搭載されているのが確認できる。中央にびっしり並んでいるのがKeplerアーキテクチャによる192基の汎用シェーダーユニット群である。なお、64ビットモデルでは左右のCortex-A15 “r3” CPUコア2基ずつがそれぞれ1基ずつのDenverコアに置き換わり、battery-saverコアは省略される。

NVIDIAが次世代Tegraを発表。しかし…

  • このエントリーをはてなブックマークに追加

by [2014年1月10日]

NVIDIAと言えばGeForceシリーズでおなじみのグラフィック・プロセッシング・ユニット(Graphic Processing Unit:GPU)業界を代表する2大メーカーの一方です。

そのNVIDIAがこのたび、次世代モバイル機器用統合プロセッサとして、コードネーム「Logan(ローガン)」こと「Tegra K1」シリーズを発表しました。

NVIDIA自身が「世界で最も進歩したモバイルプロセッサ(THE WORLD’S MOST ADVANCED MOBILE PROCESSOR)」と製品ページで謳うこの製品は、同社の主張を信じる限り様々な新機軸が導入されています。

今回はこの新しいプロセッサがどのようなものなのかを見てみることにしましょう。

ようやくユニファイド・シェーダー化されたGPU

従来のTegraシリーズと比較した場合、Tegra K1最大のトピックとなるのはGPUのアーキテクチャ変更です。

これまで採用されてきた固定シェーダー方式を止めてより高度なユニファイド・シェーダー(Unified Shader)方式に変更され、しかもそのシェーダーユニット数が192基搭載と大幅に増強されたのです。

旧式だったこれまでのTegra内蔵GPU

これまでのTegraシリーズでは、ポリゴンモデルを用いた三次元グラフィック描画を行う際に、光源計算処理などを司る頂点シェーダー(Vertex shader:バーテックスシェーダー)と、指定されたテクスチャを参照・貼り付け、各種エフェクト処理を行って最終的なレンダリング結果を出力する画素シェーダー(Pixel Shader:ピクセルシェーダー)の2種のシェーディング(陰影処理)を行う専用回路を適宜組み合わせた固定的な回路で描画を行う設計となっていました。

例えば、Tegra 2では頂点シェーダーを4基と画素シェーダー4基で合計8基のシェーダーを搭載し、Tegra 3は画素シェーダーを倍増して8基、合計12基構成へ強化、さらにTegra 4では頂点シェーダー24基と画素シェーダー48基で合計72基構成、と世代を重ねるごとにシェーダ群の数を増やすことで演算性能を引き上げ、3Dグラフィック描画をより高速に実行可能としてきました。

この方式では、より高度な描画を行いたい場合に、そのために必要となる処理を担当するシェーダーユニットを増設することで対応する必要があります。

特に、昨今の「リッチな」3Dグラフィック描画では、光源からの光がどのように通過するかを計算する頂点シェーダーはさほど負担がかからない一方で、多用される精細なテクスチャやより高度なエフェクトを担当する画素シェーダーの負担は激増しています。

実際にもTegra 3およびTegra 4では頂点シェーダーに対する画素シェーダーの数の比率を1:2=2倍とすることで、この要求に応えています。

しかし、この種の処理の内容を具体的に検討してみると、この方式には1つ重大な問題があることが判ります。

それぞれのシェーダーで行われる具体的な演算処理の中身が大差ない(※いずれも三角関数を用いたベクトル演算処理や四則演算などで、それぞれのシェーダー回路の処理を担当する部分の設計には大きな相違はない)にもかかわらず、それぞれの分担が固定化されているため、例えば頂点シェーダーが処理を終えて手空きになっていても、また画素シェーダーが複雑な処理のために性能が足りていない状況であっても、空いている頂点シェーダーに画素シェーダーで行っている処理を分担させることができないのです。

計算資源の有効活用を図るユニファイド・シェーダー

その問題を解決するのが、ユニファイド・シェーダーと呼ばれる技術です。これはつまり、各シェーダーの処理能力を汎用性のあるものにすることで頂点シェーダーとしても画素シェーダーとしても利用できるようにして、処理の負荷に応じて各シェーダーの処理内容を動的に変更できるようにしたものです。

そうすることで、例えばTegra 4と同じ72基のシェーダーを搭載した場合でも、負荷状況に応じてシェーダー4基を頂点シェーダー、残り68基を画素シェーダーとして用いる、といった割り当てを動的に行うことでシェーダーを極力遊ばせず無駄なく利用可能となります。

マイクロソフト XBOX 360
世界初の量産ユニファイドシェーダー搭載GPUであるATIテクノロジーズ開発の“Xenos”を搭載するゲーム機。

これが消費電力の観点で有利なのはいうまでもなく、モバイル機器向けGPUでは、QUALCOMMのSnapdragonシリーズに搭載されているAdrenoシリーズと呼ばれる内蔵GPUは最初からこのユニファイド・シェーダーを採用していましたし、AppleがiPhoneなどに採用しているImagination TechnologiesのPower VRシリーズでも、2005年登場のSeries 5以降この方式を採用しています。

以前の記事でも触れましたが、今回のTegra K1発表時に引き合いに出されていたMicrosoftのXBOX 360(2005年発売)の内蔵GPUであるXenosがこの方式を採用した最初の量産GPUですから、モバイル機器向けでは他と比較しても早い時期からこの技術の導入が進んでいたわけです。

そのためTegra K1でのこの方式の採用自体は、目新しいどころかようやく他社製品比で周回遅れではなくなった、という程度のものでしかありません。

スパコンからモバイルまでスケーラブルな開発環境の実現

重要なのはそこではなく、このTegra K1が現行のNVIDIA製パソコン用GPUであるGeforce 6xx/7xxシリーズに搭載されているKeplerアーキテクチャとほぼ同等のシェーダーユニットを搭載されていて、同社固有のGPGPU命令セットであるCUDA(クーダ)に対応していることです。

これはつまり、開発環境をうまく構築すれば、NVIDIA製GPUを搭載しているマシンという条件は付くもののスーパーコンピューターからモバイル機器まで、同じプログラムのソースコードをほぼ手直し無しで使い回せる可能性がある、ということを意味します。

厳密に言うと、シェーダー構成の一部がパソコン用のKeplerアーキテクチャ採用GPUと異なっているのですが、機能レベルでは最新のDirect X 11.2に対応するということで実際にも発表の際には、Epic Gamesの最新ゲームエンジンである「Unreal Engine 4」が提供されることが合わせて発表されています。

192基のシェーダーで高速描画

なお、このTegra K1では汎用シェーダーユニットが192基搭載されることが発表されています。

固定シェーダー方式のTegra 4がシェーダー全てを合わせても72基搭載だったのと比較すると単純なシェーダー数だけでも2.5倍以上に増強された訳で、これだけを見ても従来機比で相当な性能向上が期待できます。

NVIDIA自身はPlayStation 3やXBOX 360といった前世代ゲームコンソールを超える性能が実現された、としていますが、流石にこれは比較対象が古すぎて不適切(※特にPlayStation 3の場合はNVIDIA製の(Tegra 4以前と同様の)固定シェーダーGPUが内蔵されています)です。

そこでデスクトップパソコン用Geforceシリーズで近似のスペックのGPUを探してみると、Keplerアーキテクチャを採用したGeforce GT 630(※Geforce GT 630にはより古いFermiアーキテクチャを採用したモデルもあります)がシェーダー数192で、動作クロック周波数その他様々な条件の差はあるものの、この機種の性能からある程度Tegra K1の性能が類推できます。

もっとも、このGeforce GT 630はローエンドの機種、つまりデスクトップパソコン用GPUの中では低性能と評価されるグレードの機種ですから、アーキテクチャ的には最新世代に追いついたとは言え、実性能レベルではまだまだパソコン用GPUに追いついていないことは明らかです。

特に統合プロセッサの場合、CPUコアとメインメモリを共有する関係上メモリアクセスのオーバーヘッドが大きいという問題(※同じく統合プロセッサを採用するソニー・コンピュータ・エンターテインメントのPlayStation 4では、何と8ギガバイト搭載されたメインメモリ全てに最新GPU並の超高速なGDDR5 DRAMを奢るという思い切った策を講じて、この問題に対処しています。特に帯域性能の厳しいモバイル機器用統合プロセッサでも、GPU性能の底上げを図るため今後こうした策を用いる必要があるかも知れません)もあるため、このTegra K1は機能はともかく最新デスクトップパソコン用GPU並の性能は期待できないと考えるのが良さそうです。

LCDインターフェイスに制約されるタブレットの最大解像度

さて、公表されているTegra K1のスペックで興味深いのが、このGPUの扱える最大解像度が、機器に直づけされる液晶ディスプレイ(LCD)インターフェイスだと3,840×2,160ピクセル、外部出力されるHDMIだと4,096×2,160ピクセル、つまりいわゆる4K2K解像度で、LCDインターフェイス接続時の方が横幅が若干狭くなっていることです。

これは現行のLCDインターフェイスが4K2Kディスプレイが構想されるより先に存在していて、このクラスの解像度を想定していなかったことによるものですが、本体と一体の内蔵ディスプレイでわざわざHDMI経由とするのはコスト的にばかげていますから、これはいずれ規格の拡張などにより解決されることでしょう。

2種が用意されたCPUコア

以上のとおり、GPUについてはパソコン用GPUで言えば4世代ほど一気にスキップして最新世代に追いついたわけですが、CPUの方はどうなっているのでしょうか?

結論から言うと、Tegra K1ではTegra 4と同様に32ビットのARM-v7命令セットに対応するCortex-A15コアを4基搭載する32ビットモデルと、NVIDIAが長期間にわたって研究開発を続けてきた64ビットのARM-v8命令セットに対応するオリジナルCPUコアである「Denver(デンバー)」コアを2基搭載する64ビットモデルの2モデルが提供され、これらはチップレベルでは完全ピン互換、つまりハードウェア的には同じ基板で動作し、(工場レベルでは)必要に応じ差し替えて搭載可能であることが発表されています。

従来の構成を踏襲する32ビットモデル

Tegra K1 32bitモデル内部
下に4基のCortex-A15 “r3” CPUコアと、その中央に小さな「battery-saver core」が1基搭載されているのが確認できる。中央にびっしり並んでいるのがKeplerアーキテクチャによる16×12=192基の汎用シェーダーユニット群である。なお、64ビットモデルでは左右のCortex-A15 “r3” CPUコア2基ずつがそれぞれ1基ずつのDenverコアに置き換わり、battery-saverコアは省略される。

32ビット版のCPUは、先にCortex-A15を4基と書きましたが、実を言うと厳密にはこれらはCortex-A15“r3”と呼ばれる改良型コアで、さらにもう1基、低負荷時に切り替えて使用する「battery-saver core」と呼ばれる小さなARM-v7準拠のCPUコアが搭載されていて、Tegra 3やTegra 4と同様に「4+1」構成となっています。

このCortex-A15“r3”コアについては通常のCortex-A15に比して製造プロセスの改良による低消費電力化などが謳われていますが、基本的にはTegra 4に搭載されたものと同等あるいはその延長線上にあるものと考えて良さそうです。

なお、同時に扱えるメモリ空間が4ギガバイトに制約される32ビットCPUコアですが、このモデルでは実際に搭載できる最大メモリ量が8ギガバイト(DDR3L SDRAMあるいはLPDDR3 SDRAM)となっており、40ビットアドレス拡張モードにより32ビットOS上でも(制限付きながら)4ギガバイト上乗せして利用可能な構成となっていることが公表されています。

これはモバイル機に搭載するCPUなのか

問題は、「Denver」コアを搭載する64ビットモデルです。

NVIDIAがこのCPUコアの開発を「Project Denver」として正式に発表したのは2011年のCESの際ですから、3年がかりでようやく形になった、ということになります。

ARM-v8命令セットに対応する64ビットCPUコア、という1点ではリファレンスとなるARMのCortex-A57に準じるのですが、重要なのはこのCPUコアが7wayのスーパースケーラ搭載を謳っていることです。

Cortex-A57が3wayスーパースケーラですから、同じクロック周波数で比較した場合、Tegra K1はCortex-A57比で同時命令実行数が単純に考えて2倍程度になるということで、額面通りうまく行けば相当な性能向上が見込めます。

「うまく行けば」と言ったのは、多数のパイプラインを持つn WayスーパースケーラCPUの場合、条件分岐命令の分岐予測処理や各命令のスケジューリングを行う回路に相当な数のトランジスタを割かねばならず、分岐予測精度を充分高くできない、あるいは各パイプライン間でトランジスタ数節約のために回路の共有を行ったりした場合、そのパイプライン数に見合わない性能しか得られない可能性が高いためです。

特にCPUの分岐予測は以前の記事でも記しましたが、最良の条件でも2パーセントから10パーセント程度の予測ミスとこれにともなうパイプライン・ハザードと呼ばれる命令実行の遅滞が確実に発生することになります。

分岐予測精度100パーセントというのは事実上オカルトの領域の話なので、特に大した数のプログラムが同時実行されるわけでもないスマートフォンやタブレットレベルの機器の場合、極端にたくさんのパイプラインを搭載したCPUはかえって非効率になる可能性があるのです。

このTegra K1の分岐予測精度が果たしてどの程度なのかは現状では明らかになっていませんが、少なくともこの構成がモバイル機器に最適化されたものであるのかどうかについては議論が分かれそうです。

むしろこの構成は、多数のスレッドを同時に走らせるのが当然のサーバやスーパーコンピューターへの搭載に適していると言えるでしょう。

スマートフォンへの搭載の可否は?

さて、以上のとおり現在のモバイル機器に搭載するにはいささか過剰性能気味とも言えるようなCPU・GPUコアを搭載したTegra K1ですが、果たしてこのプロセッサはスマートフォンに搭載できるのでしょうか?

少なくとも筆者は、その可能性は現状では非常に低いと考えます。

というのも、省電力プロセスを選んで製造され、更に各部に省電力化の工夫が施されたとは言え、この種のモバイル機器用プロセッサとしては最大級となる5Wクラスの電力を消費し、演算性能は抜群だけどスマートフォンで期待される超低消費電力動作が期待できないようなCPUアーキテクチャとなっているためです。

無論、現在の構成のままで製造プロセスがより微細化すればスマートフォンへの搭載も理論的には可能となるでしょうが、そもそもプレスリリースでもTegra 4の時はあれほど大きく採り上げていた内蔵モデムについての言及が一切無く、NVIDIA自身がスマートフォン市場でのシェア拡大をハナから諦めているのは明らかです。

更に言えば、NVIDIAは自社のCUDAを重視していてGPGPUの標準化を図るべくライバルのAMDが提唱したHSA構想は無視している、という問題があります。

現状ではHSA構想そのものが未完成のためこれは表面化していませんが、今後プロプライエタリなCUDAに固執するNVIDIAがモバイル機市場で完全に孤立してしまう可能性があります。

一体どこで売れるというのか

実のところ、Tegra 4に内蔵された新型モデムは各国のキャリアでの認証がさっぱり進んでおらず、あのShieldと呼ばれる自社製ゲーム機へのTegra 4の搭載も見込み生産チップの不良在庫一掃が1つの目的だったのではないか、とすら囁かれる有様ですから、スマートフォンを無視したかの如き今回の発表もある意味致し方ないことかもしれません。

ちなみにTegra K1については同時発表で消費電力や発熱をそこまで気にせずとも済む車載機器(※カーナビなど)用としてTegra K1 VCMというモデルが用意されており、このあたりからもこのチップの主要ターゲットは高解像度かつ高度な3Dグラフィック描画を求められるタブレット機であると考えられます。

もっとも、このタブレット市場も数少ないお得意様であるMicrosoftのSurface(Tegra 3搭載)・Surface 2(Tegra 4搭載)の不振ぶりとx86系プロセッサを搭載するSurface Pro・Surface Pro 2の人気ぶりを見ると、果たしてこのプロセッサは本当に主たる開発目的であるはずの「モバイル機」用として成功を収められるのだろうか? と不安になります(※実際にもlenovoなどは4K2Kディスプレイに内蔵するAndroid OSマシンにこのTegra K1を採用することを発表するなど、タブレットどころか据え置き機にしか採用されないような状況となっています)。

特に日本では「ちゃんとしたMicrosoft Office」が動くことがひどく重要視される傾向があるため、微妙に互換性のない「Microsoft Office 2013 RT」しか動作しないWindows RT搭載機が敬遠される傾向が強く、このままではTegra K1(およびその搭載機)も苦戦を強いられそうです。

コメントは受け付けていません。

PageTopへ