[開箱] 45k 程式編譯/build/compile Linux 機
本文 Web 版:https://bit.ly/3g6VXjD
https://i.imgur.com/V57niKn.jpg
# 背景
需求:程式編譯,主要編譯 Yocto(低配版 Build Code Server)
預算:4.5 萬
# 零件挑選
## 中央處理器(CPU)
挑選 CPU 有幾個重點,依優先順序分別為:
售價(預算)、效能、功耗(耗電量、廢熱量)、C/P 值。
OpenBenchmarking 上搜集了各型號 CPU 的 Linux Kernel 編譯時間
https://openbenchmarking.org/test/pts/build-linux-kernel ,
可用以評估各型 CPU 多核心編譯的效能:
https://i.imgur.com/AODEvME.png
伺服器版的 CPU 太貴,直接跳過。
AMD Ryzen™ 9 5950X
AMD Ryzen™ 9 3950X
Intel® Core™ i9-10980XE
這三顆 CPU 是目前家用主機的頂規。
Intel 這顆效能表現與 AMD 這二顆相伯仲,但功耗高很多,所以先剔除。
再來因為 5950X 和 3950X 這二顆都缺貨,也只能放棄。
繼續往下的選擇中,AMD Ryzen™ 9 5900X 效能相差不大,有貨,
且 C/P 值比 5950X、3950X 都高很多,因此沒有什麼懸念,就選它了。
## 主機板
相容 AMD Ryzen™ 9 5900X AM4 規格且有現貨的晶片組有
B450、X470、A520、B550 和 X570。
符合目前需求的最便宜選擇是 B450,但可惜目前 Mini-ITX 的版本缺貨,
只能往更高階看。因為想保留未來插高階顯示卡和 PCIe 4.0 SSD 的空間,
所以從 B550 和 X570 之間選了比較便宜的 B550。
https://i.imgur.com/TIT7R1F.png
https://i.imgur.com/1pFsFQp.png
## 記憶體
依照過去編譯 AOSP 的經驗,編譯所需的記憶體大小,
約略是 CPU 執行緒數多少條,記憶體就要多少 GB。
除此之外,我也先在舊的電腦上,參考這個網頁
https://www.linuxatemyram.com/ ,
分別在掛上 Swap 和卸載 Swap 的情形下實際編譯 Yocto 專案,
來比較記憶體的使用狀況。
測試機器:
- Intel® Core™ i7-8700K (6 核、12 緒)
```
$ lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 12
On-line CPU(s) list: 0-11
Thread(s) per core: 2
Core(s) per socket: 6
Socket(s): 1
...
```
- 記憶體 16 GB
```
$ free
total used free shared buff/cache
available
Mem: 16303912 1840356 13280940 873236 1182616
13286976
Swap: 2097148 0 2097148
```
1. 有掛載 Swap:
掛 Swap:
```
swapon -a
```
清記憶體:
```
sync; echo 3 | tee /proc/sys/vm/drop_caches
```
開始搜集記憶體使用狀況:
```
free -s 1 | tee memory-usage-log-swapon.txt
```
進行編譯。
完成後確認,編譯過程中最低可用記憶體剩餘量:
```
grep Mem memory-usage-log-swapon.txt | awk '{print $7}' | sort -n |
head -n 1
```
及最高 Swap 使用量:
```
grep Swap memory-usage-log-swapon.txt | awk '{print $3}' | sort -nr
| head -n 1
```
最低可用記憶體剩餘量為 5.46 GB,最高 Swap 使用量為 321.75 MB。因此在 12 緒的 CPU 下編譯我的 Yocto 專案,搭配 16 GB 的記憶體是足夠的。本次編譯耗時
1:06:13.27。
2. 無掛載 Swap:
卸 Swap:
```
swapoff -a
```
清記憶體:
```
sync; echo 3 | tee /proc/sys/vm/drop_caches
```
開始搜集記憶體使用狀況:
```
free -s 1 | tee memory-usage-log-swapoff.txt
```
進行編譯。
完成後確認,編譯過程中最低可用記憶體剩餘量:
```
grep Mem memory-usage-log-swapoff.txt | awk '{print $7}' | sort -n
| head -n 1
```
最低可用記憶體剩餘量為 5.24 GB,與開頭的經驗,編譯中 1 條執行緒約需 1 GB
相符。本次編譯耗時 1:06:10.88。
AMD Ryzen™ 9 5900X AM4 是 12 核 24 緒,因此 32 GB 的記憶體應足夠使用。
同樣大小的記憶體也有價差,時脈、CL 值、會不會發光、品牌等都有影響。
我買了 DDR4-3600 CL18,其實應該選 DDR4-3200 CL16 的就好,
因為二者效能差不多,但 DDR4-3600 CL18 的價格高了近 20%。這邊預算沒有控制好。
## 固態硬碟(SSD)
儲存空間大一點比較方便,目前有貨的最大大小為 2 TB,
WD_BLACK™ SN750 太貴,就挑了使用國產控制器(群聯)一樣五年保的
Pioneer APS-SE20Q。
## 顯示卡
基本上這臺電腦除了安裝 OS 以外都不會接螢幕,因此低階的即可。
但仍希望起碼能推動 4K 的螢幕看影片,所以挑了 GeForce GT 1030。
## 機殼
目前使用的 SilverStone SG09 搭配貓頭鷹塔散,機殼尺寸和散熱效果都讓我很滿意。
因為小機殼輕巧的特性,這次鎖定 Mini-ITX 的機殼。
小機殼內部比較擁擠,裝高度發熱的元件要特別注意通風、散熱。
參考了一些在 YouTube 上看到的機殼:
https://i.imgur.com/V1AvwxZ.png
發現符合我期待的散熱方式及電源位置的只有 NZXT H210,所以就選了它。
https://i.imgur.com/SmRjUdH.png
挑選小型的機殼時,除了要注意 CPU 散熱器的高度外,
還要看散熱器的體積對機殼內通風的影響。
H210 的內部配置有一些亮點:
1. 前進氣風扇的尺寸比後出風風扇的大,因此很容易可以達到機殼內正壓的配置。
2. 風流設計看起來很合理,前方進風後方出風,中間會吹到 CPU、顯示卡和電源。
3. 有附防塵濾網。
4. 電源下置且有獨立空間。
5. 可使用 ATX (PS/2) 標準的電源。
6. 電源直接貼在背板,電源線可以直接接到電源上,不需要透過機殼自帶的電源延長線
像這種小型的機殼,因為顯卡離機殼底部很近,因此還要注意,若機殼下方會裝風扇,
其風向應與顯卡風扇的風向一致。
不是所有顯卡的風扇都是往晶片方向吹的,也有反著吹的:
https://i.imgur.com/ENmoSOh.png
補充說明,我會避免選擇將電源供應器定位為主要排風元件的機殼(如後上置型的)。
因為電源供應器很怕熱,長期在較熱環境中工作的電源供應器,除了壽命比較短之外,
也很危險
(可參見全漢官網說明 https://www.fsp-group.com/tw/knowledge-prd-4.html )。
機殼內有獨立空間可放置電源供應器是最理想的,這樣電源供應器就不會與 CPU、
顯示卡等高發熱元件混在同一空間內。
## CPU 散熱器
散熱器的選擇實在太多了,所以我直接在以安靜著稱的貓頭鷹裡挑。
因為希望能與機殼設計的水平風流相配合,所以只看塔式散熱器。
5900X 蠻熱的,需要散熱能力好一點的,
同時我又不喜歡記憶體完全被散熱器遮住看不到,所以挑了 Noctua NH-D15S
Mini-ITX 主板 + 記憶體 + NH-D15S 示意圖:
https://i.imgur.com/kzLSOdm.jpg
NZXT H210 + NH-D15S 示意圖:
https://i.imgur.com/c8eoCy4.jpg
## 電源供應器
電源供應器是耗材,它的供應瓦數是會衰減的。
預算許可的話,就把瓦數買到 CPU + 顯卡功耗的 2 倍,
這樣電源供應器在其他零件壞掉前應該都會是好的。
愛護地球,在能負擔的範圍內選轉換功率高一點的。
如果機殼支援 ATX 規格的電源供應器,那在電源供應器的選擇會比較多,也會比較便宜。
# 組裝
*開車就是要開手排才熱血,電腦就是要自己裝才有靈魂。*
開始前,先說明一個注意事項:
除了一些非通用特殊螺絲之外,一部電腦主機裡的螺絲有 3 種不同的螺絲牙,
這三種螺絲牙通常是,
最粗的(kb5)鎖風扇,
中等的(#6-32 UNC)鎖主機板、機殼、電源,
最細的(M3)鎖硬碟。
除此之外,也要注意螺絲頭,
有些適合用平頭、有些適合用寬頭、有些適合用手擰的等等。
詳請見維基百科 https://en.wikipedia.org/wiki/Computer_case_screws 。
(各種螺絲外觀請見本文第一張圖)
全零件合照(這邊缺了 SSD 和 後置薄扇):
https://i.imgur.com/noqRfzF.jpg
拿出工具盒,正式開始。
https://i.imgur.com/JyTsFsK.jpg
## 安裝電源供應器及機殼風扇
1. 把電源供應器裝進機殼後下方 https://i.imgur.com/kWJR5BM.jpg
**Update**
之後為防落塵,上方出風口用黑色不織布封住:
https://i.imgur.com/NuXGxmq.jpg
https://i.imgur.com/cuCt04N.jpg
https://i.imgur.com/a2CILfM.jpg
另購了貓頭鷹 NF-A12x15 薄扇 1 個裝在機殼後方出風。
https://i.imgur.com/QALitqZ.jpg
https://i.imgur.com/Q2i9GDa.jpg
https://i.imgur.com/cPrBIWS.jpg
**Update 2**
實測後發現 NF-A12x15 對降低峰值溫度沒什麼效果,同時產生了低頻的共鳴噪音,所以後來又把它拆掉了。
## 安裝 CPU
1. 首先核對 CPU 安裝方向的標示 https://i.imgur.com/wniTpbF.jpg
## 安裝 NVMe SSD
補拍 SSD 照片 https://i.imgur.com/d2c6lcZ.jpg
B550 不是所有 NVMe 插槽都是 PCIe 4.0,所以要注意一下。
不過因為買的是 PCIe 3.0 的 SSD,所以也沒差。
1. 從腳位判斷安裝方向 https://i.imgur.com/iGk6i0b.jpg
https://i.imgur.com/M0cERWr.jpg
## 安裝記憶體
1. 扳開記憶體插槽二側的卡榫 https://i.imgur.com/fRXAeUp.jpg
## 安裝 CPU 散熱器
1. 卸下原廠散熱器基座 https://i.imgur.com/0FkfuLc.jpg
https://i.imgur.com/t3TfpVX.jpg
5. 點散熱膏。於 CPU 中心點上一球直徑約 0.5 cm 的量。
https://i.imgur.com/UHkGIjJ.jpg
應該要稍微有一點散熱膏被壓出來,但量不要多到會沾到主機板。
https://i.imgur.com/1J9u7wz.jpg
完成。
可以看到 NH-D15s 給記憶體相當大的空間:
https://i.imgur.com/WdEr3rA.jpg
https://i.imgur.com/4JICywW.jpg
散熱鰭片的長、寬沒有超出主機板:
https://i.imgur.com/reOY6Vf.jpg
## 安裝主機板
準備放主機板進機殼時,才發現散熱鰭片會卡到這款機殼後面和上面的風扇,
只好把它們拆掉。
https://i.imgur.com/5xa5kBJ.jpg
https://i.imgur.com/OHmiEsO.jpg
1. 接上 CPU 電源
2. 將主機板放至定位,以螺絲固定
https://i.imgur.com/PGZp45G.jpg
要能鎖到的話,就要先裝主機板再裝鰭片。
但因為先鎖主板再裝鰭片會不能檢查散熱膏的量,
加上這張主板背面有金屬框加固應該夠堅固,所以就不重做了。
3. 接上其他各種電源 https://i.imgur.com/87pdapT.jpg
## 安裝顯示卡
低階顯卡不用額外接電源,直接插到對應的槽並鎖上機殼背板就好。
https://i.imgur.com/uWxyhop.jpg
## 理線
理線是一個耗時也不見得做得好的工作,建議動手前先參考別人的做法。
對外觀講究的話,可以另外購買高顏值的訂製線。
網路上搜尋「機殼型號」 + 「Cable Management」就可以看到很多範例。
https://i.imgur.com/v2bdCbH.jpg
https://i.imgur.com/HfgScC2.jpg
## 完成
最後蓋上機殼側板,就完成啦!
https://i.imgur.com/6kqLXHM.jpg
# 驗收
## CPU 效能
相同專案在新電腦的編譯時間約為 35 分鐘,
在上面列的 i7-8700K 舊電腦約為 66 分鐘。
CPU 執行緒數加倍,時間約減半,算是符合預期。
## 記憶體用量
編譯過程中,這臺 24 緒的電腦可用記憶體高達 20 GB 左右,也就是說編譯過程中,
有用到的記憶體約 12 GB。但在舊電腦 12 緒的 CPU 上編譯也是只用了 12 GB 左右。
這個結果說明了執行緒數目和記憶體用量成比是錯誤的假設 ^___^"
## CPU 溫度
環境溫度 28 °C、空調
https://i.imgur.com/jjJ7n56.jpg
1. 後、上出風風扇都沒裝
待機:約 33 °C
峰值:80.4 °C
2. 後出風風扇沒裝、上方出風口封起
待機:約 33 °C
峰值:81.9 °C
https://i.imgur.com/oNXekMf.png
待機:約 33 °C
峰值:81.9 °C
https://i.imgur.com/WJBfGxc.png
--
可以頂天立地,也可以狡詐陰險,
可以當個誠實小郎君,也可以嘴裡沒有半句實話;
但是一定不能飄,飄起來的人就是自己騙自己。
柳岸花又明《我真沒想重生啊》
--
詳細推
超複雜 給推
記憶體使用會變少應該是舊cpu 太
慢
有些東西卡住ram才看似消耗很多
很棒的分享
cat file | grep pattern # x
grep pattern # o
*grep pattern file
已更新謝謝。
挑 NV 的卡大概是因為 AMD 的買不
到吧?
不怕nvidia驅動的問題嗎?
沒有 follow 到,請問最近 Nvidia 有什麼驅動問題嗎? 如果是下面這篇的話,我買時候它還沒出現。 另外顯卡大缺貨,沒什麼可挑的,加上我不太需要,所以就只是挑一張低階的而已。 ┌─────────────────────────────────────┐ │ 文章代碼(AID):
#1WkbddSE (PC_Shopping)[ptt.cc] [閒聊] NV新驅動466.63疑? │ │ 文章網址:
https://www.ptt.cc/PC_Shopping/M.1622825447.A.70E│ │ 這一篇文章值 99 Ptt幣 │ └─────────────────────────────────────┘
推超詳細
推!
ccache掛上去可以快一點
這邊實測5950X + PCI-Gen4 SSD
搭配ccache編AOSP大約40分鐘
感謝推薦!請問沒掛 ccache 時慢多少? 另外好奇 5950X 搭多大的記憶體?
詳細到不行 讚
不是最近的問題 是nvidia一直以來對
linux的驅動都是採proprietary kern
el module所以沒辦法完全跟著linux
kernel的更新 最近一次就是5.10
超讚,感謝分享
86
[閒聊] AMD現在滿盤皆輸?還有優勢嗎?最近想組新電腦 看到很多新品發表 但看AMD 顯卡方面就被NV打得死死的 雖然新的RDNA3還沒發佈38
[情報] RYZEN 5000 測試曝光比 Ryzen 3000快得多Ryzen 5000系列桌上型處理器的最新測試已經出現在SiSoftware資料庫中 該資料庫曝光包括採用Zen3的Ryzen 9 5950X Ryzen 9 5900X和Ryzen 7 5800X。所有三個CPU均經過測試 與採用Zen 2核心架構的前代產品相比,顯示出巨大的改進。 三款CPU都是在MSI MEG X570 Unify主機板上測試的32
[情報] Core i5-10400評測:中階遊戲處理器首選除了效能兇猛的頂級電腦,相信多數人採購遊戲電腦還是以性價比較高的中階電腦為主 而台幣 5 至 6 千元附近的 CPU 自然成為首選。Intel Core i5-10400 售價剛好落在這 個區間,來看看它的表現吧! 中階遊戲機配備挑選要領 隨著時代演進,第 10 代 Intel Core i5 處理器現在已擁有 6 核心/12 執行緒與29
[請益] 1150腳位CPU與顯示卡挑選大家好 我目前桌機的配備如下: CPU:Intel Celeron G1840 2.8GHZ/2M快取/53W MB:華碩 H81M-K(M-ATX/1A1D/U3(1150腳位) RAM:Kingston DDR3 -1600 8G X2 = 16G24
[菜單] 30k內ubuntu寫程式用電腦已買/未買/已付訂金(元): 未買 預算/用途: 30k內,不含螢幕. 主要用途是安裝ubuntu來寫程式. 舊電腦是i5-6400,效能比他好即可 顯卡是買來替其他電腦升級用的.17
[請益] 關於編譯程式的桌機小弟從以前都是買筆電 對於桌機的配備完全沒有接觸 最近需要買一台桌機來編譯我的程式 系統會安裝linux 我去nova 看了一圈回來20
[菜單] $30000 AMD內顯寫程式機已買/未買/已付訂金(元): 預算/用途:已經有專門Intel CPU + NVIDIA電腦負責CUDA計算,現在需要一台程式機, 主要跑CMAKE & GCC, 或是ANDROID STUDIO也OK,$30000上下 CPU (中央處理器):AMD R7 4750G $9990 MB (主機板):Gigabytes B550M Gaming $340016
[菜單] 3960X 90k內EDA編譯機已買/未買/已付訂金(元):未買 預算/用途: CPU運算/編譯/EDA 因為目前EPYC方案的Server有點貴 所以老闆要我順便估一下消費級90K內可以長怎樣15
[菜單] 80k Linux build code 機已買/未買/已付訂金(元):未買 預算/用途:80k CPU (中央處理器):AMD Ryzen 9-5950X 3.4GHz 16核 MB (主機板):華碩 ROG STRIX X570-E GAMING WIFI II RAM (記憶體):金士頓 32G(16G*2) DDR4-360014
[情報] AMD Ryzen 5000 桌上型CPU價格繼續下跌距離Ryzen 7000 CPU的發布還有幾個月的時間,但AMD現有的Ryzen 5000系列已經獲得了 一些非常令人印象深刻的降價 Ryzen 9 5950X和Ryzen 9 5900X 等高階晶片現已在多家零售商處以高達250美元的折扣價 出售 AMD正在採取措施確保其AM4平台的市佔率仍能增長。到目前為止AMD已經推出了幾款主流
20
[菜單] 25K 老電腦升級9800X3D19
[情報] 極客灣 Apple M4 Pro/Max評測18
[心得] 反推 COUGAR SPEEDER - 人體工學電競椅7
[情報] Sony WF-1000XM5耳機5878元/BE88U 9111元2
[心得] FUNTE電動升降桌選購建議7
[開箱] JONSBO喬思伯N3 NAS機殼5
Re: [心得] Windows 11 測試版4
[情報] Adobe 全家餐 個人/企業/教育版 特價中2
[菜單] 30K老電腦升級1
[菜單] 50k魔物機1
[菜單] 45K內2K遊戲機1
[請益] 開模擬器 跟LOL需要的方向1
[菜單] 45K遊戲機不含OS1
[菜單] 55K魔物機不含OS1
[情報] DeepCool 雙11 指定送AG6203
[菜單] 50K遊戲機 可高