Ho trascorso gli ultimi giorni a lavorare con tensorflow per la prima volta come parte di un incarico di elaborazione del linguaggio naturale per la mia laurea. È stato interessante (il divertimento non è la parola giusta) cercando di farlo funzionare su una GPU ma mi ha fatto pensare.
I recenti progressi nell'apprendimento approfondito si sono manifestati con il maturare delle tecnologie GPGPU e sono arrivati i framework per rendere molto più veloce e più facile l'enorme quantità di algebra lineare sul tuo computer. Nvidia ora vende chip progettati specificamente per questo compito e da ciò che capisco, documenti come quello con AlexNet non sarebbe stato possibile senza l'accelerazione GPU. Questo punto è ben articolato dagli autori:
All of our experiments suggest that our results can be improved simply by waiting for faster GPUs and bigger datasets to become available.
Dato questo, la mia domanda è allora perché non abbiamo visto più adozione di GPU per le attività HPC tradizionali (simulazione, rendering, ecc.)? Questi carichi di lavoro sono in circolazione da anni, ma sembra che solo di recente GPGPU sia decollato come approccio. Mi sembra che i requisiti siano abbastanza simili, ovvero 'leggi un carico di dati, esegui un carico di trasformazioni in virgola mobile sui dati, salva alcuni dati, ripeti' ma un'occhiata a TOP500 rivela che molti dei sistemi in uso stanno ancora utilizzando CPU (sebbene un numero crescente utilizzi processori "manycore" come Intel Phi che sembrano scavalcare la divisione CPU / GPU).
Esistono in realtà meno somiglianze tra i tradizionali carichi di lavoro HPC e ML su larga scala di quanto immagino? Forse è che le GPU sono meno efficienti in termini di flop / w che è ciò che conta davvero quando si tratta di gestire un enorme cluster di elaborazione? Si tratta solo di uno sforzo di marketing molto efficace di Nvidia nello spazio di apprendimento automatico?