大学社团做网站,专注成都网站建设及推广,wordpress页面构建编辑插件,百度小说官网备注#xff1a;之前服务器上已经安装caffe#xff0c;后安装Theano#xff0c;所有有些步骤简略。 安装caffe详情见 Caffe Ubuntu 15.04 CUDA 7.5 在服务器上安装配置及卸载重新安装#xff08;已测试可执行#xff09; 安装所需的安装包见 链接: http://pan.baid…
备注之前服务器上已经安装caffe后安装Theano所有有些步骤简略。 安装caffe详情见 Caffe Ubuntu 15.04 CUDA 7.5 在服务器上安装配置及卸载重新安装已测试可执行 安装所需的安装包见 链接: http://pan.baidu.com/s/1jIRJ6mU 提取密码xehi
Theano官方网站 http://deeplearning.net/software/theano/# BLASBasic Linear Algebra Subprograms是基础线性代数子程序库里面拥有大量已经编写好的关于线性代数运算的程序;
LAPACK Linear Algebra PACKage包含了求解科学与工程计算中最常见的数值线性代数问题如求解线性方程组、线性最小二乘问题、特征值问题和奇异值问题等;
ATLAS是python下的一个线性代数库是基于另外两个线性代数库BLAS和lapack的
NumPy提供了一个在python中做科学计算的基础库它重在数值计算甚至可以说是用于多维数组处理的库
SciPy是基于numpy提供了一个在python中做科学计算的工具集也就是说它是更上一个层次的库
Theano则是基于NumPy以及SciPy的一个更高级的用于科学计算的库。要安装Theano就需要先安装好numpy和scipy
要安装numpy和scipy就需要ATLAS
要安装ATLAS就需要安装BLAS和LAPACK;相关库的安装顺序
安装顺序BLAS → LAPACK → ATLAS → numpy → scipy → Theano第1步安装cuda若已经安装可进入第2步
sudo dpkg -i cuda-repo-ubuntu1504-7-5-local_7.5-18_amd64.deb
sudo apt-get update
sudo apt-get install -y cuda
但此时查询cuda会出现问题
nvcc -V
问题是
The program nvcc is currently not installed. You can install it by typing:
sudo apt-get install nvidia-cuda-toolkit
但是我们已经安装了cuda在 /usr/local 能够看到文件夹 cuda-7.5。 这需要如下设置
执行sudo gedit ~/.bashrc在最后面64位的话粘贴以下内容
export PATH/usr/local/cuda-7.5/bin:$PATH
export LD_LIBRARY_PATH/usr/local/cuda-7.5/lib64:$LD_LIBRARY_PATH接着执行 source ~/.bashrc 使其立即生效 下面查询
nvcc -V
可见如下结果
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2015 NVIDIA Corporation
Built on Tue_Aug_11_14:27:32_CDT_2015
Cuda compilation tools, release 7.5, V7.5.17
第2步配置cuda 执行
nvidia-settings
会弹出显卡配置的界面至少7个大项其中有一项叫GPU-0(Quadro K5200)和GPU-1(Tesla K40c)如果能看到自己的显卡的话应该就算安装成功了。下面进行配置。 使用自带的samples进行GPU运算测试。进入到cuda-7.5的samples目录一般都是cd /usr/local/cuda-7.5/samples然后会有一个Makefile文件执行命令
sudo make
不出意外地话会出现带有红颜色的error错误大概是这样的unsupported GNU version! gcc versions later than 4.9 are not supported! 意思也很明显了就是gcc的版本高于4.9Cuda不支持。 解释一下ubuntu15.04自带的gcc是4.9.2可以通过
gcc --version
查看但是cuda不支持超过4.9.2的gcc编译器。要么安装一个低版本的编译器要么把cuda的这个限制给去掉。 方法1降级安装gcc/g版本为4.7.x (a). 下载gcc/g 4.7.x
sudo apt-get install -y gcc-4.7
sudo apt-get install -y g-4.7
(b). 链接gcc/g实现降级
cd /usr/bin
sudo rm gcc
sudo ln -s gcc-4.7 gcc
sudo rm g
sudo ln -s g-4.7 g
方法2 去掉 cuda的限制
sudo cd /usr/local/cuda/include/ #进入到头文件目录cuda(而不是cuda-7.5)
sudo cp host_config.h host_config.h.bak #备份原头文件
sudo gedit host_config.h #编辑头文件
ctrlF查找4.9出现的地方大约位于115行在第113行处应该显示if GNUC4 || (GNUC 4 GNUC_MINOR 9)因为我们的是4.9.2因此把上面的2个4都改成5就ok了保存退出。
备注Matlab 2014a2015a的版本是4.7.x所以在使用matla调用mex文件的时候基本上都会报错。综上所述建议使用方法1来修改。 接着进行编译
cd /usr/local/cuda-7.5/samples
sudo make
这个过程会比较长让他在哪编译一会剩下的时间可以用来安装Theano。
第3步 安装 Theano
更新源
sudo apt-get update安装依赖包
sudo apt-get install python-numpy python-scipy python-dev python-pip python-nose g libopenblas-dev git
安装scipy依赖包 scipy的安装需要依赖于numpy、lapack、atlas后两者都是线性代数工具包而numpy和sci的测试程序的运行又依赖于nose因此整个安装过程必须要按顺序执行的否则是无法执行下去的。 1、先安装nose包 sudo apt-get install python-nose 2、接下来安装各种包 # 安装gfortran,后面编译过程中会用到
sudo apt-get install gfortran
# 安装blas,Ubuntu下对应的是libopenblas其它操作系统可能需要安装其它版本的blas——这是个OS相关的。
sudo apt-get install libopenblas-dev
# 安装lapackUbuntu下对应的是liblapack-dev和OS相关。
sudo apt-get install liblapack-dev
# 安装atlasUbuntu下对应的是libatlas-base-dev和OS相关。
sudo apt-get install libatlas-base-dev 安装numpy scipy
sudo apt-get install python-numpy # python2.7
sudo apt-get install python3-numpy # python3.5
sudo apt-get install python-scipy # python2.7
sudo apt-get install python3-scipy # python3.5 安装Theano
sudo pip install Theano
测试numpy是否启用了blas加速进入python 在命令行输入
python
import numpy
id(numpy.dot) id(numpy.core.multiarray.dot)
False
输出False表示加速成功如果输出True参考官方教程修改理论上很少加速失败。失败请查看高性能Numpy/Scipy加速:使用Intel MKL和Intel Compilers或OpenBLAS待续
第4步 编辑Theano配置文件
sudo gedit ~/.theanorc
写入以下下内容
[global]
openmpFalse
floatXfloat32
devicegpu
allow_input-downcastTrue
[blas]
ldflags
[nvcc]
flags-D_FORCE_INLINES
[lib]
cnmem 1
第5步命令端其他测试
NumPy (~40s)
python -c import numpy;numpy.test()
SciPy (~2m)
python -c import scipy;scipy.test()
Theano (~30m)
python -c import theano;theano.test()
在Theano测试时可能会有问题
Using gpu device 0: Tesla K40c (CNMeM is disabled, cuDNN Version is too old. Update to v5, was 4004.)
所以这需要升级为cuDNN v5。 出现了no module named nose-parameterized问题
pip install nose-parameterized 第6步测试经典的GPU测试代码保存至test.py
sudo gedit test.py
写入以下内容
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time
vlen 10 * 30 * 768 # 10 x #cores x # threads per core
iters 1000
rng 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 range(iters):r f()
t1 time.time()
print (Looping %d times took % iters, t1 - t0, seconds)
print (Result is, 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)
结果显示如下
Using gpu device 0: Tesla K40c (CNMeM is disabled, cuDNN 5103)
/home/bids/.local/lib/python2.7/site-packages/theano/sandbox/cuda/__init__.py:600: UserWarning: Your cuDNN version is more recent than the one Theano officially supports. If you see any problems, try updating Theano or downgrading cuDNN to version 5.warnings.warn(warn)
[GpuElemwise{exp,no_inplace}(CudaNdarrayType(float32, vector)), HostFromGpu(GpuElemwise{exp,no_inplace}.0)]
-------------------------------------------------------
Looping 1000 times took 0.630527973175 seconds
---------------------------------------------------------
Result is [ 1.23178029 1.61879349 1.52278066 ..., 2.20771813 2.299677611.62323296]
Used the gpu如果想用cpu测试的话就sudo gedit ~/.theanorc将其中的gpu修改为cpu就可以了。 结果显示如下
[Elemwise{exp,no_inplace}(TensorType(float32, vector))]
-----------------------------------------------------------
Looping 1000 times took 3.24689912796 seconds
-----------------------------------------------------------
Result is [ 1.23178029 1.61879337 1.52278066 ..., 2.20771813 2.299677611.62323284]
Used the cpu
结果显示 GPU加速效果明显 Using gpu device 0: Tesla K40c (CNMeM is disabled, cuDNN 5103) 解决方法 cnmem package: https://github.com/NVIDIA/cnmem
cd $HOME
% git clone https://github.com/NVIDIA/cnmem.git cnmem
% cd cnmem
% mkdir build
% cd build
% cmake ..
% make link with cnmem The source folder contains a header file include/cnmem.h and the build directory contains the library libcnmem.so, put them into your cuda path: /usr/local/cuda/include,/usr/local/cuda/lib64
sudo cnmem
sudo cp -rf ./include/cnmem.h /usr/local/cuda/include
sudo cp -rf ./build/libcnmem.so /usr/local/cuda/lib64 sudo gedit ~/.theanorc
[global]
openmpFalse
floatXfloat32
devicecpu
allow_input-downcastTrue
[blas]
ldflags
[nvcc]
flags-D_FORCE_INLINES
[lib]
cnmem 1 测试
python test.py
Using gpu device 0: Tesla K40c (CNMeM is enabled with initial size: 95.0% of memory, cuDNN 5110) 参考主页
Ubuntu15.10_64位安装Theanocuda7.5详细笔记
Ubuntu-安装-theanocaffe-超详细教程
Caffe Ubuntu 15.04 CUDA 7.5 在服务器上安装配置及卸载重新安装已测试可执行
Ubuntu14.04安装Theano详细教程
Theano: CNMeM is disabled, CuDNN not available
Windows10 64Bit完美配置Theano并实现GPU加速并解决CNMeM is disableCuDNN not available