如何搭建DeepSeek R1的训推环境?

本篇文章主要介绍基于Linux系统的Tesla A30 GPU的硬件环境搭建深度学习环境,为训练和推理DeepSeek R1 提供必要的环境,篇幅最后也会介绍到MIG的一些常见报错解决方案。

Anaconda安装

  1. 进入 https://www.anaconda.com/download/success 选择Linux安装包。

  1. 右键复制下载链接:https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
  2. 通过命令行下载:
wget https://repo.anaconda.com/archive/Anaconda3-2024.06-1-Linux-x86_64.sh
  1. 运行并安装:
bash Anaconda3-2023.09-0-Linux-x86_64.sh

(可选)如果没有运行权限,需要加运行权限

sudo chomod +x Anaconda3-2023.09-0-Linux-x86_64.sh
  1. 通过source初始化对应路径下的conda
source ~/anaconda3/bin/activate
conda init
  1. 创建虚拟环境(建议python=3.10)
conda create -n your_name python=3.10

CUDA-driver & CUDA-toolkit & Pytorch安装

安装driver

进入网址:https://www.nvidia.com/en-us/drivers/
选择对应的版本安装

右键复制download的链接,https://cn.download.nvidia.com/tesla/560.35.03/nvidia-driver-local-repo-ubuntu2204-560.35.03_1.0-1_amd64.deb

在Linux内下载:

wget https://cn.download.nvidia.com/tesla/560.35.03/nvidia-driver-local-repo-ubuntu2204-560.35.03_1.0-1_amd64.deb
sudo dpkg -i nvidia-driver-local-repo-ubuntu2204-560.35.03_1.0-1_amd64.deb
sudo apt-get install cuda

安装过程非常漫长,如果中途断网输入:

sudo apt-get install cuda  --fix-missing

把错配的显卡驱动(老版本)清理干净

sudo apt-get --purge remove nvidia-*

验证

nvidia-smi

安装toolkit

进入网址https://developer.nvidia.com/cuda-downloads
选择对应的操作系统、架构、版本进行安装

wget https://developer.download.nvidia.com/compute/cuda/12.6.1/local_installers/cuda_12.6.1_560.35.03_linux.runsudo 
sh cuda_12.6.1_560.35.03_linux.run

更新环境变量
vim ~/.bashrc

export PATH=/usr/local/cuda-12.6/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-12.6/lib64:$LD_LIBRARY_PATH

注意:cuda-12.6需要根据自己下载的cuda版本进行更换,这里是最新的12.6。
source ~/.bashrc
更新更改的内容

#验证
nvcc -V

Pytorch安装

进入网址:https://pytorch.org/get-started/locally/

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

这里如果用不到torchvisiontorchaudio,可以使用如下命令,避免等待时间过长

pip3 install torch --index-url https://download.pytorch.org/whl/cu124

通过Python代码中进行验证

import torch
torch.cuda.is_available()# 返回True
torch.cuda.device_count()
# 返回正确数量

至此,环境已经安装成功。但对于服务器,还得额外注意MIG的问题

MIG相关

如果MIG显示N/A表示没有开启MIG。但如果存在enable和disable的情况,需要额外注意:

#disable->enable
nvidia-smi -i <GPU IDs> -mig 1
#enable->disable
nvidia-smi -i <GPU IDs> -mig 0

MIG的基本操作

MIG的shell操作主要包括:查看命令、创建命令和删除命令。MIG的操作都要用root权限,所以如果是非root用户,操作命令要加上sudo字符,下面操作示例中默认用户是root

首先将这些操作例出来,然后对一些创建与删除操作进行讲解。

注意:使用MIG无法使用并行训练、推理,最好关闭。

  • 一个进程中只有一个 MIG 实例可见。这是 CUDA 限制,与 PyTorch 无关。
  • 这意味着不能在 PyTorch 上使用两个 MIG GPU 进行模型推理过程。

MIG的操作顺序概况为:
功能MIG -> 创建GI实例 -> 创建CI实例 -> 删除CI实例 -> 删除GI实例 -> 关闭MIG。

在分区 GPU 上运行任何 MIG 工作负载之前,启用 CUDA 模式,然后对 A30 进行分区。要划分 A30 ,请创建 GPU 实例,然后创建相应的计算实例。

