NVIDIAのGeForce GTX 1080 Founders Edition

NVIDIAは、同社が5月6日(現地時間)に米国で発表したGeForce GTX 1080(ジーフォースジーティーエックス テンエイティー、日本ではイチマルハチマルか?)の技術的な詳細を明らかにした。そこから見えてきたのは、GeForce GTX 1080は、従来製品であるGeForce GTX 980の特徴を受け継ぎ発展させながら、プロセスの微細化により演算器の増加や、クロック周波数の向上、電力効率というメリットを得て、性能を大きく向上させたということだ。

さらに、GeForce GTX 1080では、新たなメモリ圧縮技術やAsynchronous Computeなどのアーキテクチャ面での改良に加え、オーバークロック機能のGPU Boostの強化、VSYNC設定の新しい選択肢となる「Fast Sync」、SLIの新しいブリッジとなるSLI HBといった機能追加も行われている。これについても合わせて、詳細が公開された。

Pascalアーキテクチャでは最初のコンシューマ向け製品となるGeForce GTX 1080/1070

NVIDIAが発表したGeForce GTX 1080/1070は、開発コードネーム"GP104"と呼ばれるダイ(パッケージに格納されている半導体の実体のこと)から派生した製品となる。NVIDIAはGPUを開発する際に、大本となるGPUのアーキテクチャを開発し、それを元に複数のダイを設計し、具体的な製品に派生していくという開発手法をとっている。

前世代となるMaxwellアーキテクチャの世代であれば、まずMaxwellのアーキテクチャを開発し、そこからGM204、GM206……と設計し、GM204からGeForce GTX 980を、GM206からGeForce GTX 960を……というように派生していった。

ちなみに、NVIDIAのダイのコードネームを見ると、最初のアルファベット"G"はおそらく「Graphics」ないしは「GeForce」のG(どの製品でも共通)を意味し、2つめのアルファベットはアーキテクチャのことを指している。

そして数字の3桁のうち最初の数字はアーキテクチャ内での世代(あれば)、残りの2桁は開発された順番などでつけられていることが多い(連番ではなく、基本的には偶数が振られる。ただし例外もある)。

従って"GM204"であれば、NVIDIAのグラフィックスチップ(G)で、Maxwellアーキテクチャ(M)に基づいており、Maxwellアーキテクチャの中での第2世代(2)の、04番という製品という意味になる。

同じことは今回発表されたPascalアーキテクチャのダイにもいえ、GP100ないしはGP104はNVIDIAのGraphics製品(G)の、Pascalアーキテクチャ(P)における、第1世代の製品で、00番と04番の製品という位置づけとなる。

2016年4月のGTC 2016で発表されたTesla P100のベースとなっているのが"GP100"、そして今回発表されたGeForce GTX 1080/1070に採用されたのが、"GP104"となる。GP100とGP104の違いをまとめると以下のようになる。

■ 表1 GP100とGP104の違い(NVIDIAの資料などから筆者作成)
製品名 Tesla P100 GeForce GTX 1080
開発コード名 GP100 GP104
SM数 56 20
SMあたりのCUDAコア 64 128
CUDAコア数 3584 2560
浮動少数演算性能
(単精度)
10.6TFLOPS 8.873TFLOPS
メモリ HBM2 GDDR5X
メモリ帯域 720GB/秒 320GB/秒
NVLink 4リンク -

両者の大きな違いは、CUDAコアと呼ばれる演算エンジンの構成だ。GP100では、SM(Streaming Multiprocessor)と呼ばれる演算単位に、64基のCUDAコアを格納しているのに対し、GP104ではSMあたり128基となっている。SMあたりのCUDAコアが小さい方が、並列演算時の効率は高まるので、汎用演算に最適化されているGP100と、グラフィックスの処理にフォーカスしているGP104の用途の違いと言えるだろう。

NVIDIAが4月にサンノゼで開催したGTCで発表したTesla P100(GP100)

また、メモリとI/Oも大きな違いといえる。メモリはGP100がHBM2という広帯域メモリを搭載し、720GB/秒という広帯域幅をサポートしているのに対して、GP104は従来のGDDR5の改良版となるGDDR5Xで、帯域幅は320GB/秒となっている。

このほか、GP100はNVLinkと呼ばれるCPUとGPU、GPUとGPU同士を接続するインターコネクトに対応していることも特徴となる。ただ、NVLinkのような機能はグラフィックスを処理するGPUには明らかにオーバースペックであり、これがコンシューマ向けの製品となるGP104では対応していないのは当然だろう。

GeForce GTX 980と比較すると、16nmへの微細化が最大の特徴となる

以下は、第2世代Maxwellにおける最初の製品となるGeForce GTX 980(GM204)、同じく第2世代Maxwellにおける最高峰の製品であるGeForce GTX TITAN X(GM200)と、GeForce GTX 1080(GP104)を比較した表になる。

