このページの本文へ

前へ 1 2 3 4 次へ

ロードマップでわかる!当世プロセッサー事情第515回

詳細が判明したRDNAの内部構造 AMD GPUロードマップ

2019年06月17日 12時00分更新

文● 大原雄介(http://www.yusuke-ohara.com/) 編集●北村/ASCII.jp

  • この記事をはてなブックマークに追加
  • 本文印刷

 COMPUTEXではチラ見せに終わったNAVIアーキテクチャーとRadeon RX 5700シリーズであるが、6月10日に開催されたNext Horizon Gamingというイベントでその詳細が明らかにされた。概略は先の笠原一輝氏のレポートに詳しいので、こちらでは内部構造に話を絞って詳細を解説しよう。

スレッドの管理を細分化した
RDNAの内部構造

 まずRDNAと呼ばれる新しいNAVIの内部構造を説明する。下の画像がNAVI10全体の構成図である。このレベルで言えば、GCNと大きな違いはない。

NAVI10全体の構成図。CU(Compute Unit)という呼び方は従来のGCNと同じく。40個のCUが10個つづ4つのグループに分けて実装される

 では何が違うか? といえばスレッドの管理の仕方である。R600の世代以降、AMDのGPUは基本的に64スレッドをまとめて管理するWave64という仕組みを取っていた。

Waveはデータスレッドの塊であり、Wave64ではデータスレッドを64個まとめて管理する

 これに対し、RDMAはこの単位を半減化したWave32を基本とする。これにあわせて、Compute Unitの中身も変化した。

RDMAはWave32を基本とする。RDNAもGCNもCUあたりのSIMDエンジンの数そのものは変わらない

 GCN世代では、16-WideのSIMD(Single Instruction Multiple Data)がCU内に4つあり、これが4サイクルかけて4つのWave64を処理する。スループットで言えば1つのWave64あたり1サイクルで処理できるのだが、実際は4サイクル刻みとなっていた。

 対してRDNAでは、まずSIMDが32-Wide(内部的には16-Wide×2)構成となり、これが2つのWave32を1サイクルで処理する。

 その意味ではスループット的には同じではあるのだが、GCNの場合はそもそも先に書いた通り4サイクルまるまる4つのWave64の処理でロックされる形になっており、また条件分岐などのスカラー処理を行なうスカラーユニットは4サイクルに1回しか動けない(あるWave64がスカラーユニットを使っている間、他のWave64は待機となる)といった弊害があった。

GCNまでの処理の流れ。根本的な問題はWave64を4つまとめて管理したところにある

 RDNAではこれがすっきりした形になる。ちなみに互換性維持のためにWave64での動作モードも用意されているが、この場合でも構造そのものは変わらず、単にそれぞれの32-WideのSIMDエンジンが2サイクルかけて1つのWave64を処理する、という形になっている。

RDNAでは、1つのWave32が1サイクルで処理され、またスカラーユニットが倍増した関係で、より効率よく処理が可能になった
GCNとRDNAのWave32/Wave64での処理ステップを比較したもの。GCNに比べて圧倒的に処理のレイテンシーが短縮された

前へ 1 2 3 4 次へ

この連載の記事