お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
[CES 2015]NVIDIAが公開したホワイトペーパーで探る「Tegra X1の正体」〜本当の演算能力は1TFLOPSじゃなくて512GFLOPS!?
特集記事一覧
注目のレビュー
注目のムービー

メディアパートナー

印刷2015/01/07 00:00

ニュース

[CES 2015]NVIDIAが公開したホワイトペーパーで探る「Tegra X1の正体」〜本当の演算能力は1TFLOPSじゃなくて512GFLOPS!?

画像集 No.002のサムネイル画像 / [CES 2015]NVIDIAが公開したホワイトペーパーで探る「Tegra X1の正体」〜本当の演算能力は1TFLOPSじゃなくて512GFLOPS!?
 北米時間2015年1月4日,NVIDIAが新世代SoC(System-on-a-Chip)「Tegra X1」を発表した。その発表に合わせ,4Gamerでは,開発機材によるデモ動作の模様をレポート済みだが,正式発表後,NVIDIAからリリースされたホワイトペーパーを見ると,いくつか新情報が含まれていたので,今回は,そんなホワイトペーパーの内容をまとめつつ,Tegra X1の正体に,できる限り迫ってみたいと思う。

NVIDIAが公開したTegra X1ホワイトペーパー
(英語。クリックするとpdfファイルのダウンロードが始まります)



Tegra X1がbig.LITTLE構成を採用した理由は?


 開発コードネーム「Erista」(エリスタ)と呼ばれてきたTegra X1は,ARMが開発した64bit版CPUコアと,「Maxwell」アーキテクチャのGPU,さらに4K対応のビデオデコーダとエンコーダなどを集積するSoCだ。
 下に示したのは,ホワイトペーパーの6ページめにある,Tegra X1の機能構成図だ。

Tegra X1の機能構成図
画像集 No.003のサムネイル画像 / [CES 2015]NVIDIAが公開したホワイトペーパーで探る「Tegra X1の正体」〜本当の演算能力は1TFLOPSじゃなくて512GFLOPS!?

 ここで目を引くのは,メモリコントローラがLPDDR4対応だということではなかろうか。LPDDR4対応のTegraは,もちろんこれが初めて。正式発表されたプロセッサとしても,Qualcommの「Snapdragon 810」に続く2製品めとなる。
 39ページめのスペック一覧によれば,このメモリコントローラは,LPDDR4-1600を64bitメモリバスでサポートするため,メモリバス帯域幅はフルスペックで25.6GB/sに達する。Tegra K1のメモリコントローラは,フルスペックでもLPDDR3-2133の64bit対応となり,帯域幅は約17GB/sなので,約1.5倍のスペック向上という計算だ。

 ちなみにTegra K1の場合,省電力化のため,メモリクロックを落として使われるケースが多く,そのため13ページにあるスペック比較表ではメモリクロック930MHz(≒DDR3-1866)でメモリバス帯域幅は14.9GB/sとなっていた。Tegra X1でどうなるかは何とも言えないが,仮にTegra X1のメモリコントローラがフルスペックで動作するなら,Tegra K1とのメモリスペック差はさらに広がることになる。

