後藤弘茂のWeekly海外ニュース

AMDが次世代GPU「Radeon RX Vega64」を正式発表

~AMDの夏の大攻勢始まる

AMDが新GPUを正式発表

 AMDの夏の大攻勢がはじまった。AMDは8月に、新GPU「Radeon RX Vega64(Vega10:ベガ10)」と16コアCPU「Ryzen Threadripper」を投入する。今年(2017年)のAMDの新製品が重要なのは、いずれもアーキテクチャの大きな変化となるからだ。ZenアーキテクチャでCPUはマイクロアーキテクチャを一新したが、今回のVegaでGPUもマイクロアーキテクチャが一新される。AMDにとって、5年振りの大きなGPUマイクロアーキテクチャ変革となる。

マイクロアーキテクチャが刷新されるVega
Radeon RX Vega64として製品化されるVega10
Radeon RX Vega64のスペック

 GPU製品としてみると、Radeon RX Vega64は、AMDにとって2年振りのフラグシップモデルだ。AMDは、昨年(2016年)はハイエンドGPUを発表しなかったため、ハイエンドのGPUはPolaris(ポラリス)世代をスキップしてVegaとなる。Vegaはファミリで登場する見込みで、今回発売されるのは、最上位のVega10だ。

 Vega10アーキテクチャの最大のポイントは、NVIDIAのように巨大ダイ(半導体本体)への道を歩まずに、この世代ではGPUのダイサイズを抑えてきたこと。ダイサイズは486平方mmで、NVIDIAのVolta(ボルタ)世代の「GV100」の815平方mmの60%程度しかない。AMD自身の2015年のフラグシップGPU「Radeon R9 Fury X(Fiji:フィージー)」の596平方mmの82%程度。トランジスタ数は12.5B(Billion:125億)だが、これもNVIDIAと比べると少ない。スタックドメモリHBM2も2スタックと、NVIDIAの4スタックより少ない。

Vega10の特徴

 マイクロアーキテクチャでは、NVIDIAは今世代で深層学習(ディープラーニング)に向けて大きく振った。深層学習向けとグラフィックス向けに完全に分化する道を選んだと見られる。それに対してAMDは深層学習向け機能を加えながらも、そこに使うトランジスタを抑えた。結果として、Vega10は、高いグラフィックスパフォーマンスの割りには製造コストが低い=価格を下げられる、バランスのよいGPUとなっている。

Vega10
手前がFiji、奥がVega10

コア数は同一だが性能は47%アップ

 Vega 10のCU(Compute Unit)数は64個で、単精度FP32積和算ユニット(AMD用語ではStream Processor)数は4,096個。これは、2015年の「Radeon R9 Fury X(Fiji:フィージー)」と同じ数だ。しかし、FP32の性能は、Radeon R9 Fury Xの8.6TFLOPSに対して、Radeon RX Vega64では12.66TFLOPSと、47%も性能が上がっている。

Vega10の全体構成

 大幅な性能向上は、チップの動作周波数の向上によってなされている。Fury Xでは動作周波数は1,050MHzだったが、Radeon RX Vega64では、ベースクロック1,247MHz、ブーストクロック1,546MHzとなっている。動作周波数の向上分が、そのまま性能向上となっている。

 Vegaアーキテクチャでは、従来のGCNと比べて基本のパイプライン段数に変更はない。ベクタユニットの積和算パイプは4サイクルレイテンシのままだ。しかし、クリティカルパスについては徹底したチューニングが行なわれたという。

 ロジック回路はパスによってディレイが異なり、ディレイがとくに長いパス群がクリティカルパスと呼ばれる。同期型プロセッサの動作周波数は、もっともディレイが長いパスに制約される。そのため、クリティカルパスをチューニングしてディレイを短縮すれば、動作周波数の向上が可能となる。Vega10ではクリティカルパスチューニングと、14nm LPPプロセスによって、1.7GHz以上の動作周波数が可能になったという。

Vegaでは回路設計によって高クロック化を実現
CPUスタイルのカスタム回路設計のSRAMをレジスタに採用

 パイプライン自体を変更しなかったのは、パイプラインを深くして積和算のレイテンシを長くすると、パイプラインを満たすのにより多くのスレッドが必要となってしまうからだと推測される。スレッド並列性を維持するためには、レジスタなどより多くのリソースが必要となってしまう。それに対してクリティカルパスチューニングでは、原理的にはアーキテクチャ上の変更が必要ない。

GPUコアのマイクロアーキテクチャを刷新

 Vega世代では、CU(Compute Unit)のマイクロアーキテクチャが大きく刷新された。新設計の次世代CU「NCU(Next-Generation Compute Unit)」となった。NCUの最大の特徴は、「Rapid Packed Math (RPM)」と呼ぶパックド(SIMD)フォーマットのFP16半精度浮動小数点演算のサポートだ。

