让Theano使用GPU

7
我在使用Theano时遇到了一些问题,想请你们帮忙解决一下。主要是涉及到与我的显卡配合使用的问题。
之前我曾经使用过CUDA,并且已经按照Nvidia Nsight运行所需的正确安装过了。但现在我想在PyDev中使用它,在遵循教程的“使用GPU”部分时遇到了几个问题,具体内容请访问http://deeplearning.net/software/theano/install.html#gpu-linux
首先,最基本的问题是如何设置环境变量。教程上说我应该“定义$ CUDA_ROOT环境变量”。有好几个来源建议在我的主目录下新建一个“.pam_environment”文件,我已经这样做了并写入以下内容:
CUDA_ROOT = /usr/local/cuda-5.5/bin
LD_LIBRARY_PATH = /usr/local/cuda-5.5/lib64/lib

很抱歉,如果这是一个基本问题,我不确定是否需要这样写。如果我能得到确认这确实是正确的地方,那将会很有帮助。

第二个问题在教程的以下部分。它说要“更改设备选项以命名计算机中的GPU设备”。显然,这与THEANO_FLAGS和.theanorc有关,但我无法找到它们是什么:它们是文件吗?如果是,我该在哪里找到它们?教程似乎假定了我没有的一些知识!

感谢您抽出时间阅读此内容:非常感谢任何和所有答案 - 我目前完全陷入困境!

2个回答

11

在Linux/OSX上:

编辑或创建文件~/.theanorc。该文件应包含以下内容:

[global]
floatX = float32
device = gpu0

[nvcc]
fastmath = True

[cuda]
root=/usr/local/cuda-5.5/  
# On a mac, this will probably be /Developer/NVIDIA/CUDA-5.5/

你需要将cuda添加到 $LD_LIBRARY_PATH 变量中。如果你在运行eclipse,你可以进入 项目属性 > 解释器 > 配置解释器... > 环境, 然后添加一个指向cuda库文件夹(可能是 /Developer/NVIDIA/CUDA-5.5/lib64)的 LD_LIBRARY_PATH 变量。

现在当你导入theano时,它应该会打印一条关于找到gpu的消息。你可以在 http://deeplearning.net/software/theano/tutorial/using_gpu.html 上运行测试代码来查看是否正在使用gpu。


1

THEANO_FLAGS 是一个环境变量,而 .theanorc 则是一个配置文件。你可以使用这两个机制来配置 Theano。有关详细信息,请参见 此处

我之前从未听说过 .pam_environment 文件。此外,您不应该只覆盖 LD_LIBRARY_PATH 的值,而应该像这样追加/前置到它的值:

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-5.5/lib64/lib

对于Theano,如果您定义了CUDA_ROOT,则无需修改LD_LIBRARY_PATH,因此我会将最后一行删除。
通常,如果您的shell是bash,人们会像这样在.bashrc文件中定义CUDA_ROOT环境变量:
export CUDA_ROOT=/usr/local/cuda-5.5/bin

.bashrc 的更改只有在您注销并再次登录后才会生效。

您无需注销即可使更改生效。只需运行 source ~/.bashrc 即可。 - vwvolodya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接