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即可