Dallo scorso decennio, abbiamo visto le GPU entrare in scena più frequentemente in campi come l’HPC (High-Performance Computing) e il campo più popolare, cioè il gioco. Le GPU sono migliorate anno dopo anno e ora sono in grado di fare alcune cose incredibilmente grandi, ma negli ultimi anni, stanno catturando ancora più attenzione a causa del deep learning.
Come i modelli di deep learning spendono una grande quantità di tempo in formazione, anche le potenti CPU non erano abbastanza efficienti per gestire così tanti calcoli in un dato momento e questa è l’area in cui le GPU hanno semplicemente superato le CPU grazie al loro parallelismo. Ma prima di tuffarci in profondità, cerchiamo di capire alcune cose sulla GPU.
Una GPU o ‘Graphics Processing Unit’ è una versione mini di un intero computer ma dedicata solo a un compito specifico. È diverso da una CPU che svolge più compiti allo stesso tempo. La GPU è dotata di un proprio processore che è incorporato sulla propria scheda madre accoppiato con v-ram o video ram, e anche un design termico adeguato per la ventilazione e il raffreddamento.
Nel termine ‘Graphics Processing Unit’, ‘Graphics’ si riferisce al rendering di un’immagine su coordinate specifiche in uno spazio 2d o 3d. Una viewport o viewpoint è la prospettiva dello spettatore che guarda un oggetto, a seconda del tipo di proiezione usata. Rasterizzazione e Ray-tracing sono alcuni dei modi di rendere le scene 3d, entrambi questi concetti sono basati su un tipo di proiezione chiamata proiezione prospettica. Cos’è la proiezione prospettica?
In breve, è il modo in cui un’immagine è formata su un piano di vista o tela dove le linee parallele convergono verso un punto convergente chiamato “centro di proiezione”, inoltre come l’oggetto si allontana dal punto di vista sembra essere più piccolo, esattamente come i nostri occhi ritraggono nel mondo reale e questo aiuta nella comprensione della profondità in un’immagine, questa è la ragione per cui produce immagini realistiche.
Inoltre le GPU elaborano anche geometrie complesse, vettori, fonti di luce o illuminazioni, texture, forme, ecc. Poiché ora abbiamo un’idea di base sulla GPU, cerchiamo di capire perché è pesantemente utilizzata per l’apprendimento profondo.
Perché le GPU sono migliori per l’apprendimento profondo?
Una delle caratteristiche più ammirate di una GPU è la capacità di calcolare processi in parallelo. Questo è il punto in cui entra in gioco il concetto di calcolo parallelo. Una CPU in generale completa il suo compito in modo sequenziale. Una CPU può essere divisa in core e ogni core svolge un compito alla volta. Supponiamo che una CPU abbia 2 core. Allora due processi di compiti diversi possono essere eseguiti su questi due core ottenendo così il multitasking.
Ma ancora, questi processi vengono eseguiti in modo seriale.
Questo non significa che le CPU non siano abbastanza buone. Infatti, le CPU sono davvero brave a gestire diversi compiti relativi a diverse operazioni come gestire sistemi operativi, gestire fogli di calcolo, riprodurre video HD, estrarre grandi file zip, tutto allo stesso tempo. Queste sono alcune cose che una GPU semplicemente non può fare.