パックドFP16をサポートしたVega
ネイティブ命令セットも拡張された

 AMD GPUは単精度FP32(32-bit浮動小数点)演算に最適化したパイプラインを備えている。しかし、Vegaでは、32-bitパイプで16-bitの浮動小数点演算を2並列のSIMD(Single Instruction, Multiple Data)フォーマットで行なうことで、FP16時にFP32の2倍の性能を出すことができる。

 FP16はモバイルグラフィックスなどで使われている他、マシンラーニングでも急速に浸透している。マシンラーニングのトレーニングフェイズにおいて、データ精度を下げたFP16の利用が進んでいるためだ。VegaでのFP16は、積和算など通常の演算はすべてサポートしている。

パックドの8-bit整数演算

 Vegaアーキテクチャでは、パックドの8-bit整数演算もサポートされた。しかし、8-bit整数演算は、SAD(Sum of Absolute Difference:差の絶対値和)演算のみサポートとなっている。動画などイメージ処理向けであり、マシンラーニング向けの実装ではない。この他にもVegaアーキテクチャには、ジオメトリパイプラインの刷新や新しいキャッシュ回路設計、FreeSyncの拡張など多数のアーキテクチャ拡張が加わっている。後の記事でレポートしたい。

Radeon RX Vega64の周辺
Vegaで加わった新しいジオメトリ部分のシェーダ
【表】AMD GPUのスペック比較
名称Radeon Pro SSGRadeon Pro WX9100Radeon RX Vega64 Liquid Cooled EditionRadeon RX Vega64
コードネームVega10Vega10Vega10Vega10
ベースクロック  1,406MHz1,247MHz
コアクロック(最高)1,500MHz?1,500MHz?1,677MHz1,546MHz
アーキテクチャGCN 5.0GCN 5.0GCN 5.0GCN 5.0
プロセッサ数 FP324,0964,0964,0964,096
CU数64646464
FP32 MAD/CU64646464
プロセッサ数 FP168,1928,1928,1928,192
プロセッサ数 INT816,38416,38416,38416,384
FP32 GFLOPS10,21510,21511,51810,215
FP32 GFLOPS (boost clock)12,28812,28813,73812,665
FP16 GFLOPS20,43120,43123,03620,431
FP16 GFLOPS (boost)24,57624,57627,47625,330
Texture Units256256256256
Texture Fill Rate319.2GT/s319.2GT/s359.9GT/s319.2GT/s
ROP Units64646464
Pixel Fillrate79.81Gpixels/s79.81Gpixels/s89.98Gpixels/s79.81Gpixels/s
L2 cache4,096KB4,096KB4,096KB4,096KB
メモリ種類HBM2HBM2HBM2HBM2
メモリ転送レート1,892Mtps?1,892Mtps?1,892Mtps?1,892Mtps?
ビデオメモリインターフェイス幅2,048bit2,048bit2,048bit2,048bit
メモリ帯域(GB/Sec)484GB/s484GB/s484GB/s484GB/s
標準搭載メモリ16GB16GB8GB8GB
DRAM容量/ダイ8Gb8Gb8Gb8Gb
DRAM個数16 個16 個8 個8 個
SSG(NAND Storage)2TB   
製造プロセス技術14nm14nm14nm14nm
製造プロセス技術の特徴14LPP14LPP14LPP14LPP
トランジスタ数12,500M12,500M12,500M12,500M
ダイサイズ(最初のダイ)486平方mm486平方mm486平方mm486平方mm
TDP Max300W250W345W295W
名称Radeon RX Vega56Radeon RX 480Radeon R9 Fury X
コードネームVega10Polaris 10 (Ellesmere)Fiji
ベースクロック1,156MHz1,100MHz1,050MHz
コアクロック(最高)1,471MHz1,266MHz1,050MHz
アーキテクチャGCN 5.0GCN 4.0GCN3
プロセッサ数 FP32358423044,096
CU数563664
FP32 MAD/CU646464
プロセッサ数 FP167,1682,3044,096
プロセッサ数 INT814,336
FP32 GFLOPS8,2865,0698,602
FP32 (boost clock) GFLOPS10,5445,8348,602
FP16 GFLOPS16,5725,0698,602
FP16 GFLOPS (boost)21,0885,8348,602
Texture Units224144256
Texture Fill Rate258.9GT/s158.4GT/s268.8GT/s
ROP Units643264
Pixel Fillrate73.98Gpixels/s35.20Gpixels/s67.20Gpixels/s
L2 cache4,096KB2,048KB2,048KB
メモリ種類HBM2GDDR5HBM1
メモリ転送レート1,700Mtps7,000Mtps1,000Mtps
ビデオメモリインターフェイス幅2,048bit256bit4,096bit
メモリ帯域(GB/Sec)435GB/s224GB/s512GB/s
標準搭載メモリ8GB8GB4GB
DRAM容量/ダイ8Gb4Gb2Gb
DRAM個数8 個16 個16 個
SSG(NAND Storage)   
製造プロセス技術14nm14nm28nm
製造プロセス技術の特徴14LPP  
トランジスタ数12,500M5,700M8,900M
ダイサイズ(最初のダイ)486平方mm232平方mm596平方mm
TDP Max210W150W275W

