带有 CUDA 的 Pytorch 在 Ubuntu 上本地安装失败

2023-12-09

我正在尝试使用 CUDA 安装 PyTorch。 我按照中提到的说明(使用 conda 安装)进行操作https://pytorch.org/get-started/locally/

conda 安装 pytorch torchvision torchaudio cudatoolkit=11.3 -c 火炬

conda install 命令运行时不会出现任何错误:

康达名单显示以下内容:

# Name                    Version                   Build  Channel

cudatoolkit               11.3.1               h2bc3f7f_2
pytorch                   1.11.0          py3.9_cuda11.3_cudnn8.2.0_0    pytorch
pytorch-mutex             1.0                        cuda    pytorch
torch                     1.10.2                   pypi_0    pypi
torchaudio                0.11.0               py39_cu113    pytorch
torchvision               0.11.3                   pypi_0    pypi

但是当我检查 PyTorch 是否启用并访问 GPU 驱动程序和 CUDA 时

torch.cuda.is_available()

返回假。

在安装 Pytorch 之前,我检查并确认了中提到的先决条件

https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#system-requirements https://docs.nvidia.com/cuda/cuda-installation-guide-linux/index.html#pre-installation-actions

这是我的 ubuntu 服务器详细信息:

环境:

  • 操作系统/内核:

Ubuntu 18.04.6 LTS(GNU/Linux 4.15.0-154-通用 x86_64)

表下脚注:表 1. CUDA 11.6 中的本机 Linux 发行版支持 提及

对于 x86-64 上的 Ubuntu LTS,服务器 LTS 内核(例如 4.15.x 18.04)在 CUDA 11.6 中受支持。

  • GCC

gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0

  • GLIBC

ldd(Ubuntu GLIBC 2.27-3ubuntu1.5)2.27

GPU

GeForce GTX 1080 Ti

内核头文件和开发包

$ uname -r
4.15.0-176-generic

据我了解,使用 CUDA 安装 conda pytorch 也会安装 CUDA 驱动程序。

我不知道我哪里出错了。 提前致谢。

EDIT:

$ nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2017 NVIDIA Corporation
Built on Fri_Nov__3_21:07:56_CDT_2017
Cuda compilation tools, release 9.1, V9.1.85

nvcc显示 CUDA 版本 9.1

whereas

$ nvidia-smi
Wed May 11 06:44:31 2022
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 410.104      Driver Version: 410.104      CUDA Version: 10.0     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|===============================+======================+======================|
|   0  GeForce GTX 108...  Off  | 00000000:05:00.0 Off |                  N/A |
| 25%   40C    P8    11W / 250W |     18MiB / 11177MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   1  GeForce GTX 108...  Off  | 00000000:06:00.0 Off |                  N/A |
| 25%   40C    P8    11W / 250W |      2MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+
|   2  GeForce GTX 108...  Off  | 00000000:09:00.0 Off |                  N/A |
| 25%   35C    P8    11W / 250W |      2MiB / 11178MiB |      0%      Default |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                       GPU Memory |
|  GPU       PID   Type   Process name                             Usage      |
|=============================================================================|
|    0      4119      G   /usr/lib/xorg/Xorg                             9MiB |
|    0      4238      G   /usr/bin/gnome-shell                           6MiB |
+-----------------------------------------------------------------------------+

nvidia-smi显示 CUDA 版本 10.0

https://varhowto.com/check-cuda-version/本文提到 nvcc 指的是 CUDA-toolkit,而nvidia-smi指 NVIDIA 驱动程序。

Q1:这是否表明在系统范围内有两种不同的 CUDA 安装?

Nvidia Cudatoolkit 与 Conda Cudatoolkit我在 conda 环境中安装的 CUDA 工具包(版本 11.3.1)与作为系统范围级别安装的工具包不同(由以下输出显示)nvcc and nvidia-smi).

Q2:根据上述 stackoverflow 线程的回答,它们可以是分开的。还是我本地安装cuda失败的原因?


我已经解决了这个问题。

免责声明: 我是 CUDA 的新手。 以下答案基于a)我在其他线程中读到的内容b)我基于这些讨论的经验。

核心逻辑: CUDA 驱动程序版本 >= CUDA 运行时版本

