Preview dan Analisis Singkat: AMD Radeon RX 5700 Series ‘Navi’ & Arsitektur RDNA
Sekilas Arsitektur RDNA, Pengganti GCN
Kartu grafis AMD identik dikatikan dengan arsitektur GCN (Graphics Core Next), dan ini terjadi karena sejak 2012 dulu AMD masih menggunakan arsitektur dasar yang sama, dengan setiap generasi mendapat peningkatan di beberapa komponen.

GCN : Dari 28nm ke 7nm
Sebagai contoh produk:
- AMD Radeon HD 7970 ‘Tahiti’ : GCN generasi pertama
- Radeon R9 290X ‘Hawaii’ : GCN generasi kedua
- Radeon R9 Fury X ‘Fiji’ : GCN generasi ketiga
- Radeon RX 480 ‘Polaris’ : GCN Generasi keempat
- Radeon RX Vega 64 ‘Vega’: GCN Generasi kelima
Bisa dilihat bahwa ‘GCN’ ini sendiri merupakan iterasi arsitektur grafis dari AMD yang paling lama dibandingkan pendahulunya, GCN mulai digunakan pada fabrikasi 28nm(HD 7970), hingga ke 7nm (Radeon VII).
Di satu sisi ini menunjukkan bahwa AMD bisa ‘memeras’ arsitektur grafis ini sampai titik penghabisan, dan umumnya kartu grafis AMD berbasis GCN terlihat memiliki dukungan yang makin baik dengan berbagai update driver terbaru, dan beroperasi lebih baik dibandingkan kartu grafis kompetitor yang relatif berumur sama (sebagai lelucon, ada yang menyebut ini sebagai ‘FineWine’ technology).
Namun, banyak enthusiast yang mulai berpikir GCN sudah outdated dan tidak layak digunakan sebagai basis kartu grafis modern.
Untuk itu, AMD memperkenalkan arsitektur yang akan membawa mereka ke era baru : RDNA (‘Radeon DNA’). RDNA sendiri diklaim akan membawa peningkatan 1.25x performance-per-clock. dan 1.5x performance-per-watt dari GCN.
RDNA: Efisien & Scalable
RDNA yang disiapkan untuk GPU masa depan AMD, memiliki fokus pada beberapa area:
- Performance : Optimal pada workload beragam, fokus pada Gaming graphics namun juga kencang pada Compute
- Efficiency: Efisien dari segi penggunaan daya, dan juga penggunaan bandwidth
- Scalability : Dapat digunakan pada banyak perangkat, mulai dari mobile, console, desktop, hingga Cloud.
Berikut gambaran singkat arsitektur RDNA yang diterapkan pada ‘Navi’ :


Pada ilustrasi di atas yang menggambarkan Radeon RX 5700 series ‘Navi’, nampak bahwa:
- ‘Compute Unit(CU)’ yang ada disana dikelompokkan menjadi ‘Dual Compute Unit‘ (berisi 2 CU, cukup jelas).
- Satu Shader Engine berisi 10x Dual Compute Unit,
- Sebuah full chip memiliki 2 Shader Engine, berisi 20 x Dual Compute Unit = Total 40 CU = 2560 Stream Processor.
- Total 64 ROP, 4x Asyncronous Compute Engine(ACE) per GPU
Berbeda dengan RX 5700 XT yang memiliki konfigurasi full chip 40 CU, RX 5700 akan memiliki 2x Dual Compute Unit yang non-aktif (satu per Shader Engine), menghasilkan 18x Dual Compute Unit = 36 CU = 2304 Stream Processor.
RDNA Compute Unit
Perjalanan untuk membuat RDNA berbeda dari GCN dimulai AMD dengan melakukan major redesign, membuat RDNA Compute Unit (RDNA CU) mereka bekerja dengan cara yang berbeda dengan GCN CU.
Berikut sebuah RDNA CU dari Navi:

Satu RDNA Compute Unit NAVI akan memiliki:
- 64 Stream Processor
- 2x Scalar Units per CU & 2x Scheduler per CU(1x Scheduler per 32 Stream Processor), sanggup menangani instruksi lebih banyak per cycle
RDNA vs GCN CU

