百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

生产环境H200部署DeepSeek 671B 满血版全流程(一):系统初始化

liuian 2025-04-01 19:49 42 浏览

引言

NVIDIA H200凭借其141GB超大显存和高速NVLink技术,成为部署DeepSeek 671B 满血版的理想选择。然而,“工欲善其事,必先利其器”——在正式运行模型前,一套稳定、高效的服务器环境是成功的关键。 

许多开发者在部署大模型时,常因忽略系统配置细节(如驱动冲突、环境变量错误、多GPU通信异常)而踩坑。为此,本系列教程将从最基础的系统初始化开始,逐步拆解单机H200服务器部署DeepSeek 671B 满血版的完整链路,从零搭建高性能推理服务。 

一、环境准备

1.1 硬件配置

服务器数量CPU内存(TB)系统版本NVIDIA H200 141GB * 81INTEL 8568Y+ *23Ubuntu 22.04.5 LTS

1.2.系统环境

软件名称版本备注NVIDIA Driver550.54.15GPU驱动NVIDIA-Fabric Manager550.54.15NVSwitch互联CUDA12.4CudaNCCL2.21.5GPU多卡通信vLLM0.7.3LLM推理引擎SGLangv0.4.3.post2LLM推理引擎

1.3. DeepSeek 671B模型下载

  • 方式一:通过HuggingFace 下载

仓库地址:
https://huggingface.co/deepseek-ai/DeepSeek-R1 

  • 方式二:通过HuggingFace镜像站-AI快站下载

仓库地址:
https://aifasthub.com/deepseek-ai/DeepSeek-R1 

#下载AI快站下载器
wget https://fast360.xyz/images/hf-fast.sh
chmod a+x hf-fast.sh
#下载模型文件
./hf-fast.sh deepseek-ai/DeepSeek-R1

请准备充足硬盘空间,模型文件大小为642G。 

二、初始化系统配置

在开始部署之前,我们需要对系统进行一些基本的初始化操作,以确保后续步骤的顺利进行。 

2.1 安装基础包

运行以下命令,安装系统所需的基础软件包: 

sudo apt install -y gcc g++ make net-tools dnsutils iputils-ping screen nload build-essential nvtop

2.2. 设置时区

为了确保系统时间的准确性,我们将时区设置为上海时区: 

timedatectl list-timezones | grep Shanghai
sudo timedatectl set-timezone Asia/Shanghai

2.3. 禁用 Nouveau 驱动

Ubuntu系统默认使用 Nouveau 驱动,但为了充分发挥NVIDIA GPU的性能,需要禁用它,并安装NVIDIA官方驱动。 

sudo vim /etc/modprobe.d/blacklist.conf

在文件末尾添加以下内容: 

blacklist nouveau
options nouveau modeset=0

保存后更新 initramfs 并重启: 

sudo update-initramfs -u
sudo reboot

重启后检查是否禁用成功,若无输出,则禁用成功: 

lsmod | grep nouveau

三、安装 CUDA Toolkit

CUDA Toolkit 是 NVIDIA 提供的用于 GPU 开发的工具包,Deepseek 671B 满血版需要依赖 CUDA 来实现 GPU 加速。 

3.1 安装基础包

访问 NVIDIA 官方 CUDA Toolkit 归档页面:https://developer.nvidia.com/cuda-toolkit-archive ,找到 CUDA Toolkit 12.4.1 版本,选择 Linux -> x86_64 -> Ubuntu -> 22.04 -> runfile (local)。 

wget https://developer.download.nvidia.com/compute/cuda/12.4.1/local_installers/cuda_12.4.1_550.54.15_linux.run

3.2 安装 CUDA Toolkit 和 GPU 驱动

运行安装包,按照提示进行安装: 

sudo sh cuda_12.4.1_550.54.15_linux.run

在安装过程中,输入 accept 同意协议,选择 CUDA 安装包里的驱动程序和 CUDA Toolkit,然后选择 Install 开始安装。 

安装过程需要一段时间,请耐心等待。安装完成后,如果看到类似如下的 Summary 信息,就表示CUDA Toolkit 和 GPU 驱动安装成功。 

3.3 配置 CUDA 环境变量

为了让系统能够找到 CUDA 的相关程序,需要配置环境变量,编辑 ~/.bashrc 文件,添加以下内容: 

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