参考:nvcc 和 NVIDIA-smi 显示的不同 CUDA 版本

在大多数情况下,如果 nvidia-smi 报告的 CUDA 版本是 数值等于或高于 nvcc -V 报告的数值,这 无需担心。这是定义的兼容性路径 CUDA(较新的驱动程序/驱动程序 API 支持“较旧的”CUDA 工具包/运行时 应用程序编程接口)。

当我使用 conda 的 cudatoolkit 时:

  • 驱动程序 API:nvidia-smi
  • 运行时 API:conda 的 cudatoolkit

For cuda工具包11.3.1,我用的是英伟达-SMICUDA版本:10.0

Solution: 升级 NVIDIA 驱动程序。

按照以下网址的说明升级了 NVIDIA 驱动程序https://linuxconfig.org/how-to-install-the-nvidia-drivers-on-ubuntu-18-04-bionic-beaver-linux

升级后,这是输出英伟达-SMI:

+-----------------------------------------------------------------------------+
| NVIDIA-SMI 470.103.01   Driver Version: 470.103.01   CUDA Version: 11.4     |
|-------------------------------+----------------------+----------------------+
| GPU  Name        Persistence-M| Bus-Id        Disp.A | Volatile Uncorr. ECC |
| Fan  Temp  Perf  Pwr:Usage/Cap|         Memory-Usage | GPU-Util  Compute M. |
|                               |                      |               MIG M. |
|===============================+======================+======================|
|   0  NVIDIA GeForce ...  Off  | 00000000:05:00.0 Off |                  N/A |
| 27%   46C    P8    12W / 250W |     19MiB / 11177MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   1  NVIDIA GeForce ...  Off  | 00000000:06:00.0 Off |                  N/A |
| 25%   44C    P8    11W / 250W |      2MiB / 11178MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+
|   2  NVIDIA GeForce ...  Off  | 00000000:09:00.0 Off |                  N/A |
| 25%   39C    P8    11W / 250W |      2MiB / 11178MiB |      0%      Default |
|                               |                      |                  N/A |
+-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
| Processes:                                                                  |
|  GPU   GI   CI        PID   Type   Process name                  GPU Memory |
|        ID   ID                                                   Usage      |
|=============================================================================|
|    0   N/A  N/A      3636      G   /usr/lib/xorg/Xorg                  9MiB |
|    0   N/A  N/A      4263      G   /usr/bin/gnome-shell                6MiB |
+-----------------------------------------------------------------------------+

现在驱动程序版本(11.4) >= 运行时版本(11.3.1)

PyTorch 现在可以将 CUDA 与 GPU 结合使用:

In [1]: import torch

