大模型推理--從零搭建大模型推理服務器:硬件選購、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.pswp.cn/bicheng/80050.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/80050.shtml
英文地址,請注明出處:http://en.pswp.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;