Ubuntu 安装CUDA并使用Docker配置Pytorch环境

ops/2024/10/15 20:16:45/

文章目录

  • 参考
  • 安装顺序
    • Nvidia GPU driver
    • Docker
    • Nvidia Container Toolkit
    • Docker PyTorch
  • 1. Nvidia GPU Driver
  • 2. Docker 安装(使用apt存储库进行安装)
  • 3. Nvidia Container Toolkit
    • 3.1 Docker测试GPU

参考

安装顺序

Nvidia GPU driver

Docker

Nvidia Container Toolkit

Docker PyTorch

1. Nvidia GPU Driver

Ubuntu/Linux 安装GPU 驱动&检测(PyTorch准备)

2. Docker 安装(使用apt存储库进行安装)

官网

在首次在新的主机上安装Docker Engine之前,您需要设置Docker存储库。之后,您可以从存储库安装和更新Docker。

  1. 设置Docker的apt存储库。
#添加Docker的官方GPG密钥:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc# 将存储库添加到Apt源中:
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
  1. 安装最新版
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  1. 安装检测“hello-world” container
# The --rm flag tells docker to remove the container once it's done.
docker run --rm hello-world

3. Nvidia Container Toolkit

Docker容器共享主机的内核,但是它们会带有自己的操作系统和软件包。这意味着它们缺少用于与GPU进行交互的NVIDIA驱动程序。默认情况下,Docker甚至不会将GPU添加到容器中,因此普通的Docker运行根本看不到您的硬件。

要使GPU正常工作,您必须在您的镜像中安装驱动程序,然后在运行时指示Docker向您的容器添加GPU设备。

在继续进行Docker配置之前,请确保通过运行 nvidia-smi 确保Nvidia驱动程序正常工作,您应该看到GPU的名称、驱动程序版本和CUDA版本。

您将在您的机器上添加NVIDIA容器工具包,以使您的docker容器能够使用您的GPU。这将集成到Docker Engine中,自动为您的容器配置GPU支持。

  1. 设置软件包存储库和GPG密钥:
distribution=$(. /etc/os-release;echo  $ID$VERSION_ID)  
curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -  
curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
  1. 在更新软件包列表后安装 nvidia-container-toolkit 软件包(及其依赖项)。
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
  1. 现在,配置Docker守护程序以识别NVIDIA容器运行时:
sudo nvidia-ctk runtime configure --runtime=docker
  1. 设置默认运行时后,重新启动Docker守护程序以完成安装:
sudo systemctl restart docker

到此为止,NVIDIA容器工具包已经启动运行,您可以测试其操作了。

3.1 Docker测试GPU

默认情况下,Docker不会提供系统的GPU,您需要使用 --gpus 标志创建容器,以便您的硬件显示出来。nvidia/cuda镜像预配置了CUDA二进制文件和GPU工具。

要检查Docker是否可以访问您的GPU,请启动一个容器并运行 nvidia-smi 命令。

输出应该与您在主机上使用 nvidia-smi 时看到的内容相匹配。
需按照nvidia-smi寻找CUDA版本可&自己Ubuntu版本。

sudo docker run -it --gpus all nvidia/cuda:12.2.0-base-ubuntu22.04 nvidia-smi

http://www.ppmy.cn/ops/120702.html

相关文章

滚雪球学MySQL[8.3讲]:数据库中的JSON与全文检索详解:从数据存储到全文索引的高效使用

全文目录: 前言8.3 JSON与全文检索1. JSON数据类型的使用1.1 JSON 数据类型概述1.2 JSON 数据的插入与查询1.3 JSON 常用函数与操作1.4 JSON使用的优缺点与性能考虑 2. 全文索引与全文检索2.1 全文索引概述2.2 全文检索的使用2.3 全文检索模式2.4 全文索引优化与性能…

简易CPU设计入门:取指令(三),ip_buf与rd_en的非阻塞赋值

在开篇,还是请大家首先准备好本项目所用的源代码。如果已经下载了,那就不用重复下载了。如果还没有下载,那么,请大家点击下方链接,来了解下载本项目的CPU源代码的方法。 下载本项目代码 准备好了项目源代码以后&…

cookies和session的区别?

Cookies 和 Session 是两种常用的会话管理机制,主要用于在无状态的 HTTP 协议中保持用户状态。它们各有不同的特性和使用场景,以下是它们的详细对比: 1. 存储位置 Cookies:存储在客户端浏览器中。每次客户端发起请求时&#xff…

mysql学习教程,从入门到精通,SQL 修改表(ALTER TABLE 语句)(29)

1、SQL 修改表(ALTER TABLE 语句) 在编写一个SQL的ALTER TABLE语句时,你需要明确你的目标是什么。ALTER TABLE语句用于在已存在的表上添加、删除或修改列和约束等。以下是一些常见的ALTER TABLE语句示例,这些示例展示了如何修改表…

【mod分享】极品飞车12无间风云高清重置mod,车模重构和材质贴图高清化

大家好,今天我要继续分享一款mod,这款mod是高清重置了极品飞车12无间风云。主要是修改了光晕,替换了很多原始车辆并且对它们进行高清化,同时还是高清化了赛道和部分建筑物,如果你是极品飞车12无间风云的粉丝&#xff0…

Linux:深入理解冯诺依曼结构与操作系统

目录 1. 冯诺依曼体系结构 1.1 结构分析 1.2 存储结构分布图 2. 操作系统 2.1 概念 2.2 如何管理 2.3 什么是系统调用和库函数 1. 冯诺依曼体系结构 1.1 结构分析 不管是何种计算机,如个人笔记本电脑,服务器,都是遵循冯诺依曼结构。…

基于深度学习的视频摘要生成

基于深度学习的视频摘要生成是一种通过自动化方式从长视频中提取关键片段,生成简洁且有代表性的视频摘要的技术。其目的是在保留视频主要内容的基础上,大幅缩短视频的播放时长,方便用户快速理解视频的核心信息。以下是视频摘要生成的主要方法…

C#的面向对象

1)对象 算法数据结构 2)对象的行为已方法的形式定义的,属性以成员变量的形式定义的 面向对象程序设计的特点 1)封装性 2)继承性 3)多态性 知识点: 封装性面向对象的核心思想,将…