Perbedaan yang cukup kentara dari GCN dan RDNA CU ada saat eksekusi work-item(misal: satu pixel/vertex).
Satu GCN CU akan melakukan eksekusi parallel akan 64 work-item (64 work-item ini disebut satu ‘Wavefront’ a.k.a ‘wave64’). Mengingat lebar unit SIMD pada GCN hanya 16 (a.k.a ‘SIMD16‘) dan GCN memiliki 4 unit SIMD16, GCN membagi eksekusi satu ‘wave64’ ini ke 4 unit SIMD , membuat operasi ini umumnya membutuhkan 4 clock cycle untuk diselesaikan.
Sedangkan 1 RDNA CU dapat beroperasi dengan 32 work-item per wavefront (‘wave32’), dan lebar unit SIMD pada RDNA bertambah menjadi 32 (SIMD32), operasi satu wavefront (‘wave32’) jadi bisa selesai dalam 1 clock cycle. RDNA CU memiliki 2 unit SIMD32.
Lihat beberapa ilustrasi di bawah ini:

Pada sebuah contoh dimana ada 64 work-item ALU intensive code :
- GCN membutuhkan 4 Clock Instruction Issue, dengan hanya 25% dari CU mereka digunakan
- RDNA dapat mengerjakan hal yang sama dengan 1 Clock instruction issue, 100% dari CU dimanfaatkan
Dengan desain seperti ini, pekerjaan pada RDNA CU dapat terdistribusikan dengan lebih efektif, memastikan semua CU bekerja optimal.
Dual Compute Unit & Resource Pooling
Seperti yang bisa dilihat dari overview chip Navi, 2(Dua) Compute Unit dari Navi bisa dikonfigurasikan menjadi ‘Dual Compute Unit‘ atau ‘Workgroup Processor‘ seperti ini:

Dual Compute Unit pada Navi bisa melakukan resource pooling, untuk mendapat akses ke resource ekstra yang dibutuhkan (entah register atau cache). Tentu, ini tidak akan secara ‘otomatis’ membuat CU-nya lebih kencang, hanya saja ini akan membuat beberapa heavy workload akan bisa diselesaikan dalam cycle lebih singkat karena pemanfaatan resource yang lebih optimal.
Multi Level Cache Hierarchy
L0, L1, & L2 Cache di Navi
RDNA Compute unit yang bekerja keras harus didukung dengan cache memory beperforma tinggi, dan AMD ingin memastikan ada beberapa multi-level cache yang tersedia untuk memenuhi kebutuhan:
- Per Dual Compute Unit punya akses ke sebuah local cache sangat kencang yang AMD sebut sebagai ‘Level 0’ / L0 cache sebesar 16 kB.
- 5x Dual Compute Unit memiliki akses ke sebuah dedicated L1 Cache sebesar 128 kB
- Ada total 4MB L2 Cache per GPU
Delta Color Compression : Di berbagai komponen, tidak hanya framebuffer
Salah satu fitur untuk meningkatkan pemanfaatan bandwidth pada GPU adalah adanya kemampuan untuk melakukan baca/tulis data terkompresi dari storage/memori yang ada, GPU modern AMD (dan NVIDIA) sudah bisa melakukan ini dari beberapa generasi silam.
GPU AMD sejak GCN Generasi 3 (Fiji/Tonga) memiliki Lossless Delta Color Compression, sebuah metode yang membuat GPU Core sejak GCN 3rd Gen menyimpan framebuffer color data dalam lossless compressed format, dan GPU-nya dapat membaca dan menulis data terkompresi dari framebuffer (memory). Tentu karena penggunaan kompresi lossless, tidak ada perbedaan image quality yang dihasilkan dari mekanisme ini, yang didapat hanya efisiensi ekstra dari memory bandwidth.
Pada Navi / RDNA, AMD membuat beberapa komponen selain framebuffer/memori yang juga bisa melakukan baca/tulis data terkompresi.
Peningkatan dari RDNA
Dengan berbagai peningkatan dari segi arsitektur, AMD memberikan klaim bahwa RDNA di RX 5700 XT Navi (40 CU) menghasilkan:
- 1.25x Performance-per-clock pada Gaming dari Vega(Pada jumlah Compute Unit sama, rata-rata dari 30 Game @ 4K Ultra, 4x AA)
- 1.14x Performance RX Vega 64 dengan menggunakan hanya 77% power-nya – ini berarti Navi 40 CU tersebut memiliki sekitar 1.5x Performance Per Watt dari Vega 64
AMD memberikan gambaran bahwa peningkatan performance per watt dari RDNA didapatkan dari:
- sekitar 60% Performance-per-clock improvement
- sekitar 25% karena fabrikasi 7nm
- dan sisanya karena berbagai penyesuaian pada Frequency & Power di Navi
Peningkatan BESAR pada performance-per-area
Peningkatan yang cukup ‘mengerikan’ dari Navi adalah GPU tersebut memiliki performance lebih tinggi dari Vega 64, dengan area silicon sekitar SETENGAH-nya!
Halaman berikutnya – Radeon Software Improvement : Anti-Lag, Image Sharpening