安装双系统
目前是Win10系统,i7 6700HQ+英伟达965M显卡,因为虚拟机显卡无法进行实验,所以所以决定安装双系统
需要注意的是,安装时请在bios中选用Legacy模式方可使用EasyBCD进行引导,而且EasyBCD新建项时需要选择Grub2否则会出现黑屏无法引导的情况。
启动Ubuntu时如果卡顿在Logo界面,则是由于无法读取独显造成的,在Ubuntu出现选择启动项界面时按e,倒数第二行增加nouveau.modeset=0,按F10进行启动即可。
建议/boot分区可以设置稍微大一点,不然系统更新时会提示/boot分区空间不足
成功进入Ubuntu后,点击系统设置,软件和更新,在Ubuntu软件选项卡中选择一个中国源
选择下载软件源
然后选择使用专有的NVIDIA显卡驱动,这样开机时就不再需要输入参数了
选择显卡驱动程序最后进行系统更新
点击win键,打开搜索框,输入update,打开软件更新器,选择立即安装
系统安装完毕,开始安装实验环境
实验环境的搭建
安装git
通过git可以直接下载代码,使用命令sudo apt-get install git
进行安装
下载代码
安装cuda
- 首先查看自己的显卡信息,可以看到我的显卡是GTX 965M
tang@Tang:~$ lspci | grep -i nvidia
01:00.0 3D controller: NVIDIA Corporation GM206M [GeForce GTX 965M] (rev a1)
查看显卡是否支持
- 然后查看系统是否符合要求,我们的系统是x86_64架构的Ubuntu16.04
tang@Tang:~$ uname -m && cat /etc/*release
x86_64
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.2 LTS"
NAME="Ubuntu"
VERSION="16.04.2 LTS (Xenial Xerus)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 16.04.2 LTS"
VERSION_ID="16.04"
VERSION_CODENAME=xenial
UBUNTU_CODENAME=xenial
对照官方文档给出的表符合要求
CDDA8.0 系统以及组件要求
- 检查gcc编译器
tang@Tang:~$ 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.
我们的是5.4 版本,而推荐的是5.3.1,但是通常情况是可以正常工作的
- 检查kernel header以及开发包,可以看到我们已经安装好了
tang@Tang:/usr/src$ uname -r
4.4.0-81-generic
tang@Tang:/usr/src$ sudo apt-get install linux-headers-$(uname -r)
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
linux-headers-4.4.0-81-generic 已经是最新版 (4.4.0-81.104)。
linux-headers-4.4.0-81-generic 已设置为手动安装。
下列软件包是自动安装的并且现在不需要了:
libmircommon5 libpango1.0-0 libpangox-1.0-0 ubuntu-core-launcher
使用'sudo apt autoremove'来卸载它(它们)。
升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。
- 点击下载对应版本的cuda安装包,这里下载runfile文件(速度比较慢,可以使用迅雷先下载完再拷贝到机器上)
对于非初次安装的电脑,需要查看是否有冲突存在,可见选择runfile会简单不少
冲突表
- 禁用nouveau驱动,可以看到并没有安装
tang@Tang:~$ lsmod | grep nouveau
- 安装
1sudo sh sudo sh cuda_8.0.61_375.26_linux.run
2 然后阅读许可协议,输入accept
3 不安装显卡,因为之前在设置里面已经安装过了,其他步骤都点yes即可
Install NVIDIA Accelerated Graphics Driver for Linux-x86_64 375.26?
(y)es/(n)o/(q)uit: n
4 编辑~/.bashrc文件,增加环境变量
export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
安装显卡驱动的话要重启电脑,进入非图形界面安装。同时,双显卡电脑不要选择安装openGL
- 验证安装是否成功
tang@Tang:~$ cat /proc/driver/nvidia/version
NVRM version: NVIDIA UNIX x86_64 Kernel Module 375.66 Mon May 1 15:29:16 PDT 2017
GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)
tang@Tang:~$ nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2016 NVIDIA Corporation
Built on Tue_Jan_10_13:22:03_CST_2017
Cuda compilation tools, release 8.0, V8.0.61
进入到~/NVIDIA_CUDA-8.0_Samples/1_Utilities/
这个文件夹,编译样例,观察结果是否为pass
bandwidthTest
自此,cuda安装完毕
编译cuda-convent-plus
- 下载代码
- 修改build.sh中的路径为你系统中的相关路径
# CUDA toolkit installation directory.
export CUDA_INSTALL_PATH=/usr/local/cuda
# CUDA SDK installation directory.
export CUDA_SDK_PATH=/usr/local/cuda/samples/common/inc
# Python include directory. This should contain the file Python.h, among others.
export PYTHON_INCLUDE_PATH=/usr/include/python2.7
# Numpy include directory. This should contain the file arrayobject.h, among others.
export NUMPY_INCLUDE_PATH=/usr/lib/python2.7/dist-packages/numpy/core/include/numpy
# ATLAS library directory. This should contain the file libcblas.so, among others.
export ATLAS_LIB_PATH=/usr/lib/atlas-base
然后build即可
如果提示找不到以l开头.o文件,使用locate进行定位,然后重新建一个软链接
运行实验代码
- 下载代码
- 修改'setup.sh.example'中的PROJ_DIR,设置cuda-convent-plus项目跟路径,随后重命名成
setup.sh
,在命令行中执行sudo ./setup.sh
进行安装
export PROJ_DIR="/home/tang/桌面/project/"
安装过程中出现
/sbin/ldconfig.real: /usr/lib/nvidia-375/libEGL.so.1 is not a symbolic link
/sbin/ldconfig.real: /usr/lib32/nvidia-375/libEGL.so.1 is not a symbolic link
的提示,系统找的是一个符号连接,而不是一个文件。对文件更名然后重新建立链接
sudo mv /usr/lib/nvidia-375/libEGL.so.1 /usr/lib/nvidia-375/libEGL.so.1.org
sudo mv /usr/lib32/nvidia-375/libEGL.so.1 /usr/lib32/nvidia-375/libEGL.so.1.org
sudo ln -s /usr/lib/nvidia-375/libEGL.so.375.66 /usr/lib/nvidia-375/libEGL.so.1
sudo ln -s /usr/lib32/nvidia-375/libEGL.so.375.66 /usr/lib32/nvidia-375/libEGL.so.1f
如果提示
sudo: pip:找不到命令
则是由于pip没有安装,使用sudo apt-get install python-pip
进行安装
如果提示PROJ_DIR错误那么可以直接在~/.bashrc中添加路径(不要忘记source一下)
- 执行脚本
tang@Tang:~/桌面/project/dl-image-enhance-master/py$ ./script_prepare_train_batches_uniform_set_foregroundpopout.sh
Traceback (most recent call last):
File "trainPatchPreparer.py", line 9, in <module>
from util_image import *
File "/home/tang/桌面/project/cuda_convnet_plus/py/util_image.py", line 10, in <module>
from skimage import color
ImportError: No module named skimage
使用pip进行安装
sudo pip install scikit-image
随后即可正常执行
- 启用ssh
sudo apt-get install openssh-server
查看是否启动
tang@Tang:~/桌面/project/dl-image-enhance/py$ sudo ps -e | grep ssh
7811 ? 00:00:00 sshd
如果未启动则使用
sudo service ssh start