下面是如果存在MIG,如何找到其配置文件进行修改的办法:

  • 代表的含义
    disable 后面的星号(*)通常表示该功能或选项的当前状态是禁用的。
#检查 GPU 的当前 MIG 状态
nvidia-smi -i <GPU_ID> -q | grep MIG
#启用MIG
sudo nvidia-smi -i <GPU_ID> -mig 1
#重启GPU
sudo nvidia-smi -i <GPU_ID> --gpu-reset

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/14986.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

模型压缩 --学习记录2

模型压缩 --学习记录2 如何找到更好的权衡方式(模型量化)方法一:寻找更好的 range方法二:寻找更好的 X-fp32(浮点数)方法三:寻找更好的 scale 和 zp方法四:寻找更好的 roundPTQ 后训练量化(离线量化)QAT 量化感知训练(在线量化)量化为什么会带来加速?三、模型稀疏技…

Unity3D仿星露谷物语开发28之切换场景

1、目标 Player可以在Scene1_Farm和Scene2_Field之间自动切换。通过Trigger实现该功能。同时创建一个预设体绑定该功能&#xff0c;这样可以把预设体放到任何场景中&#xff0c;通过配置即可实现Player在Scene之间的自由切换。 2、创建场景切换的工具对象 在Hierarchy中&…

Maven插件—flatten-maven-plugin:工程模块统一版本依赖

文章目录 前言一、认识flatten-maven-plugin插件二、如何使用flatten-maven-plugin插件&#xff1f;未使用flatten-maven-plugin插件之前的情况描述配置flatten-maven-plugin插件步骤1&#xff1a;最外层父模块安装插件&配置版本变量步骤2&#xff1a;各个自模块使用版本使…

并查集题目

并查集题目 聚合一块&#xff08;蓝桥&#xff09;合根植物&#xff08;蓝桥&#xff09;等式方程的可满足性省份数量 并查集&#xff08;Union-Find&#xff09;算法是一个专门针对「动态连通性」的算法。双方向的连通。 模板&#xff1a; class UF {// 连通分量个数private …

【玩转 Postman 接口测试与开发2_019】第15章:利用 Postman 初探 API 性能测试(含实战截图)

《API Testing and Development with Postman》最新第二版封面 文章目录 第十五章 API 接口性能测试1 性能负载的类型2 Postman 负载配置3 Postman 性能测试实战3.1 Fixed 型负载下的性能测试3.2 基于数据驱动的 Postman 接口性能测试 4 性能测试的注意事项 写在前面 终于来到了…

Linux(20)——调度作业

目录 一、调度延迟的用户作业&#xff1a; 1、延迟的用户作业&#xff1a; 2、查看延迟的用户作业&#xff1a; 3、从计划中删除作业&#xff1a; 二、调度周期性用户作业&#xff1a; 1、周期性用户作业&#xff1a; 2、调度周期性用户作业&#xff1a; 3、用户作业格…

在 Visual Studio Code 与微信开发者工具中调试使用 emscripten 基于 C 生成的 WASM 代码

最近在尝试将一些 C/C、Lua 项目挪到 Web 上跑, 接触到了 emscripten. 这里会介绍下在 Visual Studio Code 与微信开发者工具中调试使用 emscripten 基于 C 生成的 WASM 代码 (WebAssembly) 的一些方法. Emscripten 与 WebAssebmly WebAssembly 是一种新的编码方式, 可以在现代…

deepseek API开发简介

1、申请deepseek api key&#xff1a; https://platform.deepseek.com/api_keys创建API Key&#xff0c;并复制Key 2、安装python、pip&#xff0c;然后安装requests pip install requests3、.示例代码 import requests import json# DeepSeek API 地址 API_URL "ht…

uniapp开发微信小程序请求超时设置【亲测有效】

