ubuntu服务器安装cuda11.0、cuDNN入门教程

在 Ubuntu 服务器上安装 CUDA 11.0 和 cuDNN 的详细教程如下。本教程涵盖了从环境准备到安装和验证的完整流程,适用于初学者。

一、环境准备

1. 系统要求

  • 操作系统:Ubuntu 18.04 或 20.04
  • GPU:NVIDIA GPU,支持 CUDA 11.0(如 Tesla、GeForce RTX 系列等)
  • 权限:需要 sudo 权限
  • 驱动程序:NVIDIA 驱动需支持 CUDA 11.0

2. 卸载旧版本(如有)

清理可能存在的旧版本 CUDA 和 NVIDIA 驱动:

sudo apt-get --purge remove "*nvidia*"
sudo apt-get autoremove
sudo apt-get autoclean

二、安装 NVIDIA 驱动

1. 检查 GPU 支持情况

使用 lspcinvidia-smi 确认是否已安装支持的 GPU:

lspci | grep -i nvidia

如果 nvidia-smi 已输出驱动信息,则 NVIDIA 驱动已安装,可以跳过驱动安装部分。

2. 安装 NVIDIA 驱动

安装合适的 NVIDIA 驱动:

sudo apt update
sudo apt install -y nvidia-driver-450

说明nvidia-driver-450 是支持 CUDA 11.0 的推荐驱动版本。

重启服务器以使驱动生效:

sudo reboot

验证驱动是否正常:

nvidia-smi

三、安装 CUDA 11.0

1. 下载 CUDA Toolkit 11.0

访问 NVIDIA CUDA Toolkit Archive,选择 CUDA Toolkit 11.0,并下载对应的 Debian 文件

直接下载命令:

wget https://developer.download.nvidia.com/compute/cuda/11.0.3/local_installers/cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb

2. 安装 CUDA

  1. 添加 CUDA 本地仓库:
sudo dpkg -i cuda-repo-ubuntu2004-11-0-local_11.0.3-450.51.06-1_amd64.deb
sudo apt-key add /var/cuda-repo-ubuntu2004-11-0-local/7fa2af80.pub

2. 更新并安装 CUDA:

sudo apt update
sudo apt install -y cuda

3. 配置环境变量

将 CUDA 的路径添加到系统变量:

echo 'export PATH=/usr/local/cuda-11.0/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/usr/local/cuda-11.0/lib64:$LD_LIBRARY_PATH' >> ~/.bashrc
source ~/.bashrc

4. 验证 CUDA 安装

运行以下命令查看 CUDA 版本:

nvcc --version

输出示例:

Cuda compilation tools, release 11.0, V11.0.221

四、安装 cuDNN

1. 下载 cuDNN

访问 NVIDIA cuDNN 下载页面,选择与 CUDA 11.0 兼容的版本(如 cuDNN 8.x)。

需要登录 NVIDIA 开发者账户后下载。

直接下载(假设文件名为 cudnn-11.0-linux-x64-v8.0.4.30.tgz):

wget https://developer.download.nvidia.com/compute/machine-learning/cudnn/secure/8.0.4/11.0_20200826/cudnn-11.0-linux-x64-v8.0.4.30.tgz

2. 解压并安装 cuDNN

  1. 解压文件:
tar -xzvf cudnn-11.0-linux-x64-v8.0.4.30.tgz

2. 将库文件复制到 CUDA 的目录:

sudo cp cuda/include/cudnn*.h /usr/local/cuda-11.0/include/
sudo cp cuda/lib64/libcudnn* /usr/local/cuda-11.0/lib64/
sudo chmod a+r /usr/local/cuda-11.0/include/cudnn*.h /usr/local/cuda-11.0/lib64/libcudnn*

3. 验证 cuDNN 安装

运行以下命令验证 cuDNN 版本:

cat /usr/local/cuda-11.0/include/cudnn_version.h | grep CUDNN_MAJOR -A 2

输出示例:

#define CUDNN_MAJOR 8
#define CUDNN_MINOR 0
#define CUDNN_PATCHLEVEL 4

五、测试 CUDA 和 cuDNN

1. CUDA 示例测试

  1. 进入 CUDA 示例程序目录:
cd /usr/local/cuda-11.0/samples/1_Utilities/deviceQuery

2. 编译示例程序:

sudo make
3. 运行测试:
./deviceQuery

输出示例:

Result = PASS

2. cuDNN 示例测试

下载 cuDNN 示例程序或编写简单代码调用 cuDNN API,测试其功能。