■ 表2 GeForce GTX 1080、GeForce GTX 980、GeForce GTX TITAN Xのスペック(NVIDIAの資料などから筆者作成)
製品名 GeForce GTX 1080 GeForce GTX 980 GeForce GTX TITAN X
ダイの開発コード名 GP104 GM204 GM200
SM数 20 16 24
SMあたりのCUDAコア 128 128 128
CUDAコア数 2560 2048 3072
ベースクロック 1.607GHz 1.128GHz 1.0GHz
ブーストクロック 1.733GHz 1.216GHz 1.075GHz
*浮動少数演算性能
(単精度)
8.873TFLOPS 4.981TFLOPS 7TFLOPS
テクスチャユニット 160 128 192
テクスチャフィルレート 277.3Gテクセル/秒 155.6Gテクセル/秒 192テクセル/秒
メモリ GDDR5X GDDR5 GDDR5
メモリ容量 8GB 4GB 12GB
メモリクロック(データレート) 10Gbps 7Gbps 7Gbps
メモリバス幅 256bit 256bit 384bit
メモリ帯域幅 320GB/秒 224GB/秒 336.5GB/秒
ROP数 64 64 96
L2キャッシュ 2MB 2MB 3MB
TDP 180W 165W 250W
トランジスタ数 72億個 52億個 80億個
ダイサイズ 314平方mm 398平方mm -
製造プロセスルール 16nm 28nm 28nm

NVIDIAが公開したブロック図を見る限り、基本的な内部のアーキテクチャはMaxwellからPascalになっても大きく変わってはいない。SMあたりのCUDAコアの数や、256KBのRegister Fileなども同等になっており、大きな差はない。基本的にGP104の内部構造そのものは、GM204のそれにかなり似通ったモノだと言え、基本的には改良版と考えていいだろう。

GP104のブロックダイアグラム(出典:NVIDIA、2016年5月)

GP104のSMブロックダイアグラム(出典:NVIDIA、2016年5月)

しかし、GM204ベースのGeForce GTX 980に比べると、SMの数は16から20に増えておりその結果として、演算器であるCUDAコアが2048個から2560個に、さらにトランジスタ数もGM204の52億個から72億個に増えている。一方で、製造プロセスルールは28nmから16nmへと微細化されており、ダイサイズはGM204の398平方mmから、GP104では314平方mmへと小さくなっている。

また。内部構造を見直すことで、ベースの動作クロックが1.6GHzに引き上げられ、電力効率は大きく改善されている。単精度の浮動小数点演算性能では約1.7倍になっているのに対して、消費電力はほぼ変わらないレンジに収まっている。

回路構造を見直すことで動作クロックも大幅に引き上げられている(出典:NVIDIA、2016年5月)

つまり、GM204との比較でGP104をハードウェア面(つまりマイクロアーキテクチャ)から評価するのであれば、内部構造は改良版だが、16nmへの微細化で動作クロックの引き上げや、演算器が増加、なおかつダイサイズを小さく抑えて電力効率(パフォーマンス/ワット)を改善した、ということができるだろう。

10Gbpsのデータレートを実現するGDDR5Xに対応、新しいメモリ圧縮技術にも対応

メモリ周りに関しても大きな強化がされている、それはGDDR5Xメモリへの対応だ。GDDR5Xは、これまでGPU向けのDRAMとして利用されてきた「GDDR5の改良版」という位置付けの規格で、内部構造やI/Oの改良によりGDDR5ではデータレートがメモリクロックの4倍だったのに対して、GDDR5Xでは8倍になるという特徴がある。例えば同じ1.25GHzだったとしたら、GDDR5ではデータレートが5Gbps(5GHz相当)であるのに対して、GDDR5Xではデータレートが10Gbps(10GHz相当)になる。

GDDR5Xを採用することで、データレートが10Gbpsに引き上げられている(出典:NVIDIA、2016年5月)

このため、メモリコントローラのバス幅はGeForce GTX 980と同じ256bit幅(8x32bit)でありながら、320GB/秒というメモリ帯域幅をサポートしており、より大容量のデータを一度にメモリ上に展開することが可能になった。これまでメモリ帯域がボトルネックになっていたようなアプリケーションでは、性能が向上することになる。

Maxwell世代で導入されたメモリ圧縮の機能が拡張されている(出典:NVIDIA、2016年5月)

さらに、NVIDIAはPascal世代で新しいメモリ圧縮技術を導入する。Maxwell世代では2:1圧縮の手法が導入されたが、Pascal世代ではその2:1圧縮の機能拡張(効率が改善されている)に加え、4:1圧縮、8:1圧縮という新しい手法も導入される。

メモリ圧縮を利用する前の画像(出典:NVIDIA、2016年5月)

4:1の圧縮を利用した場合(出典:NVIDIA、2016年5月)

8:1の圧縮を利用した場合、ほとんど自動車が判別できないぐらいに圧縮されている(出典:NVIDIA、2016年5月)

DRAMの変更による帯域幅のアップで1.4倍に、さらに新しいメモリ圧縮技術の導入により1.2倍の効率改善があるとNVIDIAは説明しており、それらをトータルすると約1.7倍のメモリ帯域の利用効率の改善がされていることになる。

メモリが広帯域になっただけでなく、圧縮機能の導入で効率が上昇している(出典:NVIDIA、2016年5月)