In [2]: torch.cuda.is_available()
Out[2]: True
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 CUDA 的 Pytorch 在 Ubuntu 上本地安装失败 的相关文章

  • 使用 pythonbrew 编译 Python 3.2 和 2.7 时出现问题

    我正在尝试使用构建多个版本的 python蟒蛇酿造 http pypi python org pypi pythonbrew 0 7 3 但我遇到了一些测试失败 这是在运行的虚拟机上 Ubuntu 8 04 32 位 当我使用时会发生这种情
  • 通过 Scrapy 抓取 Google Analytics

    我一直在尝试使用 Scrapy 从 Google Analytics 获取一些数据 尽管我是一个完全的 Python 新手 但我已经取得了一些进展 我现在可以通过 Scrapy 登录 Google Analytics 但我需要发出 AJAX
  • 将 Matplotlib 误差线放置在不位于条形中心的位置

    我正在 Matplotlib 中生成带有错误栏的堆积条形图 不幸的是 某些层相对较小且数据多样 因此多个层的错误条可能重叠 从而使它们难以或无法读取 Example 有没有办法设置每个误差条的位置 即沿 x 轴移动它 以便重叠的线显示在彼此
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 根据列值突出显示数据框中的行?

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 如何从网页中嵌入的 Tableau 图表中抓取工具提示值

    我试图弄清楚是否有一种方法以及如何使用 python 从网页中的 Tableau 嵌入图形中抓取工具提示值 以下是当用户将鼠标悬停在条形上时带有工具提示的图表示例 我从要从中抓取的原始网页中获取了此网址 https covid19 colo
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • Python pickle:腌制对象不等于源对象

    我认为这是预期的行为 但想检查一下 也许找出原因 因为我所做的研究结果是空白 我有一个函数可以提取数据 创建自定义类的新实例 然后将其附加到列表中 该类仅包含变量 然后 我使用协议 2 作为二进制文件将该列表腌制到文件中 稍后我重新运行脚本
  • 如何加速Python中的N维区间树?

    考虑以下问题 给定一组n间隔和一组m浮点数 对于每个浮点数 确定包含该浮点数的区间子集 这个问题已经通过构建一个解决区间树 https en wikipedia org wiki Interval tree 或称为范围树或线段树 已经针对一
  • 在Python中获取文件描述符的位置

    比如说 我有一个原始数字文件描述符 我需要根据它获取文件中的当前位置 import os psutil some code that works with file lp lib open path to file p psutil Pro
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 类型错误:预期单个张量时的张量列表 - 将 const 与 tf.random_normal 一起使用时

    我有以下 TensorFlow 代码 tf constant tf random normal time step batch size 1 1 我正进入 状态TypeError List of Tensors when single Te
  • Conda SafetyError:文件大小不正确

    使用创建 Conda 环境时conda create n env name python 3 6 我收到以下警告 Preparing transaction done Verifying transaction SafetyError Th
  • 在 Qt 中自动调整标签文本大小 - 奇怪的行为

    在 Qt 中 我有一个复合小部件 它由排列在 QBoxLayouts 内的多个 QLabels 组成 当小部件调整大小时 我希望标签文本缩放以填充标签区域 并且我已经在 resizeEvent 中实现了文本大小的调整 这可行 但似乎发生了某
  • Rocket UniData/UniVerse:ODBC 无法分配足够的内存

    每当我尝试使用pyodbc连接到 Rocket UniData UniVerse 数据时我不断遇到错误 pyodbc Error 00000 00000 Rocket U2 U2ODBC 0302810 Unable to allocate
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di
  • Python Selenium:如何在文本文件中打印网站上的值?

    我正在尝试编写一个脚本 该脚本将从 tulsaspca org 网站获取以下 6 个值并将其打印在 txt 文件中 最终输出应该是 905 4896 7105 23194 1004 42000 放置的动物 的 HTML span class