六、常见问题排查

  1. nvccdeviceQuery 无法找到:
    • 确认 CUDA 路径已正确配置。
    • 检查 /usr/local/cuda-11.0/bin 是否存在。
  2. nvidia-smi 无法识别 GPU:
    • 确保 NVIDIA 驱动已正确安装并匹配 GPU 型号。
    • 尝试重装驱动。
  3. cuDNN 版本不兼容:
    • 确认下载的 cuDNN 版本与 CUDA 11.0 兼容。

七、总结

通过上述步骤,你已经成功在 Ubuntu 服务器上安装了 CUDA 11.0 和 cuDNN,并验证了其功能。接下来,你可以使用这些工具进行深度学习模型的训练和开发。若有其他问题,可以随时提问!

发布者:myrgd,转载请注明出处:https://www.object-c.cn/4423

Like (0)
Previous 2024年11月22日 下午7:33
Next 2024年11月23日 下午1:49

相关推荐

  • 在 MySQL 中 utf8mb4 和 utf8mb3 两种 UTF-8 编码的字符集主要区别

    在 MySQL 中,utf8mb4 和 utf8mb3 是两种 UTF-8 编码的字符集,它们的主要区别如下:1. 支持的字符范围不同utf8mb3:原来的 UTF-8 编码实现,支持最多 3 个字节的字符。无法存储超出基本多语言平面 (BMP) 的 Unicode 字符(U+10000 至 U+10FFFF),例如某些表情符号和特殊的语言字符。主要用于存储…

    2024年12月3日
    00
  • 在 Ant Design ProTable 中,如何设置不分页,依然显示分页信息,前端分页不触发

    在 Ant Design ProTable 中,默认情况下,分页是与数据请求(request)相关联的。也就是说,每当分页切换时,request 会被触发,重新请求新的数据。如果你希望在禁用分页的同时,依然显示分页控件,并且不触发 request 请求,可以通过以下方法进行配置。解决方案要在 Ant Design ProTable 中禁用分页的同时保留分页信…

    2024年11月29日
    00
  • Redis中如何使用lua脚本redis与lua的相互调用方法

    在 Redis 中,Lua 脚本 提供了一种强大的方式来执行原子操作,可以在 Redis 服务器上直接执行 Lua 代码,从而避免了多次网络往返和保证操作的原子性。Redis 内置了对 Lua 脚本的支持,通过 EVAL 命令来执行脚本,EVALSHA 则用于执行已经加载到 Redis 服务器的脚本。1. Redis 与 Lua 脚本的基本交互1.1 基本的…

    2024年11月28日
    00
  • 在 Debian 8 上设置 Apache 虚拟主机步骤操作

    在 Debian 8 上设置 Apache 虚拟主机需要按照以下步骤操作。这可以让您为不同的域名或子域名配置独立的网站目录和设置。 步骤 1:安装 Apache确保 Apache 已安装。如果没有安装,可以运行以下命令: 步骤 2:创建虚拟主机的目录结构为每个虚拟主机创建单独的目录,例如: 为测试,在每个目录下创建一个 index.html 文件: 设置目录…

    2024年12月2日
    00
  • STM32 的串口(RS485)数据收发通信模式

    STM32 的串口(RS485)数据收发需要使用 RS485 协议,这是一种常用于工业设备和长距离通信的串行通讯标准。RS485 支持半双工通信,即数据可以在同一线路上进行收发。STM32 支持通过 UART 串口来配置 RS485 模式,利用硬件流控制进行数据收发。以下是实现 STM32 与 RS485 数据收发的基本步骤。 1. 硬件连接 RS485 与…

    2024年11月25日
    00
  • 本地部署VMware ESXi服务并实现实现无公网IP远程访问服务器

    要在本地部署 VMware ESXi 服务,并实现无公网 IP 的情况下远程访问和管理 ESXi 服务器,您可以通过以下几种方法来完成。这些方法包括使用 VPN、反向代理、NAT(端口转发)等方式。下面是具体步骤和建议。 1. 使用 VPN(虚拟私人网络)访问 通过 VPN 将远程客户端与本地网络连接,从而可以通过局域网(LAN)访问 VMware ESXi…

    2024年11月24日
    00
  • 在 Apache Kafka 中消息的消费和传递通过消费者与 Kafka 的分布式系统协作完成

    在 Apache Kafka 中,消息的消费和传递是通过消费者(Consumer)与 Kafka 的分布式系统协作完成的。以下是消息传递的主要流程: 1. Producer 生产消息到 Kafka 2. Consumer 消费消息 Kafka 中消费者的消息消费流程如下: 2.1 订阅主题 消费者通过 Kafka 客户端订阅一个或多个主题。它可以: 2.2 …

    2024年12月9日
    00
  • 安装 Laravel 11 + Filament 详细教程

    安装Laravel 11之前选确保安装了Composer 管理器,接下来的步骤是通过Composer 包管理器安装完成的。 一、前提条件 二、使用 Composer 创建新的 Laravel 11 项目 三、在现有项目中添加 Laravel 11(如果是集成到现有项目) 请注意,在实际安装过程中,可能会遇到各种问题,如权限问题(在 Linux 下,如果没有足…

    2025年1月18日
    00
  • 高性能 TongRDS 是一种分布式内存数据缓存中间件

    TongRDS 是一种分布式内存数据缓存中间件,旨在为高性能、高并发的应用场景提供快速的数据访问解决方案。类似于 Redis 或 Memcached,TongRDS 的核心功能围绕内存数据存储和分布式特性展开,同时可能具备特定的优化或扩展能力。 以下是 TongRDS 的可能特性和应用场景总结: 1. 核心特性 分布式缓存架构 高性能存储 灵活的数据模型 扩…

    2024年12月3日
    00
  • 在 Ubuntu 20.04 上安装 CUDA (Compute Unified Device Architecture) 支持 NVIDIA GPU 的加速计算

    在 Ubuntu 20.04 上安装 CUDA (Compute Unified Device Architecture) 是为了支持 NVIDIA GPU 的加速计算。下面是详细的步骤,包括安装 CUDA、相关驱动以及 cuDNN(用于深度学习的库)。 步骤 1:检查系统要求 步骤 2:安装 NVIDIA 驱动 2. 添加 NVIDIA PPA: 你可以使…

    2024年11月24日
    00
  • 部署 Harbor 时,如果运行 install 脚本报错可能导致问题的

    在部署 Harbor 时,如果运行 install 脚本报错,可能是网络问题导致的。以下是排查网络问题的方法: 1. 检查网络连通性 测试目标网络的连通性: 检查 DNS 配置: 如果解析失败,检查 /etc/resolv.conf 中的 DNS 配置,或者尝试手动指定公共 DNS,如 Google 的 8.8.8.8 或阿里云的 223.5.5.5。 2.…

    2024年12月9日
    00
  • 使用 Redis 和 Spring Cache 实现基于注解的缓存功能

    Spring Cache 提供了一种简单的方法来通过注解对方法的返回结果进行缓存。结合 Redis,可以构建一个高效的分布式缓存解决方案。以下是详细实现步骤: 1. 引入必要的依赖在 pom.xml 文件中添加以下依赖(适用于 Spring Boot 项目): 2. 配置 Redis在 application.yml 或 application.proper…

    2024年12月1日
    00
  • 使用 Python 和 PyHive 连接 Hive 数据库需要安装相关依赖并配置好 Hive 服务

    使用 Python 和 PyHive 连接 Hive 数据库需要安装相关依赖并配置好 Hive 服务。以下是具体步骤:1. 安装依赖确保安装了以下库:PyHive:提供与 Hive 的交互。Thrift:支持 Hive 使用 Thrift 协议通信。Sasl:如果 Hive 使用 Kerberos 验证,需要安装此模块。Pyhive[Hive]:PyHive…

    2024年11月28日
    00
  • 通过 PHP 读取微软邮箱(Outlook/Office 365 邮箱)

    通过 PHP 读取微软邮箱(Outlook/Office 365 邮箱)邮件,通常需要使用 Microsoft Graph API,因为微软逐步淘汰了基于用户名和密码的 IMAP/SMTP 方式。Microsoft Graph API 支持 OAuth2.0 认证,可以安全地访问和管理用户邮件。 以下是实现读取微软邮箱邮件的完整示例。 实现步骤 1. 准备工…

    2024年11月25日
    00
  • Web实时通信和 @microsoft/signalr 微软开发的一款基于 SignalR 的实时通信库

    Web实时通信和 @microsoft/signalr@microsoft/signalr 是微软开发的一款基于 SignalR 的实时通信库,专为 Web 应用提供强大的实时通信功能。SignalR 的主要特点包括支持双向通信、自动选择传输协议(WebSockets、Server-Sent Events 或 Long Polling)以及简化的服务器与客户…

    2024年12月1日
    00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

在线咨询: QQ交谈

邮件:723923060@qq.com

关注微信