膨大なメモリ空間をGPUが使えるようにするHBCC

 Vega10は、スタックドDRAMの「HBM2」をサポートする。AMDはRadeon R9 Fury(Fiji)でHBM1をサポートした。今回は、規格上のデータ転送レイトが2倍になったHBM2を搭載している。Fijiでは、データ転送レートが1GtpsのHBMを、4スタック搭載していた。メモリインターフェイスは4,096bitで、メモリ帯域は512GB/sだった。

 今回、AMDはVega10に、2,048-bitのHBM2インターフェイスを実装した。HBM2メモリスタックは2個と、Fijiの半分になった。しかし、HBM2自体のデータ転送レートが上がったことで、メモリ帯域は484GB/sを達成している。また、HBM1では、DRAMダイの容量が2G-bitだったが、HBM2では8G-bitとなったため、2スタックでも8GBの容量となっている。

Vegaの重要な特徴であるHBCC(High-Bandwidth Cache Controller)

 さらに、Vegaでは、「HBCC(High-Bandwidth Cache Controller)」と呼ぶ新ユニットを搭載した。HBCCは、GPUのメモリだけでなく、CPU側のシステムメモリやストレージ、GPUに搭載したフラッシュストレージなどをシームレスにGPUメモリとして扱うことができるようにする仮想メモリシステムだ。Vegaアーキテクチャでは、CPUシステムメモリの一部やストレージをHBCCのメモリ空間として扱うことができる。

 そして、オンパッケージのHBM2をあたかもキャッシュメモリのように扱う。インクルーシブキャッシュモデルを取る場合は、HBM2が新しいキャッシュ階層のように振る舞う。エクスクルーシブキャッシュモデルの場合は、HBM2とGPU外のメモリが地続きのメモリとしてマップされる。基本的なアイデアは、アクセス頻度が低いデータは遠いメモリに、頻度が高いデータは近いHBM2に持つことで、無理なく大規模なワークセットを扱えるようにする点にある。

GPUの性能とメモリ容量のギャップ
ページベースのHBCCのメモリ管理

 キャッシュといってもHBCCの制御の粒度はページベースだ。Vegaでは、異なる複数のページサイズを同時に扱うことができるようにした。グラフィックスで多用されるシーケンシャルなアクセスが生じるようなデータタイプはラージページに格納。分散したアクセスが発生するデータはスモールページに格納する。Vega10では512TBまでのバーチャルアドレススペースをサポートする。

エクスクルーシブキャッシュモード時
インクルーシブキャッシュモード時

Radeon RX Vega64製品ラインナップ

 製品としてのRadeon RX Vegaには複数のSKU(Stock Keeping Unit=アイテム)とパックがある。グラフィックスカードでは、フルスペックの「Radeon RX Vega64」が499ドルで発売される。Radeon RX Vega64では、64個のNCUが有効になっており、それが製品グレードナンバ「64」の由来となっていると見られる。

 Radeon RX Vega64では、64個のNCUで、FP32積和算ユニットは合計4,096個となる。動作クロックはブースト1,546MHzで、ピーク性能はFP32で12.66TFLOPS、FP16で25.3TFLOPS。Radeon RX Vega64には、カードデザインが異なるリミテッドエディションがあるが、これは後述するパックでしか入手できない。

Radeon RX Vega64リミテッドエディション
Radeon RX Vega64のラインナップ
Radeon RX Vegaラインナップのスペック
液冷版のRadeon RX Vega64

 Radeon RX Vega64には液冷の「Radeon RX Vega64 Liquid Cooled Edition」がある。冷却能力を高めることで、動作周波数をブーストさせたバージョンだ。ベース1,406MHz、ブースト1,677MHzで、ピーク性能はFP32で13.7 TFLOPSとなる。FP16なら27.5 TFLOPSに達する。

 Radeon RX Vegaファミリでは、さらに廉価なRadeon RX Vega56も399ドルで発売される。こちらは56 NCUで3,584FP32ユニット、ピーク性能は10.5TFLOPS。動作周波数はRadeon RX Vega64よりやや抑えられベース1,156MHz/ブースト1,471MHzとなっている。TDP(Thermal Design Power:熱設計消費電力)で比較すると、Radeon RX Vega56が210W、Radeon RX Vega64が295W、Radeon RX Vega64 Liquid Cooledが345Wだ。

