Pagine

Architettura della GPU Bonaire: GCN 1.1 alza la testa

Bonaire ha un die di 160 millimetri quadrati ed ospita 2,08 miliardi di transistor. Confrontato con Pitcairn è più piccolo del 32% e paragonato con Cape Verde è più grande del 30%.

die

Se con Pitcairn AMD ha sostanzialmente preso tutte le unità funzionali di Cape Verde e le ha raddoppiate, con Bonair AMD ha utilizzato un procedimento "intermedio" creando un ibrido tra le due architetture. 

Come detto in precedenza il front-end è quello di Pitcairn (o di Tahiti), cioè presenta due geometry engines separati (ognuno dotato dei blocchi fondamentali di Geometry, Tessellation e Rasterizer) e per questo è in grado di processare due triangle per clock rispetto all'elaborazione singola di Cape Verde. Quest'implementazione consente a Bonaire di affrontare a testa alta la GPU GK106-220 della GTX 650 Ti anche negli scenari di tessellation più impegnativi (ricordiamo che Nvidia ha spostato l'elaborazione di vertici e primitive direttamente all'interno del GPC).

Lo shader engine è basato su design GCN con 896 SPs suddivisi in due cluster con un'organizzazione a 4+3 array di CU (ricordiamo che Cape Verde utilizza un singolo cluster a 4+3+3 array, mentre Pitcairn due cluster con la medesima configurazione di Cape Verde).

Il back-end deriva invece da Cape Verde: troviamo 16 ROPs (contro le 32 di Pitcairn) e due memory controller da 64-bit (contro i quattro di Pitcainr). Per bilanciare un bus ampio appena 128-bit AMD è stata costretta ad utilizzare dei velocissimi chip VRAM GDDR5 funzionanti a 1500 MHz (6000 MHz effettivi). In questo modo la bandwidth messa a disposizione dalle memorie per la GPU Bonaire è salita a 96 GB/s (contro i 72GB/s destinati a Cape Verde). Valore comunque lontano dai 153 GB/s di Pitcairn, che ricordiamo può contare su un bus da 256-bit).

(clicca sui pulsanti per confrontare le architetture)

Bonaire supporta l'ISA (Instruction Set Architecture) della generazione Sea Islands: offre cioè nuovi meccanismi di accesso alla memoria unificata tra CPU/GPU, code aggiuntive ed un maggiore parallelismo tra le compute pipeline rispetto alle GPU della serie Southern Islands.

Di seguito riportiamo il primo documento riguardante l'ISA per l'architettura Sea Islands (indicata con l'acronimo C.I) che evidenzia le differenze rispetto a Southern Islands (S.I):

Important differences between S.I. and C.I. GPUs

•Multi queue compute
Lets multiple user-level queues of compute workloads be bound to the device and processed simultaneous. Hardware supports up to eight compute pipelines with up to eight queues bound to each pipeline.
•System unified addressing
Allows GPU access to process coherent address space.
•Device unified addressing
Lets a kernel view LDS and video memory as a single addressable memory. It also adds shader instructions, which provide access to “flat” memory space.
•Memory address watch
Lets a shader determine if a region of memory has been accessed.
•Conditional debug
Adds the ability to execute or skip a section of code based on state bits under control of debugger software. This feature adds two bits of state to each wavefront; these bits are initialized by the state register values set by the debugger, and they can be used in conditional branch instructions to skip or execute debug-only code in the kernel.
•Support for unaligned memory accesses
•Detection and reporting of violations in memory accesses

Summary of kernel instruction change from S.I. to C.I.


New instruction formats:

•FLAT

New instructions:

•FLAT_* (entire family of operations)
•S_CBRANCH_CDBGUSER
•S_CBRANCH_CDBGSYS
•S_CBRANCH_CDBGSYS_OR_USER
•S_CBRANCH_CDBGSYS_AND_USER
•S_DCACHE_INV_VOL
•V_TRUNC_F64
•V_CEIL_F64
•V_FLOOR_F64
•V_RNDNE_F64

AMD SEA ISLANDS SE R IES TECHNOLOGY
xiv Preface
Copyright © 2013 Advanced Micro Devices, Inc. All rights reserved.
•V_QSAD_PK_U16_U8
•V_MQSAD_U16_U8
•V_MQSAD_U32_U8
•V_MAD_U64_U32
•V_MAD_I64_I32
•V_EXP_LEGACY_F32
•V_LOG_LEGACY_F32
•DS_NOP
•DS_GWS_SEMA_RELEASE_ALL
•DS_WRAP_RTN_B32
•DS_CNDXCHG32_RTN_B64
•DS_WRITE_B96
•DS_WRITE_B128
•DS_CONDXCHG32_RTN_B128
•DS_READ_B96
•DS_READ_B128
•BUFFER_LOAD_DWORDX3
•BUFFER_STORE_DWORDX3

Removed instructions:
•V_QSAD_U8
•V_MQSAD_U8
•BUFFER_ATOMIC_RSUB, _X2
•IMAGE_ATOMIC_RSUB, _X2