ホワイトペーパーより,Tegra K1(左)とTegra X1(右)の比較表。前者のメモリバス帯域幅は14.9GB/sとされる
画像集 No.004のサムネイル画像 / [CES 2015]NVIDIAが公開したホワイトペーパーで探る「Tegra X1の正体」〜本当の演算能力は1TFLOPSじゃなくて512GFLOPS!?

 CPUは既報のとおり,ARMv8アーキテクチャベースの64bit版コアによる「big.LITTLE」構成となった。具体的には,高性能な「Cortex-A57」コアが4基,省電力・省シリコンスペースの「Cortex-A53」コアが4基だ。負荷に応じてCortex-A57とCortex-A53を使い分けることで,性能と消費電力のバランスを取ることになる。
 Cortex-A57は4基のCPUコアで共有する2MBのL2キャッシュを備え,Cortex-A53では4基のコアで共有する512KBのL2キャッシュを備えるというスペックになっているようだ。

 従来,NVIDIAはTegraで,同じマイクロアーキテクチャをベースとしつつ,高性能に振ったCPUコアを4基と,省電力性の高さに振ったCPUコアを1基組み合わせた,同社が「4-PLUS-1」と呼ぶCPUコア構成を採用してきた。それが,ARMのbig.LITTLE構成へ切り替わったわけで,Tegra X1は大きな変換と言えるだろう。

 「なぜbig.LITTLE構成なのか」について,ホワイトペーパーに細かな説明はないのだが,もともと4-PLUS-1は,TSMCが28mプロセス技術世代で提供してきた「HP(High Power)プロセスとLP(Low Power)プロセスを混在させる技術」を使って,“+1”側コアの電力を抑えるものだった。

 やや込み入った話になるが,NVIDIAが4-PLUS-1を最初に導入したときのCPUコアは「Cortex-A9」だった。当時はCortex-A9と同じ命令セットをフルサポートできる他の省電力コアがなかったため,省電力コアもCortex-A9を使用する必要があり,そのためTSMCのプロセス技術を活用して4-PLUS-1を実現することになったという経緯がある。
 一方,ARMが初めてbig.LITTLE構成を発表したときには,「Cortex-A15」と同じ命令セットをサポートする省電力設定のCPUコア「Cortex-A7」も用意し,これらを組み合わせて実現した。つまり,プロセス技術に頼ることなく,マイクロアーキテクチャレベルで複数のCPUコアを切り替えての省電力化に対応したのがbig.LITTLE構成というわけだ。64bit版CPUコアであるCortex-A57とCortex-A53でも,この考え方は変わっていない。

 Tegra X1では,TSMCが2014年からモバイル製品向けに提供を開始した最新の20nmプロセス技術が使われるのだが,いまのところTSMCの20nmプロセス技術には1つしかないようだ。つまり,20nmプロセス世代では,4-PLUS-1が物理的に使えなかったというのが正解ではないかと,筆者は考える。

 ちなみに,ホワイトペーパーの7ページでは,「4-PLUS-1で蓄積した経験を踏まえているため,他社のbig.LITTLE構成採用製品よりも,Tegra X1のほうが低消費電力で高性能」と謳われている。big.LITTLE構成の電力制御はベンダー任せなところがあるので,同じbig.LITTLE構成でもベンダーによって性能や消費電力が変わってくることは大いにありえることだ。
 4-PLUS-1もbig.LITTLE構成も,「負荷に応じてCPUコアを使い分ける」という基本的な発想は同じなので,制御面では4-PLUS-1の経験が当然活かされているだろう。

「Cortex-A57×4+Cortex-A53×4のbig.LITTLE」を採用するSamsung Electronics製SoC「Exynos 5433」とTegra X1を比較したグラフ。同じCPUコア構成であっても,同じ性能ならTegra X1の消費電力は半分で,同じ消費電力なら性能は1.4倍だとNVIDIAはアピールしている
画像集 No.005のサムネイル画像 / [CES 2015]NVIDIAが公開したホワイトペーパーで探る「Tegra X1の正体」〜本当の演算能力は1TFLOPSじゃなくて512GFLOPS!?


“本当の演算性能値”は512GFLOPS!?

GPUはモバイル向けに手が入った可能性が高い


 Tegra X1が採用するGPUコアは,256基のCUDA Coreを集積したものとされる。
 2015年1月時点におけるMaxwellアーキテクチャベースのGPUコアは,GeForce GTX 750シリーズで採用される第1世代の「GM107」と,GeForce GTX 980&970に採用された第2世代の「GM204」とがあり,GM204においては若干の拡張が入っている(関連記事)。具体的には,ジオメトリエンジンである「PolyMorph Engine」が第3世代へ進化していたり,メモリ圧縮アルゴリズムの刷新とメモリトラフィックの削減によるメモリ性能の向上があったりといった具合だ。

 では,Tegra X1が採用するGPUコアはどちらがベースか,だが,ホワイトペーパーの13ページには,GM204ベースだと明言されていた。つまり,第2世代Maxwellアーキテクチャベースということだ。

