1. cuda安装路径

一般cuda都安装在/usr/local下的cuda文件夹下,进入该路径一般能看到cuda和若干cuda-版本号,其实cuda文件夹是后面的某个文件夹软连接而已

2. 安装多cuda环境

安装不同版本的cuda和安装一个cuda的过程类似,重复几次而已,到 CUDA Toolkit Download 下载所需版本,安装位置可以选择不放在默认路径,可以自定义安装路径,比如放在用户目录下,也不用非得创建一个名为cuda的软连接,直接用cuda-版本号就行,比如cuda-10.0

3. cuda版本切换

3.1 所有用户整体切换

直接通过更换软连接进行更换,将原来的/usr/local/cuda删掉,软连接到新的版本ln -s 源文件 目标文件

3.2 只对某个用户切换

在该用户的环境变量中添加新版本的bin路径、lib路径和动态库路径,在~/.bashrc中改:

1
2
3
export PATH=$PATH:/home/Bio/liuzhiqiang/mycuda/cuda-10.0/bin/
export PATH=$PATH:/home/Bio/liuzhiqiang/mycuda/cuda-10.0/lib64/
export LD_LIBRARY_PATH="/home/Bio/liuzhiqiang/mycuda/cuda-10.0/lib64:$LD_LIBRARY_PATH"

4. cudnn是什么?怎么安?

cudnn:cuda中专门为深度学习设计的软件库,里面提供了很多专门的计算函数,如卷积等。还有很多其他的软件库和中间件,包括实现c++ STL的thrust、实现gpu版本blas的cublas、实现快速傅里叶变换的cuFFT、实现稀疏矩阵运算操作的cuSparse

安装方法:首先去官网下载,需要注册。如下载好cudnn-10.0-linux-x64-v7.6.5.32.tgz,再进行解压,解压出来是和cuda的文件夹结构一样的
cuda
├── include
│ └── cudnn.h
├── lib64
│ ├── libcudnn.so -> libcudnn.so.7
│ ├── libcudnn.so.7 -> libcudnn.so.7.6.5
│ ├── libcudnn.so.7.6.5
│ └── libcudnn_static.a
└── NVIDIA_SLA_cuDNN_Support.txt
将其中的文件复制到对应的文件夹中即可,其实也只有三四个文件,可以看到lib4中实际只有两个文件

5. NVCC是什么?

nvcc其实就是CUDA的编译器,可以从CUDA Toolkit的/bin目录中获取,类似于gcc就是c语言的编译器。

6. lib64、include、bin

lib64一般是装各种软件库,如前面说的cudnn
include一般是各种库的API,头文件
bin里面放了有可执行的二进制文件、shell脚本等。如果想要在任意目录下都能运行上述bin文件夹的可执行文件,那么只需要把这个bin的路径添加到PATH即可

参考:

  1. 显卡,显卡驱动,nvcc, cuda driver,cudatoolkit,cudnn到底是什么?
  2. 非root用户安装cuda10.0和cudnn