tegra-x1

Tegraはどこへ向かうのか ~NVIDIA、Tegra X1を発表~

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

by [2015年1月13日]

tegra-x1

NVIDIAのTegraシリーズというと、Googleの最新タブレットである「Nexus 9」に「Tegra K1」の64ビットCPUモデルが搭載され、そのしばらく前にNVIDIA自身の販売するゲーム用タブレット機である「SHIELD Tablet」に「Tegra K1」の32ビットCPUモデルが搭載された程度で、最近のモバイル業界では(車載用を別にすると)すっかりご無沙汰になってしまった印象があります。

NVIDIA  SHIELD TabletTegra K1を搭載して国内で市販された最初のモバイル機器。

NVIDIA SHIELD Tablet
Tegra K1を搭載して国内で市販された最初のモバイル機器。

何しろ、2014年1月のCESで「Tegra K1」が発表されてから、同年10月にNVIDIA自身が「SHIELD Tablet」として32ビットCPUコア版「Tegra K1」を搭載することを発表するまで、少なくとも日本国内市場向けではこのプロセッサを搭載したモバイル製品が全く発表されませんでした。

こういったお先真っ暗な状況では普通の経営者ならばそろそろ市場からの撤退を検討し始めるところですが、NVIDIAは違いました。

自社で携帯用ゲーム機やゲーミング向けタブレットを販売し、さらにそれらと自社製GPU搭載パソコンとの連携機能などを提供しているため今更撤退できないという事情もあるのでしょうが、このほど開かれたCESで皆目売れなかった「Tegra K1」の後継機種として「Tegra X1」を発表しました。

そこで今回はこの「Tegra X1」について色々考えてみたいと思います。

主な構成

今回の発表で明らかにされた「Tegra X1」の構成は以下のとおりです。

 ・CPUコアはARM Cortex-A57 4コア+Cortex-A53 4コア
 ・64ビット幅のLPDDR4-1600 DRAMに対応するメモリコントローラを搭載
 ・GPUコアは第二世代Maxwellアーキテクチャを基本とし、256基のCUDA Coreを搭載

要約するとこれだけのことなのですが、64ビット版のTegra K1と比較すると同じARM v8命令セット対応とはいえ、全く別物になったと言って差し支えないほど大きく変化しています。

自社開発コア搭載を止めたCPU

まず目につくのが、CPUコアが自社開発のDenverコアのデュアルコア構成からARM純正のCortex-A57+Cortex-A53のペアを4セット搭載する、いわゆる「big.LITTLE」対応の8コア構成に変更されたことです。

Denverコアについては昨年のNexus 9紹介記事をご参照いただきたいのですが、「Dynamic Code Optimization(動的コード最適化)」というプロセッサ内での同時命令発行数を向上させる技術が採用された、かなりの高性能プロセッサです。

このDenverコア、「Denverコアを2コア搭載するTegra K1は既存の8コア搭載モバイルCPUよりも優れた性能を発揮する」とNVIDIA自身が豪語していたのですが、何故かこの「Tegra X1」では搭載されていません。

一体何が原因で搭載されなくなったのでしょうか?

色々ある不採用の理由

筆者が想定するDenverコア不採用の理由は以下のとおりです。

 ・Denverコアの挙動が原因で互換性が保てないアプリが続出した
 ・20nmプロセスへの設計のシュリンク(縮小)が難しく間に合わなかった

Google / HTC  Nexus 9記事執筆時点で国内販売されている唯一のDenverコア版Tegra K1搭載タブレット。

Google / HTC Nexus 9
記事執筆時点で国内販売されている唯一のDenverコア版Tegra K1搭載タブレット。

現状でDenverコア搭載製品として一般に入手可能な唯一の製品であるGoogleの「Nexus 9」ではその鋭い応答性に評価が集まる一方で、OSを同じAndroid 5.0にアップグレードした「SHIELD Tablet」、つまりCPUコア以外はほぼ同じ構成のマシンで正常動作するアプリが(少なくとも発売開始直後の時点で)動作しない、などのCPUの内部構造に起因すると考えられる互換性問題が少なからず報告されています。

