Docker 使用GPU的Kubernetes部署
我正在尝试用GPU在Kubernetes引擎上部署一个ML应用程序。我使用nvidia/cuda:9.0-runtime创建了docker映像,并在上面构建了我的应用程序。当我将映像部署到Kubernetes引擎时,我收到一个错误消息,说它无法导入libcuda.so.1Docker 使用GPU的Kubernetes部署,docker,tensorflow,kubernetes,Docker,Tensorflow,Kubernetes,我正在尝试用GPU在Kubernetes引擎上部署一个ML应用程序。我使用nvidia/cuda:9.0-runtime创建了docker映像,并在上面构建了我的应用程序。当我将映像部署到Kubernetes引擎时,我收到一个错误消息,说它无法导入libcuda.so.1 ImportError: libcuda.so.1: cannot open shared object file: No such file or directory 我看了一些张贴的解决方案,但似乎没有一个有效 在尝试这
ImportError: libcuda.so.1: cannot open shared object file: No such file or directory
我看了一些张贴的解决方案,但似乎没有一个有效
在尝试这些解决方案时,我也发现
所提到的路径
echo $LD_LIBRARY_PATH
给
/usr/local/nvidia/lib:/usr/local/nvidia/lib64
似乎不存在
此外,文件系统中没有名为libcuda.so.1或任何数字的文件。并且/usr/lib/cuda/lib64包含共享库。
我目前是否在这里实施了任何错误我假设您已经阅读了谷歌云网站上关于如何操作的文档。他们接着描述了使用GPU创建新集群、安装驱动程序和配置POD的整个过程 看起来你没有正确安装库,或者它不知怎么坏了 至于你的形象,你应该使用一个从 关于CUDA图书馆 是NVIDIA的并行计算平台和GPU编程模型。你在你的集群中安装的英伟达设备驱动程序包括.< CUDA库和调试实用程序在容器中分别位于/usr/local/nvidia/lib64和/usr/local/nvidia/bin 在使用NVIDIA GPU的POD中运行的CUDA应用程序需要动态发现CUDA库。这需要在LD_LIBRARY_PATH环境变量中包含/usr/local/nvidia/lib64 您应该在GKE中为CUDA应用程序使用,其中LD_LIBRARY_PATH已被适当设置。支持的最新CUDA版本是9.0 Kubernetes上缺少libcuda.so库的问题通常与使用不正确的容器映像来运行GPU工作负载有关。考虑到您已经在使用CUDA docker映像,请尝试将CUDA版本更改为与您的工作负载兼容的版本。我遇到了需要10.0抛出CUDA9.0基本映像中找不到的库的工作负载问题 大多数云提供商使用containerd/Docker来运行其CPU工作负载,而nvidia Docker则提供GPU支持。英伟达码头是一个薄层,在英伟达司机的顶部运行,是CUDA不可知论者。所有CUDA库文件和资源仅包含在您的容器中
希望这有帮助 您正面临这个问题,因为您尚未在集群上安装CUDA驱动程序。请按照本手册中的安装驱动程序部分操作。要验证安装,可以运行此命令并进行检查
kubectl logs -n kube-system ds/nvidia-driver-installer -c nvidia-driver-installer
行。我使用了cuda 9.0,因为他们在Crou引用的文档中提到最新支持的版本是cuda 9.0。您是否可以共享您的应用程序Dockerfile和应用程序pod/daemonset/deployment YAML?