在Hbuilderx中 使用uniapp开发微信小程序时 封装请求方法 请求代码如下 function requestFun(app) {// get请求app.config.globalProperties._get function(path, data, success, fail, complete) {data data || {};data.token uni.getStorageSync(token) || ;uni.request…

【03】 区块链分布式网络

3-1 P2P网络 传统中心化网络由中央服务器保存全量数据。客户端之间无法直接连接&#xff0c;必须通过中央服务器作为桥梁。客户端必须和中央服务器建立连接后访问资源。客户端之间并无连通。 在P2P网络中通过将数据资源分散在网络各个节点中存储以及节点间交互连接&#xff0…

DeepSeek-R1 论文解析——人工智能领域的 RL LLM 新时代?

简介 最近几年&#xff0c;AI领域真是突飞猛进&#xff0c;尤其是大型语言模型&#xff08;LLM&#xff09;&#xff0c;它们为通用人工智能&#xff08;AGI&#xff09;的发展打下了基础。OpenAI的o1模型就是个很好的例子&#xff0c;它用了一种创新的推理时间扩展技术&#…

第七节 文件与流

基本的输入输出&#xff08;iostream&#xff09; C标准库提供了一组丰富的输入/输出功能&#xff0c;C的I/O发生在流中&#xff0c;流是字节序列。如果字节流是从设备&#xff08;键盘、磁盘驱动器、网络连接等&#xff09;流向内存&#xff0c;叫做输入操作。如果字节流是从…

算法篇——动态规划

核心思想&#xff1a; 将问题分解为重叠的子问题&#xff0c;并储存子问题的解&#xff08;使用字典、数组或哈希表&#xff09;&#xff0c;避免重复计算&#xff0c;从而提高效率。 题目特点&#xff1a;重叠子问题&#xff08;特殊地&#xff0c;是最优子结构&#xff09; …

redis高级数据结构Stream

文章目录 背景stream概述消息 ID消息内容常见操作独立消费创建消费组消费 Stream弊端Stream 消息太多怎么办?消息如果忘记 ACK 会怎样?PEL 如何避免消息丢失?分区 Partition Stream 的高可用总结 背景 为了解决list作为消息队列是无法支持消息多播问题&#xff0c;Redis5.0…

ASP.NET Core WebSocket、SignalR

目录 WebSocket SignalR SignalR的基本使用 WebSocket WebSocket基于TCP协议&#xff0c;支持二进制通信&#xff0c;双工通信。性能和并发能力更强。WebSocket独立于HTTP协议&#xff0c;不过我们一般仍然把WebSocket服务器端部署到Web服务器上&#xff0c;因为可以借助HT…

多路文件IO

一、思维导图

在CT107D单片机综合训练平台上,8个数码管分别单独依次显示0~9的值,然后所有数码管一起同时显示0~F的值,如此往复。

题目&#xff1a;在CT107D单片机综合训练平台上&#xff0c;8个数码管分别单独依次显示0~9的值&#xff0c;然后所有数码管一起同时显示0~F的值&#xff0c;如此往复。 延时函数分析LED首先实现8个数码管单独依次显示0~9的数字所有数码管一起同时显示0~F的值&#xff0c;如此往…

小红书提出新面部视频交换方法DynamicFace,可生成高质量且一致的视频面部图像。

DynamicFace是一种新颖的面部视频交换方法&#xff0c;旨在生成高质量且一致的视频面部图像。该方法结合了扩散模型的强大能力和可插拔的时间层&#xff0c;以解决传统面部交换技术面临的两个主要挑战&#xff1a;在保持源面部身份的同时&#xff0c;准确传递目标面部的运动信息…

2025.2.9机器学习笔记:PINN文献阅读

2025.2.9周报 文献阅读题目信息摘要Abstract创新点网络架构实验结论缺点以及后续展望 文献阅读 题目信息 题目&#xff1a; GPT-PINN:Generative Pre-Trained Physics-Informed Neural Networks toward non-intrusive Meta-learning of parametric PDEs期刊&#xff1a; Fini…

天津三石峰科技——汽车生产厂的设备振动检测项目案例

汽车产线有很多传动设备需要长期在线运行&#xff0c;会出现老化、疲劳、磨损等 问题&#xff0c;为了避免意外停机造成损失&#xff0c;需要加装一些健康监测设备&#xff0c;监测设备运 行状态。天津三石峰科技采用 12 通道振动信号采集卡&#xff08;下图 1&#xff09;对…