centos7 上安装cuda失败

centos7 上安装cuda失败

按照此处的说明安装 cuda: https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html

例如

$ sudo yum groupinstall "Development tools"
$ sudo yum install kernel-devel-$(uname -r) kernel-headers-$(uname -r)
$ wget https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/cuda-repo-rhel7-10.0.130-1.x86_64.rpm
$ sudo rpm -i cuda-repo-rhel7-10.0.130-1.x86_64.rpm
$ sudo yum clean expire-cache
$ sudo yum install cuda

“yum install cuda”出现以下错误:

Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd-gles(x86-64) >= 0.2
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd-egl(x86-64) >= 0.2
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd-opengl(x86-64) >= 0.2
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd-glx(x86-64) >= 0.2
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd(x86-64) >= 0.2
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

我在 Google Cloud 中运行一个虚拟机,其中连接了 2 个 K80。我以前使用过这个公式,没有问题。似乎有些事情发生了变化。

更新:我可以确认 cuda 10 rpm 可以在 RHEL 7.5 上运行,而 Centos 7 上的 cuda 7.0 rpm 也不能在 Centos 7 上运行。 https://developer.download.nvidia.com/compute/cuda/repos/rhel7/x86_64/

答案1

此驱动程序需要 RHEL 7.6 文件。据我所知,Centos 7.6 仍未发布,因此要更新到 410;您需要等待 Centos 7.6,更新并安装驱动程序 :-)

希望这可以帮助。

答案2

从已经安装了 cuda 库和 nvidia 驱动程序的 Centos 7 系统来看,libglvnd-*packages 似乎来自 epel。

$ yum info libglvnd-gles
...
Installed Packages
Name        : libglvnd-gles
Arch        : x86_64
Epoch       : 1
Version     : 1.0.1
Release     : 0.1.git5baa1e5.el7
Size        : 118 k
Repo        : installed
From repo   : epel
Summary     : GLES support for libglvnd
URL         : https://github.com/NVIDIA/libglvnd
License     : MIT
Description : libGLESv[12] are the common dispatch interface for the GLES API.

然而,它似乎已从 epel 中删除。在 rhel 7 中,它位于不同的 repo 中。

$ yum info libglvnd-gles
...
Name        : libglvnd-gles
Arch        : x86_64
Epoch       : 1
Version     : 1.0.1
Release     : 0.8.git5baa1e5.el7
Size        : 34 k
Repo        : rhui-rhel-7-server-rhui-rpms/7Server/x86_64
Summary     : GLES support for libglvnd
URL         : https://github.com/NVIDIA/libglvnd
License     : MIT
Description : libGLESv[12] are the common dispatch interface for the GLES API.

我发现使用运行文件,而不是 rpm,在 Centos 7.5 中确实有效。

更新:发生了一些事情并且 rpm 安装现在可以正常工作。

$ yum info libglvnd-gles
...
Installed Packages
Name        : libglvnd-gles
Arch        : x86_64
Epoch       : 1
Version     : 1.0.1
Release     : 0.6.git5baa1e5.el7
Size        : 118 k
Repo        : installed
From repo   : cuda
Summary     : GLES support for libglvnd
URL         : https://github.com/NVIDIA/libglvnd
License     : MIT
Description : libGLESv[12] are the common dispatch interface for the GLES API.

答案3

编辑 2018-11-26:我只是想更新这个答案,说 CentOS 现在已经升级到 7.6,并且yum update再次运行良好 - 依赖项已正确引入并且一切正常。这意味着您可以忽略我下面说的所有内容 :)


作为氧化物' 答案指出,似乎 Nvidia 的 repo 已更新至 RHEL 7.6 文件,但 CentOS 仍为 7.5,因此您必须等待他们更新。

补充一点信息,根据 RHEL 发布和 CentOS 发布之间的正常时间间隔,应该在一个月到一个半月内发布。例如,RHEL 7.5 于 4 月 10 日发布,而 CentOS 7.5 于 5 月 10 日发布。

同时,您可以尝试安装旧版本的驱动程序(我认为 390 仍然有效),但每次执行此操作时yum update都会出现如下错误:

--> Finished Dependency Resolution
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd-gles(x86-64) >= 0.2
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd-egl(x86-64) >= 0.2
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd-opengl(x86-64) >= 0.2
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd-glx(x86-64) >= 0.2
Error: Package: 3:nvidia-driver-libs-410.72-1.el7.x86_64 (cuda)
           Requires: libglvnd(x86-64) >= 0.2
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest

--skip-broken标志将允许您继续进行更新,但(至少在我的情况下)由于依赖关系,它留下了近 100 个软件包:

Transaction Summary
=========================================================================================
Install                         2 Packages (+7 Dependent packages)
Upgrade                        49 Packages
Remove                          2 Packages
Skipped (dependency problems)  95 Packages

我想也有强制升级到 RHEL 7.6 的方法,但这似乎是个更糟糕的想法。

相关内容