また高負荷時に高発熱であることや、恐らくは「Dynamic Code Optimization」による最適化処理などの影響なのでしょうが、初期段階でのバッテリーの持ちがかなり悪いことも各所で指摘されています。

そのため、将来はともかく現時点ではこのDenverコアはいくら高速でも実用を考えると互換性に若干難ありで、また消費電力面では使えるのならば「Tegra K1」で使用していた28nmプロセスから20nmプロセスへ半導体製造プロセスのプロセスルールを変更した方が望ましいと言えます。

凝った設計が裏目に出たか

NVIDIAはGPU製品を含めて台湾のTSMCをチップ製造委託先としていますが、28nmプロセスまでの「Tegra」シリーズでは複数のプロセスを1チップ内で複雑に組み合わせて使用することで消費電力と性能のバランスをとる、という手法を用いていた(※注)ことが知られています。

 ※注:例えば「Tegra 3」から「Tegra K1」の32ビット版まででは4基の通常型CPUコアに加えて1基の特別な低消費電力プロセスによるCPUコアを搭載する、「4+1」構成を採用していました。

これはつまり、チップ上の部分部分ごとに製造上のチューンを変えて作り込み、それに合わせて設計も変えるという面倒な手順によりトータルで低消費電力かつ高性能なプロセッサを作ろうという方法論です。しかしこれは言い換えると製造プロセスがシュリンクする度にそのチューンについて十分な研究が必要になり、また特別な製造工程を必要とするため、TSMC以外のチップ製造委託先が選べないということになります。

一方、ARMの純正CPUコアの場合はチップ製造委託先が1社限定というのは許されることではありませんから、多少性能が出ずとも汎用性の高い物理設計を行って、論理設計レベルで「big.LITTLE」のような工夫を凝らすことで消費電力とパフォーマンスのバランスをとっています。

今回Denverコアを諦めてARM純正で「big.LITTLE」対応の8コア構成とした一因は、後述するようにGPU性能向上の必要から20nmプロセス化を何より優先せねばならず、手早く搭載できる64ビットCPUコアが他になかった、という事情によるものと推測できます。

これは逆に見ると、今後「Nexus 9」で表面化した問題について改良を施し20nmプロセス以降の最新半導体製造プロセスルールで製造できるように再設計された次世代Denverコアが次の「Tegra」シリーズで採用される可能性は(Denverコア+「Cortex-A53」による「4+1」構成の採用を含めて)まだ残っている、ということになります。

低消費電力化と高速化を両立したメモリインターフェイス

この「Tegra X1」で目立たないながらも重要な改良点の一つが、メモリインターフェイスの改良です。

従来の「Tegra K1」ではLPDDR3 DRAMと呼ばれる高速低消費電力のメモリインターフェイスが64ビット接続で搭載されていたのですが、これとて最新のハイエンドGPUなどと比較するとあまりに低速で、そのため例えば最大のライバルであるQualcommの「Snapdragon 805」ではこのLPDDR3 DRAM対応メモリコントローラを128ビット接続に拡大してLPDDR3-1600タイプのメモリで25.6GB/sの帯域性能を確保していました。

そのメモリコントローラが、「Tegra X1」では最新規格策定を反映してLPDDR4-1600規格対応となり、64ビット接続でも25.6GB/sの帯域性能が得られるようになったのです。

ちなみに「Tegra K1」ではLPDDR3-2166タイプのメモリで17GB/sが精一杯でしたから、約1.5倍の帯域性能が得られている訳です。

後述するように、「Tegra X1」のGPU性能は「Tegra K1」比で約1.5倍に向上していますから、メモリ性能の向上はそれに見合った値となっていると言えます。

盛り過ぎ?な公称GPU演算性能

