首先需要在NVIDIA官网下载cuda的本地文件,cuda版本对gpu的驱动版本有要求,详见(https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html)
1.禁用系统自带驱动
首先需要禁用系统自带的nouveau开源显卡驱动,使用命令
lsmod | grep nouveau
检查是否启用自带的驱动。如果没有输出则证明已经禁用,如果有输出则需要禁用驱动。
一种方法是直接使用mv命令把驱动移动出来
mv /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko /lib/modules/3.0.0-12-generic/kernel/drivers/gpu/drm/nouveau/nouveau.ko.org
之后执行更新命令
update-initramfs -u
重启,再次检查是否安装了开源驱动。
2.安装NVIDIA驱动
本次安装使用Ubuntu自带的软件和更新app自动安装对应的显卡驱动,安装完成后按照提示重启电脑即可安装成功。
为了检验是否成功启用n卡驱动,执行命令查看显卡的驱动信息
nvidia-smi
查看设置界面和显卡图形界面。
nvidia-settings
3.安装cuda
在执行安装程序以前,先配置好环境。使用命令
apt install clang
安装clang,版本高于7.0;icc版本高于19.0;gcc版本高于7.3.0;内核版本为 4.15.0;glibc版本高于2.27,可以使用命令
ldd --version
查看本机具体版本;
使用命令查看系统内核版本
uname -r
使用命令更新内核头和开发包
sudo apt-get install linux-headers-$(uname -r)
需要使用命令行安装下载好的文件。我使用双击的方式安装deb的cuda结果没成果,只好这样做:
dpkg -i cuda-repo-ubuntu1804-10-1-local-10.1.105-418.39_1.0-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
但是安装的时候出错了,报错:
cuda : 依赖: cuda-10-1 (>= 10.1.105) 但是它将不会被安装
于是用aptitude代替apt-get命令,得以正确安装。在~/.bashrc中配置环境变量
export PATH=$PATH:/usr/local/cuda-10.1/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-10.1/lib64
export CUDA_HOME=$CUDA_HOME:/usr/local/cuda-10.1
安装完成后发现cuda版本和gpu驱动版本不匹配,只好卸载驱动重新安装CUDA 9.0
首先去官网下载9.0版本的cuda文件,选择runfile,对应Ubuntu 16.04,准备工作完成后还不能开始安装,首先需要对gcc和g++进行降级。
先安装低版本的gcc和g++:
sudo apt-get install gcc-4.8
sudo apt-get install g++-4.8
如果需要更低版本的包,可以从这个网站下载后离线安装:http://archive.ubuntu.com/ubuntu/pool/universe/g/。并按照这个顺序执行:
gcc-3.4-base_3.4.6-6ubuntu3_i386.deb
gcc-3.4_3.4.6-6ubuntu3_i386.deb
cpp-3.4_3.4.6-6ubuntu3_i386.deb
g++-3.4_3.4.6-6ubuntu3_i386.deb
libstdc++6-dev_3.4.6-6ubuntu3_i386.deb
执行命令
cd /usr/bin
ls -l gcc*
会显示以下结果
lrwxrwxrwx 1 root root 7th May 16 18:16 /usr/bin/gcc -> gcc-7.3
对gcc和g++修改链接:
sudo mv gcc gcc.bak
sudo ln -s gcc-4.8 gcc
sudo mv g++ g++.bak
sudo ln -s g++-4.8 g++
完成这些后就可以着手安装cuda了。执行命令安装
sudo sh cuda_9.1.85_387.26_linux.run
点击回车键直到协议走完,注意安装过程中不要选择显卡驱动。完成后添加环境变量
gedit ~/.bashrc
export PATH=/usr/local/cuda-9.0/bin${PATH:+:$PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-9.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
至此,安装完成。
4.检测环境是否成功配置
检查是否安装成功
nvcc --version
使用示例程序检查是否安装成功
cd /usr/local/cuda/samples
make -j4(编译时间比较长,可以使用多线程加速)
cd bin/x86_64/linux/release/
./deviceQuery
./bandwidthTest
也可以另一种方式测试
cd ~/NVIDIA_CUDA-9.0_Samples/2_Graphics/volumeRender
make
./volumeRender
出现图形界面算成功
5.卸载cuda
cuda自带了卸载程序,可以执行命令
/usr/local/cuda-9.0/bin/uninstall_cuda_9.0.pl
进行自动卸载,完了还需要清空文件夹
rm -rf /usr/local/cuda-9.0
但是由于自己电脑上安装完后,并没有发现这些文件,所以使用命令
sudo apt-get --purge remove cuda-repo-ubuntu1804-10-0-local-10.0.130-410.48
sudo apt-get --purge remove cuda-*-10-0
6.安装cuda 4.0
因为gpgpu-sim需要低版本的cuda,所以把cuda 9.0写在了安装cuda 4.0。
按照顺序首先安装toolkit
按照toolkit、sdk、computing的顺序,以./执行安装。
安装toolkit时出现如下提示:
- Please make sure your PATH includes /usr/local/cuda/bin
- Please make sure your LD_LIBRARY_PATH
- for 32-bit Linux distributions includes /usr/local/cuda/lib
- for 64-bit Linux distributions includes /usr/local/cuda/lib64:/usr/local/cuda/lib
- OR
- for 32-bit Linux distributions add /usr/local/cuda/lib
- for 64-bit Linux distributions add /usr/local/cuda/lib64 and /usr/local/cuda/lib
- to /etc/ld.so.conf and run ldconfig as root
安装完gpucomputingsdk后得到如下提示:
Configuring SDK Makefile
(/root/NVIDIA_GPU_Computing_SDK/C/common/common.mk)…========================================
- Please make sure your PATH includes /usr/local/cuda/bin
- Please make sure your LD_LIBRARY_PATH includes /usr/local/cuda/lib
- To uninstall the NVIDIA GPU Computing SDK, please delete /root/NVIDIA_GPU_Computing_SDK
- Installation Complete
完成后配置环境变量:
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:/usr/local/cuda/lib:$LD_LIBRARY_PATH
编译cuda SDK 的时候,需要gcc 4.4,可以去网站下载对应的包。配置缺少的环境变量:
apt-get install libxi-dev libxmu-dev freeglut3-dev
ln -s /usr/lib/x86_64-linux-gnu/libcuda.so.390.116 /usr/lib/libcuda.so
之后在~/NVIDIA_GPU_Computing_SDK
目录下执行make命令。进入~/NVIDIA_GPU_Computing_SDK/C/bin/linux/release
目录下看看是不是有很多可执行文件,注意deviceQuery这个可执行文件,我们就是要执行它来判断自己的CUDA是否安装成功,输入./deviceQuery命令来执行它,如果出现你的显卡信息则说明CUDA已经安装成功。