随机推荐

  • 4xN 多米诺骨牌的组合数量

    我想找到 4 x N 区域 4 个单位宽度和 N 个单位高度 N 1 多米诺骨牌砖的可能不同组合的数量使用动态规划 多米诺骨牌的尺寸为 2x1 例如 对于水平和 对于垂直砖 Now 示例 4x1 两块多米诺骨牌叠在一起 4x2 砖块配置示例
  • 强制横向应用程序遇到困难

    我有两个应用程序 它们都强制用户在横向模式下使用 iPhone 以获得更宽的屏幕 而不是更高的屏幕 我发现的一件事是 我的第一个视图看起来不错 但所有其他视图都会将其子视图 UIButtons UIPicker UIViews 挤压到一侧或
  • 如何覆盖宽度属性?

    我怎样才能覆盖CSSwidth以便竞争widthHTML 属性定义了计算的大小 下面的示例以 500px 的宽度渲染 但我想要 100px 假设 css 规则无法更改 只是被更强的规则掩盖 编辑以澄清 我不想在内联或其他地方设置显式大小 i
  • 如何在 css 中使用@keyframes 进行交叉淡入淡出图像库?

    我有一个fiddle 小提琴A 其中 2 个图像 2 个图块 发生图像交叉淡入淡出图库 这是我使用过的 html css 片段 div class featured block style display flex a href https
  • 普通类型和匿名类型有什么区别?

    C 中的普通类型和匿名类型在编译过程和运行时内存管理方面有什么区别 匿名类型在某些方面是否比普通类型更加低效 From MSDN 匿名类型提供一种方便的方法来封装一组 将只读属性放入单个对象中 而无需首先 明确定义一个类型 类型名称由编译器
  • 使用 jQuery Validate 插件确保至少选中三个复选框之一

    使用 jQuery Validate 插件 我如何确保至少三个复选框之一已被选中 到目前为止 我能做的最好的事情就是使所有三个复选框成为必需的 这不是我想要的 我的代码如下 我尝试使用这个例子在 jQuery Validate 演示页面上
  • httr POST 请求正文中的数组

    这个curl调用可以在Digital Ocean上创建一个新的droplet curl X POST https api digitalocean com v2 droplets d name test3 region nyc2 size
  • mousePressed 中的 glReadPixels

    我试图在用户单击 JOGL 时获取像素的颜色 如果我将以下代码放入显示方法中 来自GLEventListener 效果很好 FloatBuffer buffer FloatBuffer allocate 4 gl glReadBuffer
  • 将 varchar 值“%”转换为数据类型 int 时转换失败

    我创建了一个过程并收到了这条消息 将 varchar 值 转换为数据类型 int 时转换失败 create procedure consultarEquipo id varchar 10 marca varchar 20 year int
  • Spring:获取 ManyToOne 实体时,参考实体 (OneToMany) 未显示在 JSON 中

    当我在 POSTMAN 中发送 GET 请求以获取所有子实体 城镇 时 父实体 省 不会显示在 JSON 响应中 这是我的控制器 RequestMapping value api v1 town method RequestMethod G
  • 从驱动程序创建进程

    有没有办法在Windows NT平台 XP W7 上从内核模式创建用户模式进程 编辑 我必须只安装驱动程序 这是该项目的具体情况 要创建有效的 win32 进程 驱动程序必须与 CSRSS 通信 完全未记录 因此 我最终对用户模式 APC
  • 优化 Postgres 对时间戳范围的查询

    我定义了下表和索引 CREATE TABLE ticket wid bigint NOT NULL DEFAULT nextval tickets id seq regclass eid bigint created timestamp w
  • 在 Clojure 中喜结良缘:没有(显式的、丑陋的)突变的循环引用?

    在我的回答中Clojure 理解示例我有一个处理自己的输出的函数 defn stream seed defn helper slow concat map str first slow seed lazy seq helper rest s
  • Google 地球 KML 中的文本叠加

    我想添加 KML 文件上次更新的日期 时间 以便在 Google 地球中显示为覆盖图 无论如何可以做到这一点吗 我会考虑更新 KML 文件中的文本 然后将其显示在谷歌地球中 非常感谢 一个技巧是使用谷歌图表API从文本动态创建图像并将其用作
  • C# MySQL 错误“列计数与第 1 行的值计数不匹配”

    Query SQL MySqlCommand command1 new MySqlCommand INSERT INTO Equipamento equipamento situacao modelo nr serie avaria est
  • 如何使用 EF6 Code First 将外键属性公开给具有导航属性的现有实体

    我有一个已经与底层数据库一起使用的实体 并且它是使用可选实体 1 0 1 的导航属性创建的 因此 按照默认约定 EF 在数据库中创建了一个可为空的外键列 并根据该约定为其指定了带下划线的 MyProp Id 名称 现在 我希望将该外键公开为
  • 在 bash 脚本中使用 grep 在日志文件上使用 tail -f

    我想创建一个脚本来查找正在写入的日志文件中的特定字符串 我想获取第一个结果并将其放入变量中以供以后使用 这将通过 SSH 连接使用 如下所示 ssh email protected bash s lt usr local bin check
  • 默认情况下使用 uuid 时 Cassandra TimeUUID 泛洪文件描述符

    我有 Cassandra 模型 import uuid from cassandra cqlengine import columns from cassandra cqlengine models import Model class M
  • 如何使用 24 位位图的 ScanLine 属性?

    如何使用ScanLine24 位位图像素操作的属性 为什么我应该更喜欢使用它而不是经常使用Pixels财产 一 简介 在这篇文章中我将尝试解释ScanLine属性用法仅适用于 24 位位图像素格式以及您是否确实需要使用它 首先来看看是什么让
  • 带有 CUDA 的 Pytorch 在 Ubuntu 上本地安装失败

    我正在尝试使用 CUDA 安装 PyTorch 我按照中提到的说明 使用 conda 安装 进行操作https pytorch org get started locally conda 安装 pytorch torchvision tor