「Tegra X1」の内蔵GPUコアは、NVIDIAのパソコン向けGPUであるGeForceシリーズの最新世代の機種に搭載されているのと同じMaxwellアーキテクチャ、それも改良された第二世代のそれが搭載されていることが明らかにされています。

このMaxwellアーキテクチャの場合、汎用シェーダ(CUDA Core)を32基でひとまとまりとして扱い、更にそれを4セット束ねて1つの「Maxwell Streaming Multiprocessor」と呼ばれるモジュールを構成、そのモジュールの搭載数でGPUの差別化を行っています。

このMaxwellアーキテクチャを採用する限り32×4=128基単位でシェーダが増減するということで、つまりこの「Tegra X1」は2つの「Maxwell Streaming Multiprocessor」を搭載していることになります。

NVIDIAがTegra X1のホワイトペーパーで公開したGPUのベンチマークテスト結果A8Xの値はともかくTegra K1との比較では3Dmark 1.3やBasemarkX 1.1で1.5倍となっており、スペックから考えても概ね妥当な値となっている。

NVIDIAがTegra X1のホワイトペーパーで公開したGPUのベンチマークテスト結果
A8Xの値はともかくTegra K1との比較では3Dmark 1.3やBasemarkX 1.1で1.5倍となっており、スペックから考えても概ね妥当な値となっている。

「Tegra K1」では前世代のKeplerアーキテクチャを採用していて、「Streaming Multiprocessor eXtreme」と呼ばれるモジュールの構成シェーダ数が192基で「Tegra K1」の搭載CUDAコア数も192、すなわち1つの「Streaming Multiprocessor eXtreme」を搭載していたのですから、単純にシェーダ数だけ比較しても33パーセント増、GPU製品でのアーキテクチャの変更による性能向上実績を考慮すると1.5倍程度のGPU性能が期待できそうです。

実際、NVIDIAは「Tegra K1」比約150パーセントのベンチマークテスト結果を公表しており、その意味ではスペック通りの性能が得られていると考えて良さそうです。

NVIDIAがTegra X1のホワイトペーパーで公開したGPUの演算性能比較図「Maxwell in Tegra X1 delivers over one TeraFLOPS of FP16 performance」と題されており、Tegra K1以前では速度の出ない半精度浮動小数点演算(FP16)での比較であることが明記されている。

NVIDIAがTegra X1のホワイトペーパーで公開したGPUの演算性能比較図
「Maxwell in Tegra X1 delivers over one TeraFLOPS of FP16 performance」と題されており、Tegra K1以前では速度の出ない半精度浮動小数点演算(FP16)での比較であることが明記されている。

問題は、ここでNVIDIAが公表した1GHz駆動時に1 TFLOPS(1024 GFLOPS)という「Tegra X1」のGPU演算性能です。

前世代の「Tegra K1」ではGPU演算性能が930MHz駆動時に365GFLOPSでしたから、いくら何でもこれは盛り過ぎです。

そう考えてNVIDIAの公表しているホワイトペーパーを読み直してみるとその答えがありました。

何のことはない、1 TFLOPSは半精度浮動小数点演算、つまり16ビット単位で計算した場合の性能を示していて、単精度=32ビット単位の演算結果を示していた「Tegra K1」までとは違う基準での数値だったのです。

実のところ、MaxwellアーキテクチャにせよKeplerアーキテクチャにせよ、半精度浮動小数点演算を行う仕組みを備えていなくて、半精度で演算する場合には16ビット分を空にして単精度と同じ処理を行うため半精度でも単精度と同じ性能となっていたのですが、「Tegra X1」では同じ第二世代Maxwellアーキテクチャと言いながら、モバイル機器での需要に合わせて演算ユニットを16ビット単位で分割して扱えるようにするなど色々手を入れているようです。

ELSA  GLADIAC FX 930「16ビットカラーモードでだけやたら速い」と評されたNVIDIAの問題作、GeForce FX 5800を搭載するGPUカードの例。

