大模型推理--从零搭建大模型推理服务器:硬件选购、Ubuntu双系统安装与环境配置

自从大模型火了之后就一直想自己组装一台机器去深入研究一下大模型,奈何囊中羞涩,迟迟也没有行动。在下了很大的勇气之后,终于花了接近4万块钱组装了一台台式机,下面给大家详细介绍一下我的装机过程。

1.硬件配置

研究了一周,最终选择了如下配置:
在这里插入图片描述
我是在京东之家线下组装的,花了38600,装机没收钱。不过小哥对装Ubuntu不太懂,当天只给我安装了windows 11,Ubuntu是回家之后我自己装的。弄完之后跑了几天感觉这个配置还不错,对得起这个价格,可以分享给大家。
在这里插入图片描述
CPU选择了A卡的9950x3D,这个在CPU排名中还是非常靠前的,截至2025年5月4日性能仅次于AMD的线程撕裂者系列。它有16核32线程,但是用cat /proc/cpuinfo命令会直接显示32个核心,所以可以简单地认为它有32个逻辑核。显卡我选择了48G的4090,没有选择最新的32G 5090,主要原因是针对大模型推理来说显存是最大的瓶颈,选择显卡肯定是显存越大越好。此外,当下5090的溢价较为严重,没必要去吃亏买性能,而且搞不好买个5090还会出现烧卡的问题。内存选择了一个非主流的品牌金百达,但是单张内存条的容量可以到48G,两张内存条就可以达到96G,这个对不少大模型任务来说足够了。高通有些模型量化的任务需要80G以上的内存,所以64G内存还是少了点,建议大家配置内存时尽量都96G往上。
在这里插入图片描述
介绍完三大件之后,其他的硬件中最关键的就是主板。我没有选择最高配置的主板,算是选择了一个中等配置的。X870-PLUS可以安装两张显卡,四张内存条,四块SSD硬盘,所以给我留了一半的余量以作将来扩展。电源用的是1000w的,针对单显卡是够用了,如果升级成双4090就不够了,考虑到一会半会也没钱去升级双显卡,所以暂时就用1000w电源。硬盘选择了三星PCIe 4.0协议的2T固态硬盘,拷贝速度不是最快但是也挺快的,不过用了几天发现2T还是太少了,Ubuntu下download大模型以及装各种软件硬盘用得超快,我感觉最少4T用着才会有安全感。
虽然用了一段时间感觉还不错,但是我觉得当前配置尚未达到理想状态,以下是我实际体验感觉还有改进空间的地方:

  1. 选择的散热液晶屏稍微有点大,安装上之后就会轻微挤压内存条一号槽,所以不知道安上四张内存条之后会不会有问题,建议水冷散热选择屏幕较小一点的;
  2. 选择的主板虽然可以装双显卡,但是在单显卡情况下就出现了显卡的风扇与机箱下部的风扇对吹的情况,目前还没有出现显卡温度过高的问题,但总感觉风扇对吹是很不好的搭配。要是搭配双显卡,风扇对吹就会更严重,可能会对显卡散热带来不利影响。所以大家在选择主板和机箱的时候看看能否避免风扇对吹这个问题;
  3. 电源1000w应该无法支持双4090显卡。如果要安装双4090,电源最好选择1600w的;
  4. 华硕这个X870-PLUS主板默认没有启用内存超频,所以内存的速度只有4800MT/s,这个与DDR5内存的宣传相比还是弱了一些,不知道超频之后内存是否会出问题,有待后续进一步验证;
  5. 也不知道是什么原因,windows 11下蓝牙无法使用,也不知道是哪个地方出了问题;
  6. 安钛克Flux Pro这个机箱不能算是静音机箱,机箱本身有6个风扇,加上水冷的3个风扇,运行起来还是能比较明显地感受到噪音,如果对声音敏感的人建议上更高级的机箱。

2.Ubuntu双系统安装

下面开始介绍操作系统的安装,windows 11是京东小哥帮忙装的,Ubuntu是我自己装的,所以重点关注Ubuntu的安装。不过在安装windows 11的时候也遇到了一个配置问题,花了俩小时才搞明白,当装系统时提示下面的问题时,要输入Y,不要输入N,否则就无法安装windows系统。
在这里插入图片描述
安装完Windows之后还有一步建议的操作,就是要给Ubuntu系统划分一个独立的盘。通过Win+X打开磁盘管理,然后将一个windows下不使用的盘符右键删除卷留给Ubuntu备用。当然也可以不执行这一步删除操作,在安装Ubuntu时再删除也行。具体要留多少空间给Ubuntu系统看你的需求,我一开始留了500G,结果用了一天就明显感觉不够用,被迫无奈又重装了一次Ubuntu系统,建议给Ubuntu留至少1T的空间。

