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 确实是数学表达式编译器,它将符号数学表达式转换为高度优化的 C/CUDA 代码,针对 CPU 和 GPU。它生成的代码通常比大多数程序员编写的代码要高效得多。Theano 还可以进行符号微分(对于基于梯度的优化非常有用),并且还具有实现更好数值稳定性的功能(这可能是有用的东西,尽管我不知道真实程度如何)。Theano 很可能足以满足您的需求。如果您仍然决定学习 CUDA 或 PyCUDA,请选择基于您将使用的语言(C++ 或 Python)的一种。

于 2014-09-18T02:37:08.770 回答