Graphics Core Next
AMDの解決策は、複数のウェーブフロントを各SIMD-VUに割り振ることである。ハードウェアはレジスタを異なるウェーブフロントに振り分けて、メモリにある一つのウェーブフロントが何らかの結果を待機している時、CUスケジューラはSIMD-VUに他のウェーブフロントを実行させる。ウェーブフロントはSIMD-VU毎に割り振られており、SIMD-VUはウェーブフロントを入れ替えない。最大10個のウェーブフロントが1基のSIMD-VUに割り振られる。(従ってCUあたり40個。)
CodeXL(英語版)では、SGPRおよびVGPRの数と波紋の数の関係を表にしているが、基本的にSGPRSの場合はmin(104, 512/numwavefronts)、VGPRSの場合は256/numwavefrontsとなる。
ストリーミングSIMD拡張命令に関連して、この最も基本的な並列度の概念は、しばしば「ベクトル幅」と呼ばれることに注意されたい。ベクトル幅は、その中の総ビット数によって特徴付けられる。
このユニットは縮退トライアングルがバーテックスシェーダーを通過し、さらにどのフラグメントもカバーしないトライアングルがフラグメントシェーダーを通過する前に、それを破棄する。このユニットは第4世代GCNマイクロアーキテクチャで追加された。
各コンピュートユニット (Compute Unit; CU) はCUスケジューラ、分岐およびメッセージユニット、4基のSIMDベクタユニット(それぞれ16レーン幅)、4つの64KiB VGPRファイル、1基のスカラユニット、4KiBのGPRファイル、64KiBのローカルデータ共有、4基のテクスチャフィルタユニット、16基のテクスチャフェッチロード・ストアユニットおよび16KiBのL1キャッシュで構成される。4基のコンピュートユニットは16KiB単位の命令キャッシュと32KiBのスカラデータキャッシュを共有する。これらはL2キャッシュによってバックアップされている。SUは一度に1個(サイクルあたり1回)演算するが、SIMD-VUは一度(サイクル毎)に16要素を演算する。さらに、SUはいくつかの他の演算を分岐のように扱うことができる。
いずれのSIMD-VUも各々でそのレジスタを記憶するメモリを持っている。それらには2種類のレジスタがある。4バイトの数字を保持するスカラレジスタ (s0, s1, etc) と、4バイト数値を64セット保持するベクタレジスタ (v0, v1, etc.) である。ベクタレジスタ上で演算するとき、どの演算も64個の数値で並列に行われる。つまり、それらで何かを処理をさせる度に64個を入力することができる。例えば、64個の異なるピクセルを一度に処理させることができる。(それぞれの入力はわずかに異なり、従って最終的にはわずかに異なる色を得られる。)
いずれのSIMD-VUも512個のスカラレジスタと256個のベクタレジスタを抱えている。