2.1 制作Ubuntu镜像

之前装双系统都是用同事的U盘,这次我决定自己来整一个。起初以为制作一个镜像是很难的事情,用DeepSeek一问才知道这个事简单到不能再简单了。首先从官网下载最新版的Ubuntu 22.04.5。这里切记要用22.04.5版本,不要用22.04.3或者22.04.4,否则可能会导致安装完成之后有线和无线均无法上网的问题,后续压根无法开展任何工作。我没有考虑24.04,因为这个版本的系统问题很多。
有了镜像文件之后,还需要一个至少8G空间的U盘,我们需要将U盘做成可以启动的引导盘。方法很简单,按照以下流程来即可:

  1. 下载并运行Rufus[from https://rufus.ie/zh/](便携版无需安装);
  2. 插入U盘,Rufus会自动识别(确保选择正确的设备);
  3. 点击选择按钮,找到下载的Ubuntu 22.04.5 ISO文件;
  4. 分区类型:
    旧电脑:MBR + BIOS(或UEFI-CSM)
    新电脑:GPT + UEFI(非CSM,选择这个就行)
  5. 文件系统:FAT32(默认);
  6. 点击开始 → 确认警告(会格式化U盘)→ 等待完成。

2.2 安装Ubuntu系统

做好镜像之后开始进入真正的安装环节。针对X870-PLUS主板,在启动电脑的时候通过按F2或者Del进行BIOS界面,然后选择从U盘启动进入Ubuntu安装界面。绝大多数步骤都是选择下一步即可,但是有一步需要特别注意,就是要选择将Ubuntu安装在哪个盘,以及如何划分分区的问题。在安装到下图时,要选择第三个选项something else,
在这里插入图片描述
这样就可以允许我们将Ubuntu安装到我们指定的位置,并进行合理的空间划分。点击Install Now之后进入下图,下图应该是安装Ubuntu时最复杂的步骤了。
在这里插入图片描述
需要我们将一块windows下删除的盘符,现在显示为free space的分区进行更细致的划分(如果没有free space的分区那就是我们没有在Windows下删除某个盘符,需要我们选择要安装的分区然后点击减号进行删除)。后续的分区我参考了豆包的建议,划分成了4部分:

  • 创建EFI系统分区:若磁盘为GPT分区表格式,需创建EFI系统分区。右键点击未分配空间,选择“新建分区” ,设置分区大小200 - 500MB左右 ,“用于”选择“EFI System Partition” 。我设置了500M,后续的boot loader也选择该分区;
  • 创建根分区(/):再次右键点击剩余未分配空间,选“新建分区” ,设置较大空间,“用于”选“ext4日志文件系统” ,“挂载点”选“/” 。我选择了500G。这部分空间会被安装的软件以及docker镜像等系统软件占用,建议大一点;
  • 创建交换分区(可选):若电脑内存较小(如小于8GB),可创建交换分区。右键未分配空间选“新建分区” ,大小一般设为内存1 - 2倍 ,“用于”选“swap area” 。我选择了64G。这块可能影响不大,自行决定;
  • 创建/home分区(可选):想单独管理个人数据,可再分空间创建/home分区。右键未分配空间选“新建分区” ,“用于”选“ext4日志文件系统” ,“挂载点”选“/home” 。我给该分区也留了500G空间,这个分区用来放自己的资源,比如大模型权重,非root下pip安装的软件等。Home分区是平时工作的分区,但是我们后续可以通过添加新的硬盘来增大空间,所以预留500G暂时够用。但是根分区我也不知道咋通过增加硬盘的方式来扩大空间,所以最好一开始就给根分区留足空间。

完成分区划分之后,点击continue等待安装完成。

3.Ubuntu环境配置

完成安装之后,首次启动会出现下述界面:
在这里插入图片描述
其中,Windows Boot Manager就是windows系统。此时,如果直接按Enter进行Ubuntu系统有可能会卡死,如果卡死就进入Advanced options for Ubuntu,然后通过recovery方式点击resume进入了Ubuntu系统。第二次的时候就可以正常进入系统了。进入系统之后,我们就需要安装一系列的软件完成Ubuntu环境的配置。

3.1 基础软件的安装

执行下述命令安装一些基础软件:

sudo apt update
sudo apt install vim
sudo apt install pip
sudo apt install cmake
sudo apt install htop
sudo apt install curl
sudo apt install libcurl4-openssl-dev
sudo apt install dos2unix

上面这些软件可以按需安装,主要是先安装vim编辑软件以及pip python包安装软件。

3.2 docker环境配置

执行下述命令配置docker环境:

sudo apt install docker.iodistribution=$(. /etc/os-release;echo $ID$VERSION_ID) \&& curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \&& curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update   
sudo apt-get install -y nvidia-docker2
sudo systemctl restart docker     

执行完上述命令之后就可以通过docker pull来抓取镜像。

3.3 cuda环境配置

首先从nvidia官网下载最新的cuda驱动:cuda_12.8.1_570.124.06_linux.run。正常情况下我们可以通过sh运行上面的脚本安装驱动和cuda,但是可能会遇到很多问题,现在有一种更简单的方式。我们可以通过Ubuntu software updates中的Additional Drivers来安装最新版的驱动,如下图所示。
在这里插入图片描述
安装完驱动之后,我们再通过sh cuda_12.8.1_570.124.06_linux.run来安装cuda。在安装过程中我们把安装驱动的选项取消掉即可。完成之后再通过如下命令配置PATH和LD_LIBRARY_PATH:

vim ~/.bashrc
export PATH=$PATH:/usr/local/cuda-12.8/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/cuda-12.8/lib64/

接着我们再从nvidia官网下载最新版的cudnn cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb,按照下述命令完成cudnn的安装:

sudo dpkg -i cudnn-local-repo-ubuntu2204-9.8.0_1.0-1_amd64.deb
sudo cp /var/cudnn-local-repo-ubuntu2204-9.8.0/cudnn-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cudnn

执行完上述所有步骤,我们基本完成了整个环境的搭建,后续就可以正式开始搞大模型推理了。

3.4 大模型推理环境配置

我们可以通过pip安装modelscope命令,然后利用modelscope download --model Qwen/Qwen3-8B下载最新的Qwen3大模型等。有了大模型之后,我们还可以选择vllm或者sglang等推理框架进行部署。vllm可以通过pip install vllm来安装。如此就完成了大模型推理服务器的配置~

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

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

相关文章

第35周Zookkeeper+Dubbo Dubbo

Dubbo 详解 一、Dubbo 是什么 官网与定义 Dubbo 是一款高性能、轻量级的开源服务框架,其官网为 double.apache.org,提供中文版本(网址含 “zh”)。 核心能力 Dubbo 具备六大核心能力: 面向接口代理的高性能 RPC …

NX二次开发——BlockUI 弹出另一个BlockUI对话框

最近在研究,装配体下自动导出BOM表格中需要用到BlockUI 弹出另一个BlockUI对话框。通过对网上资料进行整理总结,具体如下: 1、明确主对话框、子对话框1和子对话框2 使用BlockUI创建.cpp和.hpp文件,dlx文件内容如下所示 主对话框…

PostgreSQL 系统管理函数详解

PostgreSQL 系统管理函数详解 PostgreSQL 提供了一系列强大的系统管理函数,用于数据库维护、监控和配置。这些函数可分为多个类别,以下是主要功能的详细说明: 一、数据库配置函数 1. 参数管理函数 -- 查看所有配置参数 SELECT name, sett…

【2025软考高级架构师】——计算机网络(9)

摘要 全文主要围绕计算机网络相关知识展开,包括域名服务器查询方式、网络规划与设计的关键技术、双协议栈与隧道技术、层次化网络设计、网络冗余设计以及高可靠和高可用性等方面,旨在为软考高级架构师的备考提供知识参考。 1. 通信网络架构图 2. 通信架…

yolov8n-obb训练rknn模型

必备: 准备一台ubuntu22的服务器或者虚拟机(x86_64) 1、数据集标注: 1)推荐使用X-AnyLabeling标注工具 2)标注选【旋转框】 3)可选AI标注,再手动补充,提高标注速度 …

