CUDA相关安装问题记录

CUDA

docker运行

先安装nvidia-docker

https://nvidia.github.io/nvidia-docker/

apt-get install -y nvidia-docker2

启动cuda10.1和cudnn7环境

docker run --rm --runtime=nvidia -ti -v /data:/data nvidia/cuda:10.1-cudnn7-runtime-ubuntu18.04

问题

在docker中安装了nvidia-cuda-toolkit后nvidia-smi出现failed to initialize nvml: driver/library version mismatch错误 pycuda出现pycuda._driver.LogicError: cuInit failed: system has unsupported display driver / cuda driver combination

网上的方法基本都是重启和重装驱动,因为大家基本都是物理机直接安装的,不是docker环境,我这docker里装不上特定版本的nvidia-driver。 将nvidia驱动都卸载了,奇迹般的nvidia-smi和pycuda就正常了,估计docker环境的驱动直接打在kernel里面了,装了其他驱动就版本不匹配了。

apt-get remove --purge nvidia-\*

注意:

  • 安装nvidia-docker2后需要重启docker
  • 容器内部的CUDA应该小于等于宿主机的CUDA版本,否则会报错(forward compatibility was attempted on non supported HW)

TensorRT

TensorRT Internal Error: Assertion failed: Unsupported SM

https://forums.developer.nvidia.com/t/rtx-3070-tensorrt-internal-error-assertion-failed-unsupported-sm/169830

我用的3080TI显卡,TRT6,30系列需要TRT7,换用2080解决

pycuda

error: expected declaration before ‘}’ token
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

报语法错误,指定c++11解决(-std=c++11

tar xzvf pycuda-2019.1.2.tar.gz
cd pycuda-2019.1.2/
# 配置参数
 ./configure.py --cuda-root=/home/xx/software/cuda/install/ --boost-compiler=gcc49 --cxxflags=-std=c++11
# 编译
python setup.py build
# 安装
python setup.py install

还有一些x86_64-linux-gnu-gcc错误,找不到cuda.h或者Python.h的,指明位置或者安装所需的包即可,比如找不到Python.h安装python3-dev即可