通常版のRadeon RX Vega64
Radeon RX Vega56

お買い得なRadeon Pack

 AMDはRadeon RX Vega64発売にさいして、グラフィックスカード以外のディスカウントを加えたパック製品「Radeon Pack」も用意した。これは、Radeon RX Vegaカードに加えて、ディスプレイやCPU、マザーボードのディスカウントとゲームパッケージをセットにしたパッケージだ。

 パックには、湾曲34型の「Samsung CF791」FreeSyncディスプレイの200ドル割引、Ryzen 7とX370マザーボードの100ドル割引、それに120ドル相当のゲームパッケージ(リージョンによって異なる)が含まれる。Radeon RX Vegaに加えて、Ryzen 7プラットフォームとFreeSyncモニタも揃えてしまおうというユーザーにとっては、いい組み合わせとなっている。Radeon Packも8月に発売される。

 パックは3系統が用意される。最上位の「Radeon Aqua Pack」は、液冷却のRadeon RX Vega64のパックで699ドル。通常の空冷のRadeon RX Vega64ベースのパックは「Radeon Blask Pack」で599ドルから。Blask PackのRadeon RX Vega64には、リミテッドエディションのバージョンが含まれる。

 このほか、Radeon RX Vega56ベースの「Radeon Red Pack」も499ドルで発売される。言い換えれば、パックではカード製品と100ドルの差額で、300ドル分のハードウェア割引と、120ドル分のゲームが手に入る。

Radeon Packの概要
3種類のRadeon Pack
Radeon RXのラインナップ

VegaベースのRadeon ProとRadeon Instinct

 AMDはVegaベースのプロフェッショナル向けGPU「Radeon Pro」も発売する。Vega10ベースのRadeon Proは2種類。通常版の「Radeon Pro WX9100」と、フラッシュストレージをオンボードで搭載した「Radeon Pro SSG」だ。このRadeon Pro SSGが、ある意味、真のVega10となる。

 Radeon Pro WX9100は、12.3TFLOPSで、Radeon RX Vega64より少しだけ動作周波数が抑えられていると見られる。Radeon RXとのスペック上の大きな違いは、ビデオメモリの搭載容量。Radeon RX Vega64がHBM2 8GBなのに対して、Radeon Pro WX9100は16GBとなっている。

Radeon Pro WX9100

 HBM2では1個のDRAMダイ(半導体本体)が8G-bit(実際にはECCを含めて9G-bit)。Vega10は、HBM2を2スタック載せているため、Radeon Pro WX9100のHBM2は8Hi(8個のDRAMダイの積層)となる。8Hiの場合、HBM2では2ランク構成となる。

 しかし、Radeon Pro WX9100のメモリ帯域は484GB/sと、Radeon RX Vega64と同等で、転送レートは1.9Gtps近い。HBM2では、2ランクでも転送レートが落ちないことがわかる。Radeon Pro WX9100のTDPは250Wとなる。

Radeon Pro SSG

 Radeon Pro SSGでは、2TBのフラッシュストレージがオンボードで搭載されている。ほかのスペックは、TDPが300Wに上がる以外の違いはない。NANDフラッシュストレージは、PCI Express接続のNVMeで、グラフィックスカード上に配置されている。Vega GPUとは、PCI Expressブリッジチップを介して接続されている。GPUからはCPU経由ではなく、PCI Expressで直接SSGにアクセスできるため、リードが8GB/s、ライトが6GB/sと高性能だ。SSGはHBCCによって管理される。アプリケーションから明示的にSSGにアクセスするためのAPIも用意されている。

HBCCからのPCI Expressバスの途中にPCI Expressブリッジがあり、NVMeのSSGストレージが接続されている

 高性能の並列プロセッサに、広帯域のスタックドDRAMと、大容量の不揮発性メモリを接続するというアイデアは、AMDが以前から暖めていたアイデアだ。Radeon Pro SSGは、その構想の第一歩となるGPUとなっている。

AMDがエクサスケールスパコンのために提案したメモリアーキテクチャ

 Vega10では、このほか、GPUコンピューティング向けのRadeon Instinctでも製品が提供される。「Radeon Instinct MI25」で、HPC(High Performance Computing)用途のほか、高いFP16性能を活かして、主に深層学習の学習フェイズへの浸透を狙う。