前端-HTML+CSS+JavaScript+Vue+Ajax概述

HTML&#xff08;超文本标记语言&#xff09;常见标签 <html><head> <title>这是标题的内容&#xff0c;显示在浏览器的头部</title></head><body><!-- 这里面的内容在浏览器显示给用户看 --><!-- h1 -> h6 : 标题从大到小 …

嵌入式软件--stm32 DAY 5 USART串口通讯(上)

前边我们学的都是通用的功能&#xff0c;例如GPIO、中断&#xff0c;现在我们要学习的是某一个特定的功能。典型的就是通讯功能。其中&#xff0c;最简单的通讯协议就是串口了。 一、串口_通讯基础知识 1.1 串行与并行 按数据传送的方式分类的。 串行通信一位一位传输&…

c++混淆工具Hikari-LLVM15-llvm-18.1.8rel编译安装

目录 1. windows 编译1. 2 编译工具安装1.2.1 下载w64devkit1.2.2 添加环境变量1.2.3 验证一下 1.3 下载llvm-18.1.8rel1.4 编译 2. Android studio增加混淆编译2.1 替换NDK中clang2.2 配置混淆编译项 3. Linux编译安装4. Linux下增加混淆编译4.1 在CMakeLists.txt中设置clang编…

【EasyPan】loadDataList方法及checkRootFilePid方法解析

