注:本文原创,做者:Noah Zhang (http://www.cnblogs.com/noahzn/)html
决定加入深度学习的大军,感谢导师给配了台新设备!第一次接触服务器并配置开发环境,整个过程当中遇到很多坑,可是好在最后都成功解决了。不过有点担忧的是,Tesla k40c 默认还要一个辅助供电,我目前只插了8pin的供电接口,6pin的供电接口没插,不知道后续计算会不会受影响……内心怕怕的……python
首先报一下硬件配置:linux
服务器:联想TD350:c++
CPU:Intel® Xeon(R) CPU E5-2620 v4 @ 2.10GHz × 32 git
内存:16G × 2条github
硬盘:2TBubuntu
显卡:Tesla K40cwindows
1、安装Ubuntu16.04 LTS 64bit服务器
自行下载安装程序iso文件,用ultraISO制做成优盘启动盘。安装。oop
2、安装CUDA8.0
Tesla K40c 是纯计算卡,切换至这款显卡后,没法显示GUI界面,按照同窗的说法“再装块其余的独显做为显示”,虽然可行,可是白白浪费一块独显。按照如下方法能够作到平时显示用Intel自带集显,运算时再切换至Tesla K40c。
1. 检查是否正确识别显卡:
在Terminal中输入:
lspci | grep -i nvidia
显示:
81:00.0 3D controller: NVIDIA Corporation GK110BGL [Tesla K40c] (rev a1)
2. 查看GCC安装版本:
gcc --version
显示:
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
3. 查看是否已有安装的NVIDIA驱动:
若是有,请卸载。本人的服务器是新的,因此木有安装过。
lsmod | grep nvidia
4. 查看集显驱动:
lsmod | grep nouveau
5. 下载CUDA8.0:
去cuda官网下载对应版本的驱动,请下载.run格式的安装文件,不要下载deb格式的!把安装文件放在任意目录下。
6. 禁用显卡驱动:
Ctrl + Alt + F1 进入tty1界面。
关闭桌面服务:
sudo service lightdm stop
把自带显卡驱动加入黑名单:
cd /etc/modprobe.d/
sudo touch blacklist-nouveau.conf sudo su root echo "blacklist nouveau">>blacklist-nouveau.conf echo "options nouveau modeset=0">>blacklist-nouveau.conf
当即生效:
sudo update-initramfs -u
重启系统。
7. 安装CUDA:
再次进入tty1,并再次关闭桌面服务,找到刚才存放.run安装程序的路径,安装一下,后面跟上参数!!
sudo ./cuda_8.0.44_linux.run --no-opengl-libs
按照提示,输入yes或者回车,装完后开启桌面服务:
sudo service lightdm start
重启。
8. 后续配置:
2016年12月16日补充:ubuntu16.04下建立这个问题件后,开机会提示问题,而后会自动删除这个文件,没这个文件一切也挺正常的。。因此暂时能够不用改这个文件了。
建立 /etc/X11/xorg.conf 文件,内容以下:
Section "Device" Identifier "intel" Driver "intel" BusID "PCI:0@0:2:0" Option "AccelMethod" "SNA" EndSection
打开文件 /etc/default/grub, 在 GRUB_CMDLINE_LINUX_DEFAULT 后增长一个参数: "nogpumanager"。
当即生效:
sudo update-grub
9. 配置环境变量:
/etc/profile文件最后增长两行:
export PATH=$PATH:/usr/local/cuda-8.0/bin export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:/lib
个人CUDA装在默认位置,若是你的不是,请自行修改上述路径吧~
当即生效:
source /etc/profile
10. 验证安装:
终端输入:
lsmod | grep nvidia
显示:
nvidia_drm 45056 0 nvidia_modeset 765952 1 nvidia_drm nvidia 11485184 1 nvidia_modeset drm_kms_helper 147456 2 ast,nvidia_drm drm 360448 6 ast,ttm,drm_kms_helper,nvidia_drm
终端输入:
nvcc -V
显示:
nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2016 NVIDIA Corporation Built on Sun_Sep__4_22:14:01_CDT_2016 Cuda compilation tools, release 8.0, V8.0.44
3、 安装Anaconda3
官网下载python3.5版本,cd到安装程序目录下执行:
sudo sh Anaconda3-4.2.0-Linux-x86_64.sh
安装过程当中提示要不要加入环境变量啥的,都选yes。
4、 安装Matlab2016a
下载好破解版的Matlab iso镜像, cd到镜像文件目录下执行:
sudo mount -t iso9660 -o loop R2016a_glnxa64.iso /mnt cd /mnt ./install
一开始输入破解文件夹内的序列号,装完之后,把破解文件夹内的两个lib开头的文件拷到 /usr/local/MATLAB/R2016a/bin/glnxa64/ 目录下,注意操做权限。
打开Matlab:
cd /usr/local/MATLAB/R2016a/bin ./matlab
定位到破解文件夹内的lic文件。
安装一个插件:
sudo apt-get install matlab-support
按照要求输入matlab执行程序所在bin文件夹的上层目录。
之后就能够直接在终端里输入 matlab 来启动啦!
5、安装OPENCV3.1
先装下各类可能用到的依赖库吧:
sudo apt-get update
sudo apt-get install build-essential
sudo apt-get install libopenblas-dev sudo apt-get install liblapack-dev sudo apt-get install libatlas-base-dev
sudo apt-get install libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
安装cmake、git,这里还要安装下cmake的gui程序,后续编译opencv咱们在gui界面操做!
sudo apt-get install cmake git cmake-qt-gui
下载opencv3.1源码以及扩展包源码:
cd /home/noah/
mkdir opencv
mkdir build cd opencv git clone https://github.com/Itseez/opencv.git
git clone https://github.com/Itseez/opencv_contrib.git
使用cmake-gui编译至刚才建立的build文件夹
终端输入:
cmake-gui
配置方法能够参考我在windows下编译opencv的博文,主要看下anaconda这些有没有被检测到,还要在扩展包路径里选择 /opencv_contrib/modules 文件夹。
编译好以后,终端进入build文件夹:
make -j16
你们根据本身CPU状况更改数字哦,make过程会好久,特别是到opencv_perf_stitch 和python3 这两步时,估计要等四十分钟………………完成后,安装:
sudo make install
安装完后,检测一下,终端输入python,而后import cv2试试,若是出现说什么libstdc++.so.6 有问题,软链接一下:
sudo ln -sf /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21 /home/noah/anaconda3/lib/libstdc++.so.6
同理,若是libgomp.so.1文件有问题,也软链接一下:
sudo ln -sf /usr/lib/x86_64-linux-gnu/libgomp.so.1 /home/noah/anaconda3/lib/libgomp.so.1
再import cv2就能够咯~~~~
6、安装CuDNN5.1
去官网下载最新版本CuDNN5.1,tga格式。
终端输入:
tar -zxf cudnn-8.0-linux-x64-v5.1.tgz cd cuda/
sudo cp lib64/* /usr/local/cuda-8.0/lib64/ sudo cp include/cudnn.h /usr/local/cuda-8.0/include/
7、安装MXNet
下载mxnet:
git clone https://github.com/dmlc/mxnet.git ~/mxnet --recursive
修改 /mxnet/make/config.mk,把USE_CUDNN=0、USE_CUDA=0 都改为=1,而且指定CUDA路径:/usr/local/cuda,在mxnet根目录下编译:
make -j16
cd /mxnet/python 目录,执行:
python setup.py install
跑下示例程序吧~~ cd /mxnet/example/image-classification/,执行:
python train_mnist.py --gpus 0
没问题的话就OK啦!!
附:参考资料
http://www.cnblogs.com/muchong/p/6093328.html
https://my.oschina.net/u/1046919/blog/479947
http://www.cnblogs.com/gaowengang/p/6068788.html
http://mxnet.io/get_started/setup.html#installing-mxnet
http://jingyan.baidu.com/article/d45ad148a78cbe69552b8089.html