运行以下命令使配置生效: 

source ~/.bashrc

3.4 验证 CUDA 安装成功

运行以下命令查看 nvcc 版本,若显示 CUDA 编译工具的版本信息,则说明 CUDA 安装成功: 

nvcc --version

3.5 验证 GPU 驱动是否安装成功

执行 nvidia-smi 命令,如果看到类似下图 GPU 信息表格,说明 GPU 驱动也安装成功了。 

四、安装 NVIDIA-Fabric-Manager

NVIDIA-Fabric-Manager 是用于管理 NVIDIA NVSwitch 的软件包,对于充分利用 多GPU 之间的 NVLink 高速互联至关重要。 

4.1 确认 NVIDIA-Fabric-Manager 软件包版本

nvidia-fabricmanager软件包的版本与GPU 驱动版本必须完全一致(包括小版本号),否则可能导致 NVLink 通信异常。例如,驱动版本为550.54.15时,Fabric Manager需选择相同版本。可通过nvidia-smi 命令查看当前驱动版本。 

4.2 下载安装 NVIDIA-Fabric-Manager

根据驱动版本,下载对应版本的 NVIDIA-Fabric Manager 软件包。以下命令会自动提取驱动版本号并下载对应软件包: 

driver_version=550.54.15
main_version=$(echo $driver_version | awk -F '.' '{print $1}')
wget https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2204/x86_64/nvidia-fabricmanager-${main_version}_${driver_version}-1_amd64.deb

下载完成后,执行以下命令安装: 

sudo dpkg -i nvidia-fabricmanager-${main_version}_${driver_version}-1_amd64.deb

安装完成后,启动 NVIDIA-Fabric Manager 服务并设置为开机自启: 

systemctl start nvidia-fabricmanager
systemctl enable nvidia-fabricmanager

4.3 验证是否安装成功

  • 检查服务运行状态,如果看到类似 Active: active (running) 的输出,就表示服务正在运行。
systemctl status nvidia-fabricmanager 

