Ubuntu Theano+GPU环境搭建
2016-07-28 12:01
344 查看
一.安装好系统后【最好安装ubuntu 14.04.×,否则还得升级。。】:1.设置root 用户:sudo passwd root 设置密码 登陆 su root2.更新一下:sudo apt-get update【可选】3.安装各种python库(gfortran, numpy, scipy, sklearn, blas, atlas等)详见:http://www.th7.cn/system/lin/201508/123570.shtml
su
do apt-get install gfortran
sudo apt-get install libopenblas-dev
sudo apt-get install liblapack-dev
sudo apt-get install libatlas-base-dev
sudo apt-get install python-pip
sudo apt-get install python-dev
sudo apt-get install python-nose
#安装numpy和scipy sudo apt-get install python-numpy sudo apt-get install python-scipy sudo apt-get install python-sklearn #卸载numpy和scipy sudo apt-get remove python-numpy sudo apt-get remove python-scipy #再次安装numpy scipy
sudo pip install numpy
sudo pip install scipy
#测试numpy scipy
python -c "import numpy;numpy.test()"python -c "import scipy;scipy.test()"
4. 安装Theano
sudo pip install Theano
#测试Theanopython -c "import theano;theano.test()" 【若测试有问题很可能numpy scipy 这两库没装好
】5.安装CUDA [详见:http://www.myexception.cn/cuda/2017261.html]#下载对应ubuntu版本的CUDA:https://developer.nvidia.com/cuda-toolkit-55-archive 【注意:CUDA5.5只支持GCC4.6版本】#安装一些依赖库:
sudo apt-get install freeglut3-dev build-essential libx11-dev libxmu-dev libxi-dev libgl1-mesa-glx libglu1-mesa libglu1-mesa-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libGLU.so.1.3.1 /usr/lib/libGLU.so#安装run文件:-关闭图形环境,$sudo stop lightdm,按Ctrl+Alt+F1,打开一个终端-进入下载的Ubuntu nvidia驱动安装文件所在目录,sudo sh ./cuda_5.5.22_linux_32.run命令进行安装 [可先不安装driver(可让系统安装),example 先安装tooltik]-重新启动 -进入系统后:使用软件更新中的功能装NVIDA的驱动【如果没有装的话】 #查看nvcc 版本:nvcc -V6.配置theano为GPU模式 (注意,提前应先进入 root用户,因为前面是用root用户安装好的CUDA)
#设置环境变量
echo 'export PATH=/usr/local/cuda-7.5/bin:$PATH' >> ~/.bashrcecho 'export LD_LIBRARY_PATH=/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH' >> ~/.bashrcsource ~/.bashrc#验证:终端输入 nvcc -V#新建配置文件
sudo vi ~/.theanorc添加:(注意不要写在一行,要么不识别)[/code]
[global]device = gpufloatX = float32[nvcc]fastmath = True[cuda]root=/usr/local/cuda/bin/#测试(首先将下面的测试代码复制到文本中,命名为test_cpu_gpu.py)
from theano import function, config, shared, sandboximport theano.tensor as Timport numpyimport timevlen = 10 * 30 * 768 # 10 x #cores x # threads per coreiters = 1000rng = numpy.random.RandomState(22)x = shared(numpy.asarray(rng.rand(vlen), config.floatX))f = function([], T.exp(x))print(f.maker.fgraph.toposort())t0 = time.time()for i in xrange(iters):r = f()t1 = time.time()print("Looping %d times took %f seconds" % (iters, t1 - t0))print("Result is %s" % (r,))if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):print('Used the cpu')else:print('Used the gpu')# python test_cpu_gpu.py 输出有GPU则为成功7. 安装cudnn加速包 #下载:https://developer.nvidia.com/rdp/cudnn-download 【对应你的cuda toolkit 版本选择】#安装:
tar xvzf cudnn-7.5-linux-x64-v5.0-ga.tgzsudo cp cuda/include/cudnn.h /usr/local/cuda/includesudo cp -a cuda/lib64/libcudnn* /usr/local/cuda/lib64sudo chmod a+r /usr/local/cuda/lib64/libcudnn*#测试运行 python test_cpu_gpu.py 提示 CNMEM is disabled, cuDNN 5005 成功
8.安装CNMeM(占用更多的显存提升速度) # 下载:git clone https://github.com/NVIDIA/cnmem.git cnmem# 编译: cd cnmemmkdir buildcd buildcmake ..make#安装:sudo cp ../include/cnmem.h /usr/local/cuda/includesudo cp *.so /usr/local/cuda/lib64/#使用:THEANO_FLAGS="mode=FAST_RUN,device=gpu,lib.cnmem=0.8,optimizer_including=cudnn" pyhton test_cpu_gpu.py[note:lib.cnmem=0.8 指使用80%的显存跑这个数据]9.附加#系统备份:tar -cvpzf /media/00021448000D62F3/ubuntu/system/backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys --exclude=/media /
#系统还原: tar -xvpzf /media/00021448000D62F3/ubuntu/system/backup.tgz -C /【其中黑色为备份目录】 #系统修复:不能正常启动时:ctrl+alt+F1-6 启动tty命令行 F7为桌面模式 测试桌面:sudo apt-get install unity or 更新:sudo apt-get update
相关文章推荐
- 安装seesaw
- MessageBox
- AngularJS中的包含详细介绍及实现示例
- Activity传值和接收
- MTP in Android详解
- 使用异步 I/O 大大提高应用程序的性能
- JNI 线程问题记录
- [leetcode] 234. Palindrome Linked List
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
- 腾讯云的cos云存储解决小网站带宽
- python命名中下划线的含义
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
- docker4dotnet #3 在macOS上使用Visual Studio Code和Docker开发asp.net core和mysql应用
- 黑马程序员:C++学科推出全新三大实战项目
- 【HDU】1133 - Buy the Ticket(BigDecimal & 组合数学 & 递推)
- 整合DataTables到JavaWeb(SSH)实例总结分析
- 如何合理释放磁盘空间
- mac 终端 常用命令
- Cpp环境【POJ3622】【Vijos2990】【Usaco2007】挑剔的美食家
- ubuntu_14.04_LTS使用NDK编译FFMPEG_2.7.2