H20 大模型推理系统环境配置踩坑
基础环境
CPU:INTEL(R) XEON(R) PLATINUM 8558P 48 Cores 96 Threads × 2
GPU:NVIDIA H20-3e NVL 141G × 8,NVLINK × 4
MEM:2TB
SYS:Ubuntu Desktop 22.04 LTS
环境安装
八张H20 141GB显卡拥有1128G巨量显存,可以支持DeepSeek R1/V3全量部署
但客户公司没有运维人员懂如何安装显卡驱动,无奈我们软件人员为了完成任务只好接下硬件驱动安装问题。在使用常规方式安装驱动与容器工具包后,即使驱动与nvcc都能检测到显卡存在,容器内torch无法检测到正确的显卡数量导致无法正常执行推理。
root@fe29691aa24c:/vllm-workspace# python3
Python 3.12.11 (main, Jun 4 2025, 08:56:18) [GCC 11.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import torch
>>> torch.cuda.is_available()
/usr/local/lib/python3.12/dist-packages/torch/cuda/__init__.py:174: UserWarning: CUDA initialization: Unexpected error from cudaGetDeviceCount().
Did you run some cuda functions before calling NumCudaDevices() that might have already set an error? Error 802: system not yet initialized (Triggered internally at /pytorch/c10/cuda/CUDAFunctions.cpp:109.)
安装踩坑
- 550版本驱动与H20显卡或者Ubuntu系统不兼容(不确定,没有时间继续测试了),导致开机系统加载驱动时卡死,需要尽量新版本驱动
- .run格式驱动安装包依赖对应gcc版本,可以在
/usr/bin
内添加cc
到gcc
对应版本(在570驱动下为gcc12)可执行文件的的软链接 - 带有NVLINK桥的系统必须安装nvidia-fabricmanager依赖,否则即使驱动与nvcc显卡识别正常,torch也无法正常检测到显卡
- nvidia-fabricmanager的大版本与小版本必须与显卡驱动完全对应,否则无法安装
- nvidia-fabricmanager可下载的版本只有有限的一些:Index of /compute/cuda/repos/ubuntu2204/x86_64 (注意操作系统版本对应),需要首先确定可用nvidia-fabricmanager版本再确定cuda-driver、显卡驱动版本
- 装驱动这一类动系统内核较高风险软件前,尽量提前问客户要服务器远程BMC权限,方便自己重装系统,防止后续可能出现的经常性系统级翻车带来的沟通麻烦和面子问题
正确安装步骤
- 确定Ubuntu系统版本
- 确定可下载的nvidia-fabricmanager版本并下载Index of /compute/cuda/repos/ubuntu2204/x86_64
- 根据可下载的fabricmanager版本找到对应的cuda-toolkit的.run文件并下载安装CUDA Toolkit Archive
- 配置cuda toolkit依赖:安装gcc-12;执行
ln -s /usr/bin/cc /usr/bin/gcc-12
; - 运行安装勾选驱动和toolkit安装
- 安装后重启
- 重启后系统未冻结且nvidia-smi与nvcc指令运行正常说明版本与硬件兼容良好
- 配置cuda toolkit依赖:安装gcc-12;执行
- 使用
dpkg -i
命令安装与驱动版本完全一致的nvidia-fabricmanager - 正常安装docker、Nvidia Container Toolkit(最新版就可以)并运行工具配置docker
- 现在可以测试容器内torch与vllm的工作情况了
FAQ
如何确定系统是否带有NVLINK桥?
执行
lspci | grep NVIDIA
如果显示有bridge设备则带显卡桥
H20 大模型推理系统环境配置踩坑的更多相关文章
- 记一次 Spring 事务配置踩坑记
记一次 Spring 事务配置踩坑记 问题描述:(SpringBoot + MyBatisPlus) 业务逻辑伪代码如下.理论上,插入数据 t1 后,xxService.getXxx() 方法的查询条 ...
- mybatis-generator:generate 生成代码配置踩坑详解
mybatis-generator:generate 生成代码配置踩坑不少,在此留下笔记以便后续填坑 一.mysql返回时间问题 错误信息: [ERROR] Failed to execute goa ...
- 在mac版virtual box中安装ubuntu虚拟机的NAT/Host-Only网络配置踩坑记录
之前用惯了vmware和parallels desktop,网络配置十分智能,基本不用自己配置.由于版权原因,工作电脑上换了免费的virtual box用,四五年都完全在虚拟机里干活的本菜鸡居然在虚拟 ...
- XXLJOB2.1.0数据源配置踩坑记录
最近在看XXLJOB,因为截至到发文时间最新的版本是2.1.0而且需要建立的数据库与Quartz解耦了,所以就用了最新的版本. 首先说一下踩坑过程: 代码开发完成之后,在定时跑的时候第一次跑的多数失败 ...
- Gradle AndroidStudio内网离线构建配置踩坑记录
最近一家新公司,由于办公环境都是在内网机上,导致在Unity导出android工程后,gradle离线构建也是第一次搞,花了一天时间也踩了一些坑,最后也终于构建成功了,这里记录下,方便大家少走些弯路. ...
- Kafka SASL ACL配置踩坑总结
源起:工程现阶段中间件采用的是kafka.满足了大数据的高吞吐,项目间的解耦合,也增强了工程的容错率与扩展性.但是在安全这一块还有漏洞,kafka集群中,只要网站内的任何人知道kafka集群的ip与t ...
- LAMP环境配置踩坑2外网无法访问
理论上我们配置LAMP环境的时候都会对httpd.config进行更改 vi /etc/httpd/conf/httpd.conf 把override node改成override all 并且开启8 ...
- jdk 环境配置踩坑
其实在网上已经有很多环境配置的介绍了.不过我还是想用切身经历告诉大家这里面可能遇到的坑. 首先,先给大家讲一下JAVA_HOME,path,CLASSPATH JAVA_HOME 指向的是JDK的安装 ...
- Gitlab Jenkins WebHook 持续集成配置踩坑记
Jenkins相关介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能. 目的 配置Gitla ...
- react中的路由配置踩坑记
react 路由配置中,如果根路由(/)匹配一个组件,另一个路由(/list)在进行匹配的时候也会匹配到根路由(/),即在 /list 页面展示的时候 / 页面总是展示在上方. 此时如果想进行严格匹配 ...
随机推荐
- Hack The Box-Chemistry靶机渗透
通过信息收集访问5000端口,cif历史cve漏洞反弹shell,获取数据库,利用低权限用户登录,监听端口,开放8080端口,aihttp服务漏洞文件包含,获取root密码hash值,ssh指定登录 ...
- SQL Server 5105 和 1802 错误的触发方式和解决方式之一
一般导致这两个错误的原因是:文件路径错误 还有的说,可能是文件权限问题,详情见权限错误纠正方式 错误代码 create database teaching on primary ( name = te ...
- Oracle 归档模式
sqlplus / as sysdba # 以下操作在`sqlplus`中执行 查看日志模式 SQL> archive log list; 数据库日志模式 非存档模式 自动存档 禁用 存档终点 ...
- Quart.NET - 教程 11: 高级 (企业级) 特性
译者注: 目录在这 Quartz.NET 3.x 教程 原文在这 Lesson 11: Advanced (Enterprise) Features 集群 集群目前仅适用于 AdoJobStore ( ...
- [SDR] 蓝牙专项教程 —— 从 0 到 1 教小白基于 SDR 编写蓝牙协议栈
目录 前言 一.开题之作 二.动态发送 BLE 广播包 三.基于 PlutoSDR 实现 BLE 广播包的收发一体能力 四.基于 PlutoSDR 的 BLE 广播包的收发实现接入涂鸦智能 APP 教 ...
- [T.3] 团队项目:团队基础设施及 DevOps 准备
项目 内容 这个作业属于哪个课程 首页 - 2025年春季软件工程(罗杰.任健) - 北京航空航天大学 - 班级博客 - 博客园 这个作业的要求在哪里 T.3 团队项目:团队基础设施及 DevOps ...
- [T.2] 团队项目:选题和需求分析
项目 内容 这个作业属于哪个课程 2025年春季软件工程(罗杰.任健) 这个作业的要求在哪里 T.2团队项目:选题和需求分析 团队在这个课程的目标是 学习软件工程相关知识,培养编程和团队协作能力,做出 ...
- github release 下载文件慢、或者失败的解决方法
Free Download Manager 下载工具可以解决Github 下载缓慢或失败问题. 扫描下方二维码,关注公众号 回复github,即可获取下载链接.
- 匿名内部类、lambda匿名函数表达式
a.匿名内部类的定义格式: 接口名称 对象名 = new 接口名称(){ //覆盖重写所有抽象方法 }: 一. /** * lambda匿名函数的使用 * Lambda省去面向对象的条条框框,格式由3 ...
- vue 水印插件
vue 水印插件 插件: directives.js import Vue from 'vue' /** * author: zuokun * 水印 * text:水印文字 * font:字体 * t ...