2015-09-06 8 views
8

Ich bin ein Student in KI, die viel mit Pylearn und Theano arbeiten wird (ich könnte auch Fackel und Caffe versuchen) in diesem Jahr für die Implementierung von Neuronalen Netzen, und ich bin etwa einen Laptop für diese Angelegenheit zu kaufen. Ich würde gerne Ihre Hilfe aufgrund Ihrer Erfahrung für die Angelegenheit haben.CPU vs GPU für (Conv) Neuronale Netze Berechnung

Ich habe kein großes Budget, also kann ich mir nicht viel leisten. Ich habe zwei oder drei einfache Fragen:

Welche ist am besten für Bibliotheken unterstützt wird wie Theano, Taschenlampe, caffe: ATI oder NVIDIA? Hat jemand versucht, GPU-Computing auf Geforce 740M 820M 840M etwas ähnliches? und ist es besser als CPUs? oder wenn ich mir eine riesige GPU nicht leisten kann, ist es besser, einen Laptop mit einem guten i7 anstelle dieser (billigen) Karten zu kaufen?

Vielen Dank für Ihre Zeit,

+3

Wenn Sie auf einem Laptop bestehen, dann erhalten Sie einen billigen und Amazon-Spot-Instanzen für Ihre Berechnungen verwenden. Eine kleine Laptop-GPU bringt Sie nicht sehr weit in tiefes Lernen. – aleju

+0

Ja, ich denke, das ist eine gute Schlussfolgerung. Ich könnte eine Desktop-Workstation und SSH dazu bauen. – Sam

Antwort

15

Also nach dem Lesen Ihrer Antworten und einige Blog-Beiträge, ist meine Schlussfolgerung: Versuchen Sie nicht, einen Laptop zu Ihrem Hauptarbeitsplatz für Deep Learning zu machen! Es ist einfach zu teuer: Sie werden nur Tausende von $ für eine Laptop-Konfiguration ausgeben, die Hunderte für einen Desktop kosten könnte. Und die weniger teure ist es nicht wert.

Ich denke, ich werde einen 13" Laptop kaufen und beginnen einen starken Desktop bauen, dann würde ich eine SSH-Zugriff auf sie machen.

Diese beiden Verbindungen sind für ein gutes Verständnis auf GPU mit Wahl.

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

Vielen Dank!

+0

Hey Mann, ich hatte ein paar Fragen zum Training tiefer neuronaler Netze? – hashcode55

3

Was Ihre erste Frage, ich weiß nicht, über diese Bibliotheken für NN implementieren. Aber wenn Sie etwas wie octave/Matlab verwenden, haben beide Bibliotheken für NN, die CUDA für das Training von NNs verwenden. GPU vs. CPU .... Die Implementierungen von NN und maschinelles Lernen im Allgemeinen basieren stark auf Vektoren/Matrizen und Matrixoperationen wie Multiplikation/Addition ... usw. Wenn es um Matrix-Operationen geht, müssen Sie nicht lange überlegen: Sie entscheiden sich immer für Grafikprozessoren. Matrixoperation sind Einzelbefehl-Mehrfachdatenoperationen, die stark von den GPUs Gebrauch machen. Im Grunde ist es die gleiche Operation (die normalerweise eine einfache ist), die auf großen Datenmengen unabhängig ausgeführt wird. Sie benötigen keine sehr fortgeschrittene GPU. Ich benutzte 320GTX auf meinem alten Macbook und es war gut genug (ich gehe davon aus, dass Sie ein Student sind und entweder einen Proof of Concept oder akademische Projekte implementieren und kein industrielles Projekt).

+0

Vielen Dank für Ihre Antwort Mostafa. Problem ist, von dem, was ich hier lese https://timdettmers.wordpress.com/2014/08/14/which-gpu-for-deep-learning/ Eines der wichtigsten Features ist gb/s Bandbreite. Und die "m-Serie" ist sehr niedrig, sogar niedriger als die GT 320 – Sam

+1

natürlich ist die Bandbreite sehr wichtig. Der Grund dafür ist, dass, selbst wenn Sie Ihre Berechnungen auf der GPU parallelisieren können, um maximalen Durchsatz zu erreichen, dies nicht von Bedeutung ist, wenn Sie diese Ergebnisse nicht von der GPU zurückübertragen können (sollten Sie wissen, wie die Datenübertragung zwischen dem Host und der das Gerät, wenn Sie über CUDA-Programmierung wissen). Aber das ist wiederum irrelevant von dem, was ich gesagt habe. Grundsätzlich hängen die meisten der Lernalgorithmen von Matrixoperationen ab, und aufgrund der Datenunabhängigkeit der Operationen auf den Matrizen wird es im Allgemeinen auf einer GPU besser sein als auf einer CPU. – mkmostafa

0

Maschine lea Die Operationen werden in der Regel auf Matrix-Matrix-Multiplikationen reduziert. Momentan sind Matrix-Matrix-Multiplikationen auf GPUs sehr effizient als CPUs, da GPUs viel mehr Threads als CPUs haben. Darüber hinaus unterstützt NVIDIA seit vielen Jahren CUDA-Toolkits. Die Plattform ist jetzt gereift. Viele DL-Bibliotheken (z. B. Caffe, Theano, Torch, TensorFlow) nutzen die CUDA-Unterstützungen für BLAS- (grundlegende lineare Algebra-Subroutinen) und DNN-Bibliotheken (tiefe neurale Netzwerke). Entwickler von Deep-Learning-Bibliotheken müssen keine wesentlichen Zeiten für die Optimierung von Matrix-Matrix-Multiplikationen aufwenden.

Darüber hinaus scheint es, dass die Optimierung von CPUs Code für die gleiche Ebene von GPUs in bestimmten Operationen (Matrix-Matrix-Operationen) ist ziemlich schwer (was wir ninja Optimierungen genannt). Für eine bessere Einschätzung dessen, was andere erfahren haben, lesen Sie bitte die Diskussionen unter https://github.com/BVLC/caffe/pull/439.