2015-09-06 17 views
8

Sono uno studente di intelligenza artificiale che lavorerà molto con Pylearn e Theano (potrei anche provare torcia e caffè) quest'anno per implementare reti neurali e sono per comprare un laptop per questa materia. Mi piacerebbe avere il vostro aiuto in base alla vostra esperienza in merito.CPU vs GPU per (conv) Calcolo delle reti neurali

Non ho un grosso budget quindi non posso permettermi molto. Ho due o tre semplici domande:

che è supportato migliore per le biblioteche, come Theano, torcia, caffe: ATI o NVIDIA? Qualcuno ha provato GPU computing su Geforce 740M 820M 840M qualcosa del genere? ed è meglio delle CPU? o se non posso permettermi un'enorme GPU, è meglio acquistare un portatile con un buon i7 invece di queste (economiche) carte?

Grazie per il vostro tempo,

+3

Se insisti su un laptop, prendine uno economico e usa le istanze di Amazon per i tuoi calcoli. Una piccola gpu per laptop non ti porterà molto lontano nell'apprendimento profondo. – aleju

+0

Sì, penso che sia una buona conclusione. Potrei costruire una workstation desktop e SSH. – Sam

risposta

15

Quindi dopo aver letto le tue risposte e alcuni post del blog, la mia conclusione è: Non provare a rendere un laptop la tua workstation principale per l'apprendimento approfondito! È semplicemente troppo costoso: spenderai solo migliaia di $ per una configurazione portatile che potrebbe costare centinaia per un desktop. E lo meno costoso non ne vale la pena.

Penso che ho intenzione di comprare un computer portatile 13" e iniziare a costruire un forte desktop, quindi mi piacerebbe fare un accesso SSH ad esso.

Questi due collegamenti sono grandi per avere una buona comprensione su GPU scelta.

http://timdettmers.com/2017/04/09/which-gpu-for-deep-learning/

https://www.linkedin.com/pulse/20141013042457-89310056-which-gpu-to-use-for-deep-learning

Grazie a tutti!

+0

Ehi amico, ho avuto qualche domanda sull'allenamento di reti neurali profonde? – hashcode55

3

Per quanto riguarda la prima domanda, non so su queste librerie per l'attuazione NN. Ma se hai usato qualcosa come ottava/Matlab, entrambi hanno librerie per NN che fanno uso di CUDA per addestrare gli NN. GPU vs CPU .... Le implementazioni di NN e machine learning in generale sono fortemente basate su vettori/matrici e operazioni con matrici come moltiplicazione/aggiunta..etc. Quando si tratta di operazioni con le matrici, non ci si pensa due volte, si sceglie sempre le GPU. Le operazioni a matrice sono operazioni a dati multipli a singola istruzione che utilizzano pesantemente le GPU. Fondamentalmente, è la stessa operazione (che di solito è una semplice) eseguita su enormi quantità di dati indipendentemente. Non hai bisogno di una GPU molto avanzata. Ho usato 320GTX sul mio vecchio macbook ed è stato abbastanza buono (presumo che tu sia uno studente e implementerai sia una bozza di concetto o progetti accademici che non un progetto a livello di settore).

+0

Grazie per la tua risposta Mostafa. Il problema è, da quello che ho letto qui https://timdettmers.wordpress.com/2014/08/14/which-gpu-for-deep-learning/ Una delle caratteristiche più importanti è la larghezza di banda gb/s. E la "serie m" è molto bassa, anche inferiore alla 320 – Sam

+1

gt, ovviamente la larghezza di banda è molto importante. Il motivo è che, anche se puoi parallelizzare i tuoi calcoli sulla gpu per ottenere il massimo throughput, non importa se non puoi trasferire questi risultati dalla gpu (dovresti capire come viene gestito il trasferimento dei dati tra l'host e il dispositivo se si conosce la programmazione CUDA). ma ancora una volta è irrilevante da ciò che ho detto, in sostanza, la maggior parte degli algoritmi di apprendimento che ho sentito dipendono dalle operazioni di matrice e, a causa dell'indipendenza dei dati delle operazioni sulle matrici, generalmente sarà migliore su una GPU rispetto a una CPU. – mkmostafa

0

macchina lea le operazioni in corso sono generalmente ridotte a moltiplicazioni matrice-matrice. Attualmente, le moltiplicazioni matrice-matrice sono molto efficienti sulle GPU rispetto alle CPU perché le GPU hanno molti più thread rispetto alle CPU. Inoltre, NVIDIA ha supportato il toolkit CUDA per un certo numero di anni. La piattaforma è ora matura. Molte librerie DL (ad es., Caffe, Theano, Torch, TensorFlow) stanno sfruttando i supporti CUDA per le librerie BLAS (subroutine di algebra lineare di base) e DNN (reti neurali profonde). Gli sviluppatori di librerie di deep learning non dovranno dedicare tempi significativi per ottimizzare le moltiplicazioni matrice-matrice.

Inoltre, sembra che l'ottimizzazione del codice CPU per lo stesso livello di GPU in determinate operazioni (operazioni matrice-matrice) sia piuttosto difficile (quelle che abbiamo chiamato ottimizzazioni ninja). Per apprezzare meglio ciò che hanno sperimentato gli altri, consulta le discussioni allo https://github.com/BVLC/caffe/pull/439.