HSA sull'APU Kaveri
Ritorniamo al concetto d'integrazione. Se eseguita correttamente l'integrazione dovrebbe permettere di aumentare l'efficienza. I sottosistemi vicini tra loro possono infatti comunicare più rapidamente e risparmiare energia.
Quando AMD introdusse l'APU Llano, l'azienda inserì quattro core Stars, un northbridge, due canali di memoria a 64-bit, il controller PCIe e una GPU in un unico die. Inoltre fornì alla GPU un Fusion Control Link a 128 bit per accedere al "coherent memory space", dando simultaneamente accesso alla CPU al frame buffer della GPU. Separatamente, un altro bus dava alla GPU un accesso alla memoria con un bandwidth maggiore.
L'avvento di Trinity (e poi Richland) spinse ulteriormente sull'integrazione. Il progetto unificava i northbridge di CPU e GPU, raddoppiando allo stesso tempo il bandwidth data path del Radeon Memory Bus. AMD aggiunse un'unità di gestione della memoria di I/O, collegata tramite il Fusion Control Link che ha dava alla GPU accesso al "virtual address space". La strada verso HSA era stata spianata.
Kaveri integra un secondo bus attraverso l'IOMMU per la coerenza. Espone inoltre una funzionalità chiamata "system-level atomics" per sincronizzare il lavoro tra differenti core. Insieme queste funzioni completano il puzzle e danno forma a un trio di funzioni HSA.
Una "heterogeneous unified memory architecture", per iniziare, dà alla CPU e alla GPU visibilità all'intero spazio di memoria, fino a 32 GB. Inoltre, CPU e GPU sono trattate in modo paritario dall'heterogeneous queuing model di AMD. Ne conseguente che il carico di lavoro può essere inviato a un'unità o all'altra e viceversa. Il risultato è che le risorse on-die della APU possono affrontare più carichi di lavoro intensivi.
Clicca per ingrandire |
Clicca per ingrandire |
AMD ha identificato una manciata di operazioni che beneficeranno del maggior potenziale di calcolo. La riproduzione multimediale è la prima. La codifica H.265 può essere davvero esigente. AMD scarica il lavoro di codifica/decodifica sulla GPU, dato che non ha realizzato un acceleratore a funzione fissa. Sfortunatamente il software richiesto è ancora in sviluppo, quindi al momento non possiamo confrontare la riproduzione HEVC di CPU e GPU. Anche l'editing video e d'immagini è un settore chiave. Photoshop, Premiere Pro e After Effects sono ottimizzati per l'OpenCL, quindi già sfruttano le GPU e lo stesso avviene con Kaveri. Infine non bisogna dimenticare il gaming: ad esempio DICE usa il compute shader per il tile-based deferred rendering in Battlefield 4.