【EasyPan】项目常见问题解答&#xff08;自用&持续更新中…&#xff09;汇总版 一、loadDataList方法概览 /*** 文件列表加载接口* param session HTTP会话对象* param shareId 必须参数&#xff0c;分享ID&#xff08;使用VerifyParam进行非空校验&#xff09;* param …

Vue3渲染引擎:虚拟DOM与响应式原理

Vue3渲染引擎&#xff1a;虚拟DOM与响应式原理 在当今的前端开发中&#xff0c;Vue.js作为一种流行的JavaScript框架&#xff0c;经常被用来构建用户界面。而Vue.js 3作为其最新版本&#xff0c;在性能和功能上进行了许多优化和改进。其中&#xff0c;Vue3渲染引擎的核心原理—…

【论文阅读】Attentive Collaborative Filtering:

Attentive Collaborative Filtering: Multimedia Recommendation with Item- and Component-Level Attention Attentive Collaborative Filtering (ACF)、隐式反馈推荐、注意力机制、贝叶斯个性化排序 标题翻译&#xff1a;注意力协同过滤&#xff1a;基于项目和组件级注意力的…

【PostgreSQL数据分析实战:从数据清洗到可视化全流程】2.1 数据查询基础(SELECT/WHERE/GROUP BY/HAVING)

👉 点击关注不迷路 👉 点击关注不迷路 👉 点击关注不迷路 文章大纲 第2章 SQL语法进阶:数据查询基础(SELECT/WHERE/GROUP BY/HAVING)2.1 数据查询基础2.1.1 SELECT 语句:从表中提取数据2.1.1.1 基础语法与列选择2.1.1.2 列别名与表达式2.1.1.3 去重与排序2.1.2 WHERE…

深度解析:基于Python的微信小程序自动化操作实现

引言 在当今数字化时代&#xff0c;自动化技术正在改变我们与软件交互的方式。本文将深入解析一个使用Python实现的微信小程序自动化操作脚本&#xff0c;该脚本能够自动识别屏幕上的特定图像并执行点击操作。这种技术在自动化测试、批量操作和效率工具开发中有着广泛的应用前…

layui下拉框输入关键字才出数据

html里这样放 <div class"layui-form-item"><label class"layui-form-label">合同方&#xff1a;</label><div class"layui-input-block rightinline"><input type"text" name"select_text" ids…

bash和zsh的区别

Bash&#xff08;Bourne-Again SHell&#xff09;和 Zsh&#xff08;Z Shell&#xff09;都是 Unix/Linux 系统中的主流 Shell&#xff0c;但它们在功能、配置和用户体验上有显著区别。以下是两者的详细对比&#xff1a; 1. 历史与兼容性 特性BashZsh诞生时间1989 年&#xff…

组件通信-v-model

概述&#xff1a;实现 父↔子 之间相互通信。 前序知识 —— v-model的本质 <!-- 使用v-model指令 --> <input type"text" v-model"userName"><!-- v-model的本质是下面这行代码 --> <input type"text" :value"use…

虚拟机(Virtual Machine, VM)的简单介绍

目录 一、虚拟机的基本概念 二、虚拟化技术的分类 三、虚拟机的核心架构 四、虚拟机的核心应用场景 五、虚拟机的优缺点分析 六、虚拟机与容器技术的对比 七、虚拟机的未来趋势 八、总结 一、虚拟机的基本概念 虚拟机&#xff08;VM&#xff09;是一种通过软件模拟的完…

Xcode16提交App Store审核时提示bitcode报错

提交AppStore时出现bitcode报错&#xff0c;内容如下&#xff1a; Upload was cancelled. 2025-04-30 02:15:48.349 [ContentDelivery.Uploader.600000DB4380] Show Progress: Upload failed. Validation failed Invalid Executable. The executable Blockolot.app/Frameworks/…

Flutter TabBar / TabBarView 详解

目录 一、引言 二、基本用法 代码解析 三、主要属性 3.1 TabBar 3.2 TabBarView 四、进阶定制&#xff1a;突破默认样式 4.1 视觉样式深度定制 4.2 自定义指示器与标签 4.3 动态标签管理 五、工程实践关键技巧 5.1 性能优化方案 5.2 复杂手势处理 5.3 响应式布局…

mathtype转化

mathtype转latex 点击预置 选择剪切和复制预置 点击MathML 或 TeX&#xff0c;选择 LaTeX 2.09 and later mathtype转word自带编码器 与前面都相同&#xff0c;选择 MathML2.0&#xff08;m namespace&#xff09;