#日志有如下输出代码正常
● nvidia-fabricmanager.service - NVIDIA fabric manager service
Loaded: loaded (/lib/systemd/system/nvidia-fabricmanager.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2025-03-01 03:10:27 UTC; 29s ago
Main PID: 33347 (nv-fabricmanage)
Tasks: 18 (limit: 629145)
Memory: 5.5M
CPU: 902ms
CGroup: /system.slice/nvidia-fabricmanager.service
└─33347 /usr/bin/nv-fabricmanager -c /usr/share/nvidia/nvswitch/fabricmanager.cfg

Mar 01 03:10:25 sc-gpu09 systemd[1]: Starting NVIDIA fabric manager service...
Mar 01 03:10:26 sc-gpu09 nv-fabricmanager[33347]: Connected to 1 node.
Mar 01 03:10:27 sc-gpu09 nv-fabricmanager[33347]: Successfully configured all the available NVSwitches to route GPU NVLink traffic. NVLink Peer-to-Peer support will be enabled once the GPUs are successfully registered wit>
Mar 01 03:10:27 sc-gpu09 systemd[1]: Started NVIDIA fabric manager service.
  • 通过 nvidia-smi 检查,若返回 State: Completed 和 Status: Success,则 GPU 已成功注册到 Fabric Manager。
nvidia-smi -q -i 0 | grep -i -A 2 Fabric

  • 运行 nvidia-smi nvlink --status ,验证NVLink连接状态

五、安装 Conda

Conda 是一个强大的环境和包管理器,可以帮助我们轻松管理 Python 环境和各种依赖包。 

5.1 下载安装脚本

下载 Miniconda 安装脚本: 

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh

5.2 安装 Conda

运行安装脚本,按照提示,阅读许可协议,输入 yes 接受协议。然后,选择安装路径(默认路径为 ~/miniconda3),直接回车确认即可。安装过程中会询问是否初始化 conda,建议选择 yes。 

bash Miniconda3-latest-Linux-x86_64.sh

5.3 初始化环境

安装完成后,执行以下命令初始化 conda 环境: 

~/miniconda3/bin/conda init bash

然后,关闭当前终端窗口,重新打开一个新的终端窗口,使 conda 初始化生效。 

验证 Conda 是否可用:执行以下命令,查看 conda 版本信息: 

conda --version

相关推荐

教你把多个视频合并成一个视频的方法

一.情况介绍当你有一个m3u8文件和一个目录,目录中有连续的视频片段,这些片段可以连成一段完整的视频。m3u8文件打开后像这样:m3u8文件,可以理解为播放列表,里面是播放视频片段的顺序。视频片段像这...

零代码编程:用kimichat合并一个文件夹下的多个文件

一个文件夹里面有很多个srt字幕文件,如何借助kimichat来自动批量合并呢?在kimichat对话框中输入提示词:你是一个Python编程专家,完成如下的编程任务:这个文件夹:D:\downloa...

Java APT_java APT 生成代码

JavaAPT(AnnotationProcessingTool)是一种在Java编译阶段处理注解的工具。APT会在编译阶段扫描源代码中的注解,并根据这些注解生成代码、资源文件或其他输出,...

Unit Runtime:一键运行 AI 生成的代码,或许将成为你的复制 + 粘贴神器

在我们构建了UnitMesh架构之后,以及对应的demo之后,便着手于实现UnitMesh架构。于是,我们就继续开始UnitRuntime,以用于直接运行AI生成的代码。PS:...

挣脱臃肿的枷锁:为什么说Vert.x是Java开发者手中的一柄利剑?

如果你是一名Java开发者,那么你的职业生涯几乎无法避开Spring。它如同一位德高望重的老国王,统治着企业级应用开发的大片疆土。SpringBoot的约定大于配置、SpringCloud的微服务...

五年后,谷歌还在全力以赴发展 Kotlin

作者|FredericLardinois译者|Sambodhi策划|Tina自2017年谷歌I/O全球开发者大会上,谷歌首次宣布将Kotlin(JetBrains开发的Ja...

kotlin和java开发哪个好,优缺点对比

Kotlin和Java都是常见的编程语言,它们有各自的优缺点。Kotlin的优点:简洁:Kotlin程序相对于Java程序更简洁,可以减少代码量。安全:Kotlin在类型系统和空值安全...

移动端架构模式全景解析:从MVC到MVVM,如何选择最佳设计方案?

掌握不同架构模式的精髓,是构建可维护、可测试且高效移动应用的关键。在移动应用开发中,选择合适的软件架构模式对项目的可维护性、可测试性和团队协作效率至关重要。随着应用复杂度的增加,一个良好的架构能够帮助...

颜值非常高的XShell替代工具Termora,不一样的使用体验!

Termora是一款面向开发者和运维人员的跨平台SSH终端与文件管理工具,支持Windows、macOS及Linux系统,通过一体化界面简化远程服务器管理流程。其核心定位是解决多平台环境下远程连接、文...

预处理的底层原理和预处理编译运行异常的解决方案

若文章对您有帮助,欢迎关注程序员小迷。助您在编程路上越走越好![Mac-10.7.1LionIntel-based]Q:预处理到底干了什么事情?A:预处理,顾名思义,预先做的处理。源代码中...

为“架构”再建个模:如何用代码描述软件架构?

在架构治理平台ArchGuard中,为了实现对架构的治理,我们需要代码+模型描述所要处理的内容和数据。所以,在ArchGuard中,我们有了代码的模型、依赖的模型、变更的模型等,剩下的两个...

深度解析:Google Gemma 3n —— 移动优先的轻量多模态大模型

2025年6月,Google正式发布了Gemma3n,这是一款能够在2GB内存环境下运行的轻量级多模态大模型。它延续了Gemma家族的开源基因,同时在架构设计上大幅优化,目标是让...

比分网开发技术栈与功能详解_比分网有哪些

一、核心功能模块一个基本的比分网通常包含以下模块:首页/总览实时比分看板:滚动展示所有正在进行的比赛,包含比分、比赛时间、红黄牌等关键信息。热门赛事/焦点战:突出显示重要的、关注度高的比赛。赛事导航...

设计模式之-生成器_一键生成设计

一、【概念定义】——“分步构建复杂对象,隐藏创建细节”生成器模式(BuilderPattern):一种“分步构建型”创建型设计模式,它将一个复杂对象的构建与其表示分离,使得同样的构建过程可以创建...

构建第一个 Kotlin Android 应用_kotlin简介

第一步:安装AndroidStudio(推荐IDE)AndroidStudio是官方推荐的Android开发集成开发环境(IDE),内置对Kotlin的完整支持。1.下载And...