Tegra K1のブロック図。ROPユニットは16基,L2キャッシュ容量は256KBとなる
画像集 No.006のサムネイル画像 / [CES 2015]NVIDIAが公開したホワイトペーパーで探る「Tegra X1の正体」〜本当の演算能力は1TFLOPSじゃなくて512GFLOPS!?
 第2世代Maxwellアーキテクチャでは,まず,32基のCUDA Coreが,スケジューラやロード/ストアユニット,SFUとセットになったパーティションを構成。それが4つ束ねられて「Maxwell Streaming Multiprocessor」(以下,SMM)となり,SMMが1基の演算ユニットとして機能するような構造になっていた。付け加えると,GM204の場合は,4基のSMMで一種のミニGPUといえる「Graphics Processor Cluster」(以下,GPC)を構成し,GPCを4基搭載する仕様だ。

 翻ってTegra X1の場合,CUDA Core数が256基なので,必然的にSMMの数は2基。そこに「Raster Engine」と,16基のROPユニット,L2キャッシュを組み合わせてGPCを構成する構成となる。GM204ではL2キャッシュ容量が2048KBに達し,ここが特徴となっていたが,Tegra X1の場合,SMMの数に合わせてちょうど8分の1となる256KBである。

Tegra X1におけるSMMのブロック図。本文とは別件だが,一番下を見ると「64kB Shared Memory」と書いてあり,PolyMorph EngineはGM204と同じバージョン3.0ながら,共有メモリの容量はGM204の96KBから64KBに削減されていることも見て取れる
画像集 No.007のサムネイル画像 / [CES 2015]NVIDIAが公開したホワイトペーパーで探る「Tegra X1の正体」〜本当の演算能力は1TFLOPSじゃなくて512GFLOPS!?
 さらに重要なのは,SMMに小さくない変更が加えられている点だ。
 なかでも真っ先に指摘しなければならないのが,イベントで大いにアピールされた「1TFLOPS」という演算能力値だろう。

 前段でも示したホワイトペーパー13ページめのスペック比較表によれば,Tegra X1が1TFLOPS=1024GFLOPSの演算能力を発揮できるのは「FP16」の場合で,「FP32」のスペックは512GFLOPSとなっている。つまり,GeForce(やRadeon)の演算能力指標として使われる単精度浮動小数点数(=FP32)演算だと,Tegra X1の能力は512GFLOPSでしかないのである。
 FP16は「半精度浮動小数点数」と呼ばれるデータ型で,OpenGLをはじめとする3D APIがサポートしている。なので,Tegra X1がターゲットとする市場のことを考えれば,「FP16が高速」というのは確かに意味のある話なのだが,だからといって,それで「演算能力1TFLOPS!」とアピールするのは,ちょっとどうなのかなあという気もする。

 ちなみに,CUDA世代以降のNVIDIA製GPUにおけるCUDA Coreは,1クロックあたり最大2つの単精度浮動小数点演算を実行することができるが,半精度浮動小数点数用の特別な演算器は持っていないので,単精度浮動小数点演算と半精度浮動小数点演算の性能は変わらない。KeplerアーキテクチャのGPUを統合したTegra K1もそうだ。
 それに対し,Tegra X1では単精度浮動小数点演算性能値が半精度浮動小数点演算性能値のちょうど半分となった。この事実から,Tegra X1のCUDA Coreでは,半精度浮動小数点演算のために演算器が変更されたのだと分かる。
 ホワイトペーパーの9ページには,Tegra X1のGPUでは積和演算器がFP16をサポートすることが説明されている。おそらくTegra X1では,CUDA CoreにあるFP32の積和演算器でFP16×2個の演算を行えるよう,手が入ったのではなかろうか。

 その場合,FP16では1クロックあたり4個の演算ができることになるため,Tegra X1のGPUでは1クロックあたり4×256の演算が可能になる。GPUの動作クロックが1GHzというのは,Tegra K1は最大950MHzだったことからあり得る線だと思うが,これならFP16で1024GFLOPS,FP32で512GFLOPSと,計算が合う。


 NVIDIAはTegra X1のGPUコアが,第2世代のMaxwellアーキテクチャを採用したとアピールしている。確かにそれは間違いではないものの,実際には,モバイル向けにカスタマイズが入った,GM204とは別種の新しいGPUコアと見たほうがいいのではなかろうか。

[CES 2015]次世代SoC「Tegra X1」のグラフィックス性能は現行Tegra K1の1.5〜2倍に。NVIDIAによるデモの詳報をレポート

[CES 2015] NVIDIA,CES 2015で次世代SoC「Tegra X1」を発表。モバイルでも1TFLOPSの時代に

NVIDIAのTegra X1 製品情報ページ(英語)

  • 関連タイトル:

    Tegra X1

  • この記事のURL:
4Gamer.net最新情報
プラットフォーム別新着記事
総合新着記事
企画記事
スペシャルコンテンツ
注目記事ランキング
集計:12月26日〜12月27日