cuda_deviceQuery报错35

现在遇到的问题是

我在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会把映射都建立好,不存在这个问题。

希望有大神可以解决这个问题。



Ps. 最后发现库里面莫名其妙多出来一个libcuda.so.1这个库,把它删了就好了,可能是两个库版本不一样,导致调用错误。

你可能感兴趣的:(其他乱七八糟的)