多版本cuda运行与编译环境

多版本cuda运行与编译环境

基本环境:

  1. nvidi-smi后cuda版本为11.0
  2. 预装了两个版本的cuda分别为cuda-10.0和cuda-11.0
  3. 代码运行环境要求cuda-10.0

使用conda当前虚拟环境的cudatoolkit版本为10.0,代码运行一直报错,报错信息如下

cublas runtime error : the GPU program failed to execute at /opt/conda/condabld/pytorch_1544202130060/work/aten/src/THC/THCBlas.cu:416

资料查询后,感觉是cuda版本的问题,就安装了cuda-10.0并进行了切换。
代码运行出错,有两个版本的问题需要注意,一个是编译时使用的cuda版本,还有一个是运行时使用的cuda版本。
之前一直以为nvidi-smi命令之后显示的cuda版本是运行时的cuda版本,其实不是的。真正运行时的版本还是torch代码在运行时去查找的。查找本地的CUDA_HOME。

具体操作过程如下:

  1. 安装了需要版本的cuda
  2. cuda切换,更换软连接的方式,不是很优雅,先这么地吧
rm -rf /usr/local/cuda
sudo ln -s /usr/local/cuda-10.0/ /usr/local/cuda/
  1. 把CUDA_HOME写进 .bashrc文件,虽然看到说在找运行时cuda的时候通过软连接就可以了,但是保险起见,还是又写了一遍
export CUDA_HOME=/usr/local/cuda-10.0/
  1. 运行时cuda版本检查
    进入python环境
>>>import torch.utils.cpp_extension
>>>torch.utils.cpp_extension.CUDA_HOME

输出显示的是运行时的CUDA版本,此处为’/usr/local/cuda-10.0’

  1. 如果想要查看编译时的CUDA
>>>import torch
>>>torch.version.cuda

因为我安装的conda环境,编译时的cuda环境应该与虚拟环境中toolkit的版本是一致的。

  1. 接下来就是对代码的编译和运行了,没再报错了

参考:
https://www.cnblogs.com/yhjoker/p/10972795.html

你可能感兴趣的:(多版本cuda运行与编译环境)