ELSA GLADIAC FX 930
「16ビットカラーモードでだけやたら速い」と評されたNVIDIAの問題作、GeForce FX 5800を搭載するGPUカードの例。

つまり単精度浮動小数点演算を行った場合の「Tegra X1」のGPU演算性能は512 GFLOPSで、「Tegra K1」と比較しても納得のできる数値となっています。

余談ですが、16ビット長の演算処理の時だけ倍速というのを見て、大昔の「NVIDIA製ヘアードライヤー」こと「GeForce FX5800 Ultra」を筆頭とする「GeForce FX」シリーズというGPUのことを思い出した方もおられるかも知れません。

露骨なA8X対策

Apple  iPad Air 2Appleの最新タブレット機。この機種に搭載されたA8XプロセッサはTegra X1の仕様決定に大きな影響を及ぼした。

Apple iPad Air 2
Appleの最新タブレット機。この機種に搭載されたA8XプロセッサはTegra X1の仕様決定に大きな影響を及ぼした。

プレスリリース中でも比較されていますが、この「Tegra X1」の仕様は「iPad Air 2」に搭載されているAppleオリジナル設計のARM v8命令セット対応統合プロセッサである「A8X」を強く意識して決定されたようです。

この「A8X」プロセッサはスペックを公表されていないのですが、「iPhone 6」に搭載の「A8」プロセッサが内蔵GPUに32基の汎用シェーダを1単位とするクラスタを4クラスタ搭載しているのに対し、この「A8X」ではチップの顕微鏡による分析などから倍の8クラスタとしてメモリコントローラのバス幅も128ビットに倍増、LPDDR3-1600タイプのメモリで25.6GB/sの帯域性能を確保し、ベンチマークテスト結果などからGPUの単精度浮動小数点演算で512 GFLOPSの性能を実現していると推定されています。

つまり、ことGPU性能に限れば「Tegra K1」では「A8X」に対抗し得ず、これに匹敵するか超える性能を得るには、GPU周りの設計を大幅変更する以外の選択肢がNVIDIAにはなかったということなのです。

それは同時に、集積トランジスタ数と消費電力や発熱などの問題から、28nmプロセスでは製造できず20nmプロセスにプロセスルールをシュリンクする必要がある、ということを意味します。

先に述べたCPUコアとしてDenverコアが採用できなかった、というのは恐らくこのGPU性能確保のために20nmプロセスルールを採用することが最優先となったことが一因で、CPUコアの開発スケジュールを無視して急遽仕様を決定したことを物語っています。

確かに凄いが間に合わせ感が強い

以上、「Tegra X1」の仕様を見てきましたが、「GPUの性能要求がまずあって、それに合わせて他の部分の仕様が(半ばやっつけで)定まった」という印象が特に強いプロセッサです。

競合他社が出した製品を見てから急遽スペックを決めて新製品を送り出す、というのはNVIDIAの製品では過去にも良くあったケースですが、さすがに今回のように長期間かけて自社開発してきたCPUコアを放り出してGPUを強化し、(他のメーカーではハイエンド扱いの機種とは言え、またそれなりに物理設計レベルで手を入れてあるとは言え)間に合わせで汎用CPUコアを搭載する、というのは前例が思いつかずちょっと驚いたことでありました。

GPUの開発が本業のメーカーだからできた荒業だ、という見方もできるでしょうが、さすがにこれでは5年以上もDenverコアの開発に取り組んできたCPU開発チームが浮かばれない気がします。

GPUコアについては恐らく今後もPC用GPUに追従する形で量的・質的な改良が続くものと思われますが、次の「Tegra」シリーズでCPUコアがどうなるのかでNVIDIAのCPU開発方針が明らかになると言え、要注目です。

問題は、現状ではなかなかどのメーカーにも採用してもらえないことなのですが…。

▼参考リンク
Tegra X1 Super Chip | NVIDIA Tegra | NVIDIA
Whitepaper NVIDIA® Tegra® X1 NVIDIA’S New Mobile Superchip

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

タグ:
PageTopへ