- 近期深度学习很火,我这个无知的研究僧也想试试水。很多深度学习的框架都是在Linux下表现会比Windows好(有些框架根本不支持Windows),而要想充分发挥性能,CUDA加速不能少(针对包含NVIDIA显卡的电脑)。所以决定尝试一波,在物理机上安装Ubuntu16.04,配置下CUDA,折腾了几天,整理一下,以备不时之需。
- 先说下自己电脑:微星GE62(Intel 5700HQ+GTX 960M),自带的显示器和外接显示器接口都是挂在集成显卡(也就是Intel的显卡)上,所以安装Ubuntu之后首要解决的就是这个双显卡的问题。如果电脑只有独显或者说自带显示器及接口是挂在独显上的,可能会简单点。
- 强烈建议:安装cuda过程最好先完整看一遍NVIDIA官方的Installation_Guide_Linux,如果链接失效,可在CUDA的下载界面找到。一般情况下,没有任何文档会比官方的好。
- 强烈建议:安装cuda过程最好先完整看一遍NVIDIA官方的Installation_Guide_Linux,如果链接失效,可在CUDA的下载界面找到。一般情况下,没有任何文档会比官方的好。
- 强烈建议:安装cuda过程最好先完整看一遍NVIDIA官方的Installation_Guide_Linux,如果链接失效,可在CUDA的下载界面找到。一般情况下,没有任何文档会比官方的好。
- 重要的事情要说三遍
系统安装后的一些初始操作
1、利用U盘等工具安装好Ubuntu16.04,注意:安装64位。
2、在系统设置的Software&Updates更改源(比如中科大源);在Additional Drivers里面,针对Nvidia显卡和IntelCPU均选择闭源驱动(proprietary),如果有多个闭源驱动可选,则选择最新的。
3、如果是Windows和Ubuntu双系统,为了解决两个系统时差问题,可在Ubuntu终端输入$ sudo timedatectl set-local-rtc true
解决。
4、更新系统到最新状态$ sudo apt update
、$ sudo apt upgrade
5、在NVIDIA官网下载好CUDA (我选择deb(network)包,其他安装方式貌似会出问题,在Ubuntu系统里面下载,事先下载好好像会出现哈希和出错的问题)。
下面的操作都是根据Installation_Guide_Linux进行的,所以部分是在翻译这份Guide
安装CUDA
1、确定机子是否满足安装的最低要求
- 确定是否有NVIDIA GPU(这个一般都会有吧,但确定下比较好)
$ lspci | grep -i nvidia
然后就会看到相关设备,如果看不到,可以尝试运行$ sudo update-pciids
,再重新尝试前面的命令;
NVIDIA官方有一个页面,里面会列出CUDA所支持的显卡以及计算力(Compute Capability)
https://developer.nvidia.com/cuda-gpus - 确定运行的Linux是受支持的
这个就不用看了,Ubuntu16.04 64位是支持的 - 确定是否安装了gcc
$ gcc --version
- 确定系统安装了内核开发的相关文件
查看当前内核$ uname -r
安装当前内核开发相关文件$ sudo apt-get install linux-headers-$(uname -r)
2、安装CUDA(我是下载deb(network)的,也就是apt在线安装方式)
- 导入源
Installation_Guide_Linux给的是sudo dpkg -i cuda-repo-<distro>_<version>_<architecture>.deb
因为我下的deb包名字是cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
所以我用的是sudo dpkg -i cuda-repo-ubuntu1604_8.0.61-1_amd64.deb
- 更新Apt缓存
sudo apt update
一开始,我在这步会出现哈希和问题(Hash Sum mismatch),原因可能是我事先在Windows下的deb,后来在Ubuntu下重新下载,就好了 - 安装CUDA
sudo apt install cuda
这个方法会自动安装当前最新的CUDA,包括显卡驱动、Toolkit、Nsight Eclipse Edition、NVIDIA Visual Profiler,同时,如果已经有了旧版本的相应软件,会尝试更新。
-- 2017.11.27更新(因为CUDA已经有9.0的版本了)
sudo apt install cuda-8-0
指定安装8.0版本的CUDA
验证安装
1、先将CUDA路径添加到系统PATH目录
$ export PATH=/usr/local/cuda-8.0/bin${PATH:+:${PATH}}
为了以后开机能自动生效,可修改/etc/profile,将上面的那句话加到profile文件的最后
2、添加CUDA库目录到LD_LIBRARY_PATH环境变量(本步骤用deb方式安装的可以省略)
$ export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64\{LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
或者在/etc/ld.conf.so.d目录下新建cuda-8-0.conf 并将CUDA库目录写进该文件
sudo gedit /etc/ld.conf.so.d/cuda-8-0.conf
写入/usr/local/cuda-8.0/lib64
保存退出
sudo ldconfig
3、确定驱动版本
$ cat /proc/driver/nvidia/version
4、编译并运行一些官方例程
- 首先,把CUDA例程拷贝出来,比如拷贝到当前用户的home目录下
$ cuda-install-samples-8.0.sh ~
- 然后在home目录下会有NVIDIA_CUDA-8.0_Samples目录,cd进去之后,make就可以编译例程(编译之前注意要让PATH变量和LD_LIBRARY_PATH变量包含了CUDA目录,可敲
nvcc -v
确定设置是否正确 ) -
运行例程
1)运行deviceQuery,查看输出
cd到NVIDIA_CUDA-8.0_Samples/bin/x86_64/linux/release下
至此,如果没有什么错误的话,就在Ubuntu16.04下安装好CUDA了。
参考
http://www.cnblogs.com/lvchaoshun/p/6411697.html (感谢该博主提出要看官方文档,这会少走很多弯路)