现在遇到的问题是
我在ubuntu1404系统上,
CUDA Version 8.0.61
NVRM version: NVIDIA UNIX x86_64 Kernel Module 430.40 Sun Jul 21 04:53:48 CDT 2019
运行/usr/local/cuda/samples/1_Utilities/deviceQuery/deviceQuery是可以通过的PASS状态。我去查了官方的表,cuda8对应的nvidia版本最低是375,这个版本没问题。
但是在docker里面不通过
Server:
Engine:
Version: 18.06.2-ce
API version: 1.38 (minimum version 1.12)
Go version: go1.10.3
Git commit: 6d37f41
Built: Sun Feb 10 03:46:30 2019
OS/Arch: linux/amd64
Experimental: false
问题是,我用的nvidia-docker,会把主机的nvidia driver映射到docker里面,所以driver肯定是没问题的,那么我在docker里面也是装的cuda8.0.61,内外的安装包是一样的。但是执行cuda的deviceQuery就会报错35。
唯一的不同就是在外面用nvidia-smi可以看到cuda版本,虽然是错的10.0。但是在docker里看不到,显示的是N/A。我还重新装了遍cuda8.0的toolkit,没装nvidia驱动,也是不行。
内核版本4.4.0-31-generic。
在腾讯云上找到了一篇文章,说原因在于没有把机器上CUDA相关的驱动和库映射到容器内部。
export CUDA_SO="$(\ls /usr/lib32/libcuda* | xargs -I{} echo ‘-v {}:{}’) $(\ls /usr/lib32/libnvidia* | xargs -I{} echo ‘-v {}:{}’)"
但是这篇文章的意思是用docker进入容器,nvidia-docker会把映射都建立好,不存在这个问题。
希望有大神可以解决这个问题。