pycuda gegen theano vs pylearn2

8

Ich lerne gerade mit GPU programmieren, um die Leistung von maschinellen Lernalgorithmen zu verbessern. Anfangs versuche ich, cuda mit reinem c zu programmieren, dann habe ich pycuda gefunden, was für mich ein Wrapper der Cuda-Bibliothek ist, und dann habe ich theano und pylearn2 gefunden und bin ein wenig verwirrt:

Ich verstehe sie auf diese Weise:

  1. pycuda: Python-Wrapper für die Cuda-Bibliothek
  2. theano: ähnlich wie numpy, aber transparent für GPU und CPU
  3. pylearn2: Deep-Learning-Paket, das auf theano aufbaut und mehrere maschinelle Lern- / Deep-Learning-Modelle implementiert hat

Da ich neu in der GPU-Programmierung bin, sollte ich anfangen, von der C / C ++ - Implementierung zu lernen oder von pycuda zu starten, reicht es aus, von theano aus zu starten? Z.B. Ich würde gerne RandomForest-Modell nach dem Lernen der GPU-Programmierung implementieren.Danke.

    
user1754197 17.09.2014, 19:51
quelle

1 Antwort

8

Ihr Verständnis ist fast richtig. Ich möchte nur einige Bemerkungen über Theano hinzufügen. Es ist viel mehr als ein Numpy, der auf der GPU laufen kann. Theano ist in der Tat ein mathematischer Ausdruckcompiler, der symbolische mathematische Ausdrücke in hochoptimiertem C / CUDA-Code übersetzt, der sowohl für CPU als auch für GPU gedacht ist. Der Code, den er erzeugt, ist oft viel effizienter als der, den die meisten Programmierer schreiben würden. Theano kann auch eine symbolische Unterscheidung treffen (sehr nützlich für gradientenbasierte Optimierung) und hat auch eine Funktion, um eine bessere numerische Stabilität zu erreichen (was wahrscheinlich etwas Nützliches ist, obwohl ich nicht weiß, in welchem ​​Ausmaß). Es ist sehr wahrscheinlich, dass Theano ausreicht, um das zu implementieren, was Sie brauchen. Wenn Sie sich immer noch entscheiden, CUDA oder PyCUDA zu lernen, wählen Sie die Sprache, die Sie verwenden, C ++ oder Python.

    
Saul Berardo 18.09.2014, 02:37
quelle

Tags und Links