8

私は現在、機械学習アルゴリズムのパフォーマンスを向上させるために、GPU を使用したプログラミングを学習しています。最初に、純粋な c で cuda のプログラミングを学ぼうとしましたが、pycuda を見つけました。これは、cuda ライブラリのラッパーであり、theano と pylearn2 を見つけて少し混乱しました。

私はそれらを次のように理解しています。

  1. pycuda: cuda ライブラリの python ラッパー
  2. theano: numpy に似ていますが、GPU と CPU に対して透過的です
  3. pylearn2: theano 上に構築され、いくつかの機械学習/深層学習モデルを実装した深層学習パッケージ

私は GPU プログラミングに慣れていないので、C/C++ 実装から学習を開始する必要がありますか、それとも pycuda から開始するか、theano から開始しても十分ですか? たとえば、GPU プログラミングを学習した後、randomForest モデルを実装したいと考えています。よろしくお願いします。

4

1 に答える 1

8

あなたの理解はほぼ正しいです。Theano についてのコメントをいくつか追加します。これは、GPU 上で実行できる Numpy をはるかに超えています。Theano は確かに、CPU と GPU の両方を対象とした、高度に最適化された C/CUDA コードでシンボリックな数式を変換する数式コンパイラです。多くの場合、生成されるコードは、ほとんどのプログラマーが作成するコードよりもはるかに効率的です。Theano はまた、シンボリック微分を行うことができ (勾配ベースの最適化に非常に役立ちます)、より優れた数値安定性を実現する機能も備えています (実際にどの程度かはわかりませんが、これはおそらく役立つものです)。必要なものを実装するには、Theano で十分である可能性が非常に高いです。それでも CUDA または PyCUDA を学習する場合は、使用する言語に基づいて C++ または Python を選択してください。

于 2014-09-18T02:37:08.770 に答える