1. 查看显卡版本。lspci | grep -i nvidia 查看你的电脑上的显卡,是否是nvidia及版本
2.安装显卡驱动。这个也可以不用,在第三步的时候选择自动安装。在http://www.nvidia.com/Download/index.aspx官网上找到你对应的显卡的驱动版本号,然后用apt-get install nvidia-xxx来安装驱动。
3.安装Cuda8。为了避免后面可能出现的麻烦,建议先安装一些依赖apt-get install libglu1-mesa libxi-dev libxmu-dev libglu1-mesa-dev。然后安装Cuda8:去官网下载https://developer.nvidia.com/cuda-downloads。根据自己的电脑情况,选择的时候注意选runfile,可是现在早都到了9.1了,但是为了保险起见,我还是选择8.0,用这个命令下载wgethttps://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-run,下载下来之后是一个.sh文件,运行这个文件就开始安装了,后面会出现条款,全部同意即可。不过中间有一步,如果你通过2自己安装过驱动了就不用安装了,如果没有就安装。
4.设置cuda的环境变量。 在~/.bashrc中的末尾添加:
export CUDA_HOME=/usr/local/cuda-8.0
export LD_LIBRARY_PATH=/usr/local/cuda-8.0/lib64:$LD_LIBRARY_PATH
export PATH=/usr/local/cuda-8.0/bin:$PATH
然后source ~/.bashrc立即生效
5.检查和验证之前的过程。(1)看nvcc版本nvcc --version (2) 看驱动版本cat /proc/driver/nvidia/version (3)看驱动能不能用nvidia-smi ,这一步之前可能需要reboot一下使得刚装的驱动生效。
6.还是检查,运行一下官方的例子。进入到samples文件夹在用户目录下或者/usr/local/cuda/samples下都有,进入1_Utilities/deviceQuery中,make 然后运行./deviceQuery,会输出一堆信息,最后是PASS,之前都对。
7.安装cuDNN。去官网下载,要注册的。https://developer.nvidia.com/rdp/cudnn-download。选择cuDNN v5.1 Library for linux下载之后解压,下载下来之后是个很复杂的后缀名,改成.tgz后缀然后用tar -xvf解压即可。然后把lib和include拷贝到cuda目录:
sudo cp cuda/include/cudnn.h /usr/local/cuda/include
sudo cp cuda/lib64/libcudnn* /usr/local/cuda/lib64
sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*
如果拷贝过去的文件中有这样的***cudnn.so.x.x,后面两个x是数字,那么只要点最后的一个数字,建立一个软连接即可
sudo ln -s libcudnn.so.5.1.5 libcudnn.so.5大概这样。更换cudnn版本只要替换上面所有文件和操作即可。
最后更新链接库,这个好像做不做都行啊。sudo Idconfig
8.现在cuda和cudnn就弄好了总算松了一口气,开始弄pytorch了,这一条作为分割线好了。
9.安装anaconda。这个也可以后面在搞。在https://www.anaconda.com/download/上面找到对应的安装命令,下载下来,是一个.sh文件,然后运行这个命令即可
10.为anaconda弄一个虚拟环境。conda create -n pytorch
11.安装pytorch,在官网http://pytorch.org/选一个你的当前的配置。然后就有个命令,你在你的命令行输入这个命令即可。我是这个conda install pytorch torchvision -c pytorch
12.测试torch。
import torch
import torchvision 如果你要用这个且装了这个的话。没用没装就不用试了
13.测试CUDA和cuDNN
# CUDA TEST
x = torch.Tensor([1.0])
xx = x.cuda()
print(xx)
# cuDNN test
from torch.backends import cudnn
print(cudnn.is_acceptable(xx))