提示:文章内部分硬件较为小众,外加市场供求影响,价格可能会受到波动,请理智判断自身需求,有需要及时采购。作者没有和任何商家有关系,对部分数据会进行脱敏处理。
继上篇文章 EPYC7D12 8 盘 3.5 寸机械+多盘 nvme 闪存 [ 25G 高性能] NAS 搭建方案分享 已经过去了整整一年,为了“跟上 AI 浪潮”,我决定对 homelab 进行一次全面升级。
这次升级的主要目标是将原本的存储型转变为存算一体型的系统。要使机器具备大模型的推理能力,并具备一定程度的大模型微调能力和深度学习开发能力。此外,还需要确保系统在噪音敏感的家庭环境中运行时不会产生过多噪音。
我选择在原有小机箱的基础上进行改造,而不是使用商业的准系统机架式 GPU 服务器,主要考虑到以下:
原本机器是 6*PCIe 单槽半高的规格,而且现有 NVMe 硬盘占用了多数 PCIe 通道,直连的通道已经很难继续扩展 GPU 。更换扩展性更强的主板虽可行,但半人马座机箱对主板宽度的限制较大,简单调查后例如 H12SSL 、H13SSL 、rome D8 这些扩展更强的主板都会遇到版型超宽或放入后右侧空间过少导致无法接驳 SAS/SATA 硬盘的问题。对于 EPYC 平台,半人马机箱目前看起来只有 H11SSL 最为合适。
我曾考虑过半高单槽直插的 GPU ,包括 Tesla T4 、Tesla A2 、Tesla L4 ,甚至是魔改单槽散热款的 A2000 、A1000 SFF 、RTX 4060 等,但在计算剩余 PCIe 通道后,直插单卡无法完全满足我的需求。
接下来,我将详细介绍此次升级的具体内容和实现过程。
2024 年前市场上出现了一批属于超微 1028TVRT 系统的备件,即 AOM SXM2/AOM SXMV 底板,为 DIY 玩家上 SXM2 GPU 提供了条件。可以安装 4 块 Nvidia SXM2 插槽的 GPU 。底板可以提供四路 NVLink ,是 PCIe 设备无法达到的。进行大模型调优时 NVLink 必不可少,
而且 tesla V100 16G-SXM2 价格比 PCIe 版本低不少。
安装过程中,底板为裸 PCB 板,需要处理与宿主机的连接和 GPU 散热问题。AOM SXM2 使用的是非标准插座“JPCIE”和主机进行连接,好在已经能买到 JPCIe 转 PCIe 的连接线/转接卡。
起初尝试过自行 DIY 机箱、DIY 分体软管水冷散热,甚至采购了水冷头,但进展不顺利。若采用水冷方案,外挂的冷排和走线以及底板的固定都是不小的工程。
三月底,市场上出现了适用于 AOM SXMV 底板的成品 3U 准系统,内置合理的风道,可以直接使用原装拆机的风冷散热。经过测试,成品 3U 准系统的噪音在可接受范围内,风扇通过滑动电阻手动调节转速,这样散热和噪音问题都解决了。
仅使用四张 V100 ( Volta 架构) GPU ,因其架构不够成熟,Tensor Core 没有 INT4 、INT8 整数计算能力,不支持 INT4 、INT8 意味着用 V100 推理时效率会很低,只能使用 GPU SM 核心来计算,Tensor Core 无法发挥作用。四卡 V100 硬跑 INT4 算力可能都超过不了一张 3090 显卡,无法满足要求。而后续的 turing 架构开始支持。
64G 显存如果使用 FP16 模式推理,只能跑 7B 小模型,当前开源模型要发挥好的效果也就是能一定程度展现出涌现性公认是模型体积至少要大于 30B 。
考虑后认为需要继续扩展 GPU 设备,以便尽可能在 FP16 模式下运行大模型,或用 PCIe GPU 单独推理大模型,以达到较快的输出速率。目前性价比最高的推理卡是 2080Ti 魔改 22GB 版,20 系这代 geforce GPU 的 NVLink 并未被驱动限制,实测 2080Ti 和 V100 的 P2P NVLink 规格完全一致。
另外,2080ti 是最后一代可以开 vGPU 的游戏卡。
四月份市场上出现了少量 PM8546 96xG3 芯片的 PCIe 扩展柜,型号浪潮 BX512-IP 属腾讯定制 OEM 产品。可用一个 PCIe 3.0x16 扩展出五个 PCIe 3.0x16 ,该定制系统支持最高三槽厚显卡。需要注意,浪潮 BX512-IP 如果需要安装 nvlink 桥需要使用 3-slot 规格。
虽然 PEX8796 也有相同的扩展性,比如去年大船到岸的 dell VK911 (右图)。去年下半年 kcores 也制作了 PEX8796 转出 10 个 SFF-8654-8i ( PCIe 3.0x8 )的 DIY 扩展方案(左图),但拿 PEX8796 扩展卡来加 GPU 还是需要 DIY 固定/散热/供电结构,工程难度不低。
尝试安装浪潮 BX512-IP 扩展柜时,宿主调用 GPU 时出现系统崩溃,表现为“watchdog: BLD: soft lockup CPU#13 stuck for 26s! Iny open 0:865”。
查看 dmesg 记录后,问题确定为 GPU 连接中断,推测是 PCIe 信号完整性问题,在 BIOS 中禁用 DMA 保护和 PCIe Spread Spectrum 后,系统无报障,问题得以解决。
踩坑建议:不推荐消费级主板使用浪潮 BX512-IP 扩展柜,做好无法兼容的准备。
浪潮 BX512-IP 扩展柜自带的函道扇虽然可以调速,最低 25%转速也很吵,遂全部拆除,替换为两把 12025 风扇,放置在靠近 switch 芯片的隔层。
改装后实测可以静音化运行,web 后台检测到芯片控制在 40 ~ 50 度,远低于 85 度阈值
扩展柜最高可以支持 5 卡扩展,这里先暂时插两张 2080ti+一张 tesla P4 。经测试也可以插 nvme 硬盘
超微 H11SSL 主板在 pve 系统启动时会随机丢失部分 nvme 设备,需要彻底断电重启后才能重新识别。该问题去年刚组装好就有,换主板也没解决。推测是由于 PCIe 设备过多,Linux 系统在引导时来不及全部加载。存算一体改装后因为 pcie 设备增多,问题更加凸显。
为了解决这个问题,新购买了一个 PEX8747 PCIe 扩展卡。将一个 NVMe 盘插去自用的台式机,剩下四张 2TB NVMe 盘全部挂在 PLX 芯片下。
因为去年乘大船有购买一个 sn640 8T ,四枚 2T NVME+sn640 8T 共 16T 闪存池也够用。经测试系统启动时不再随机丢失 PCIe 设备,所有设备均能正常加载和识别,问题得以解决。
将原本的 EPYC 7D12 更换为 EPYC 7282 ,提升了整体计算能力。7D12 虽然功耗较低,但单核频率较低,而 7282 在功耗稍微增加的情况下,提供了更高的频率(全核 3.1GHZ)和更多的内存通道( 4→8),适合 GPU 计算需求。
最近受挖矿影响,EPYC 主板和 CPU 价格上涨,7D12 大涨,7282 因大船到货市场供大于求,价格相对较低。于是决定“升级”到 7282 ,甚至回血了 1k+(笑)
此外,新一批 7K62 也刚到岸,性价比也很高。新购可以考虑 7k62 。
内存从 96GB 升级到 384GB 。大模型的训练和推理对内存容量需求非常高,需要 2 倍于显存的内存容量才比较稳妥。因此采购 8 条 64g recc 2400 内存,共 512GB
换用 7282 后还是遇到了掉内存通道的问题,八通道只认出了七通道,再重启就只剩六通道了。:(((
推测是主板问题,毕竟 u 买来是全新未上机的。最终决定卖掉两条内存,采用六通道 384GB 内存配置,这样也能完全满足需求。
踩坑建议:epyc 主板容易出现问题,掉内存通道掉 pcie 特别头疼,正经用就全新的吧
将原有的 52TB SSD 调整为 42TB+8TB SSD 解决稳定性(上文提到)闪存池由 winserver 虚拟机创建,共享到 pve 宿主或任意虚拟机
四卡 v100-16 800gbps 互联
双卡 2080ti 800gbps 互联
p2p 实际测速:
Unidirectional P2P=Disabled Bandwidth Matrix (GB/s)
D\D 0 1 2 3 4 5
0 775.43 10.12 11.50 11.40 5.78 5.77
1 10.16 780.47 11.53 11.45 5.77 5.80
2 11.58 11.57 779.69 10.11 5.78 5.79
3 11.53 11.55 10.13 780.47 5.77 5.78
4 5.79 5.78 5.82 5.96 531.04 5.78
5 5.81 5.80 5.83 5.83 5.78 530.32
Unidirectional P2P=Enabled Bandwidth (P2P Writes) Matrix (GB/s)
D\D 0 1 2 3 4 5
0 775.82 48.49 48.48 48.48 5.78 5.77
1 48.48 779.30 48.48 48.48 5.77 5.76
2 48.48 48.49 778.14 48.48 5.76 5.77
3 48.48 48.48 48.48 779.30 5.77 5.78
4 5.77 5.80 5.86 5.93 530.78 47.10
5 5.77 5.77 5.78 5.86 47.10 530.14
Bidirectional P2P=Disabled Bandwidth Matrix (GB/s)
D\D 0 1 2 3 4 5
0 777.75 10.50 14.33 14.36 8.50 8.62
1 10.45 759.42 14.43 14.45 8.58 8.61
2 14.53 14.45 779.11 10.43 8.54 8.63
3 14.59 14.46 10.39 779.50 8.54 8.58
4 8.58 8.62 8.60 8.53 531.63 6.10
5 8.56 8.51 8.58 8.57 6.11 531.27
Bidirectional P2P=Enabled Bandwidth Matrix (GB/s)
D\D 0 1 2 3 4 5
0 779.50 96.84 96.88 96.83 8.55 8.63
1 96.90 779.11 96.92 96.92 8.48 8.56
2 96.92 96.92 781.25 96.91 8.41 8.54
3 96.90 96.91 96.91 779.30 8.52 8.53
4 8.59 8.64 8.62 8.56 531.61 94.11
5 8.56 8.53 8.56 8.53 94.14 530.43
GPU0 GPU1 GPU2 GPU3 GPU4 GPU5 CPU Affinity
GPU0 X NV2 PHB PHB NV2 NV2 0-31 0
GPU1 NV2 X PHB PHB NV2 NV2 0-31 0
GPU2 PHB PHB X NV2 PHB PHB 0-31 0
GPU3 PHB PHB NV2 X PHB PHB 0-31 0
GPU4 NV2 NV2 PHB PHB X NV2 0-31 0
GPU5 NV2 NV2 PHB PHB NV2 X 0-31 0
简单跑一个通义千问 110B 版本测试下:
以下是此次 homelab 升级过程中涉及的主要硬件和相关价格(价格仅供参考,具体以实际采购为准):
项目 | 型号/名称 | 数量 | 单价(人民币) | 备注 |
---|---|---|---|---|
GPU | V100 SXM2 | 4 | 6400 | 每张约 1600 |
GPU | 2080ti -22g | 2 | 5500 | |
CPU | AMD EPYC 7282 | 1 | -1050 | 替换原有 EPYC 7D12 ,减去旧 u 回血,价格负 |
内存 | 64GB DDR4 2400 ECC | 6 | 2300 | 总计 384GB ,减去旧内存回血 |
连接器 | PCIe 转 SFF-8654-8i | 3 | 520 | 140 |
连接器 | JPCIe 转 SFF-8654-8i | 2 | 280 | 140 |
连接器 | SFF-8654 交叉线 | 6 | 300 | |
连接器 | nvlink 3lot | 1 | 200 | 2080ti 用 |
GPU 扩展底板 | AOM SXMV | 1 | 1250 | 裸板 |
GPU 扩展柜 | 用于 AOM SXMV 底板 | 1 | 980 | 准系统带电源 |
GPU 扩展柜 | 浪潮 BX512-IP | 1 | 2800 | 准系统带电源 |
PCIe 扩展卡 | PEX8747 4nvme | 1 | 350 | 解决掉卡问题 |
散热器 | 拆机 sxm2 gpu 散热器 | 4 | 600 | 单价 150 不包邮 |
有问题评论区交流,感谢你的观看!此外提醒,认清需求,理智消费~
1
kk2syc 97 天前
好!快进到人手一个家用超算机房!
|
2
dapaoge 97 天前
厉害 大佬
|
4
EchoWhale 97 天前 via iPhone
羡慕大房子
|
5
goodryb 97 天前
要不是弱电箱放不下,高低我也整一套
|
6
b1u2g3 97 天前
OP 你风道没有考虑么?看着热散不出去呀。
|
8
Navee 97 天前
🐂🍺
这是自建机房了吧。 |
9
sdd11 97 天前 via iPhone
2080ti 和 v100 之间并没有 nvlink 直连吧,是经过了 plx 的,为啥也能跑满 nvlink 得带宽呢
|
10
NCZkevin 97 天前
太强了
|
11
inorobot 97 天前 via iPhone
我是整了 4 块 4060Ti 跑推理,64G ,如果上拆分能装 8 卡,能 128G ,基本各种模型都能跑了
|
12
piero66 OP @sdd11 v100 和 2080ti 是两个簇,比裸奔没桥的好点,比不上 a100 后面的八路 nvlink 。v100 这代最大就四路 nvlink ,八卡 v100 也一样是两个簇走 cpu 交换数据
|
14
chesha1 97 天前
论单精度性能,4 张 v100 还不如一张 4090 吧,不过显存大确实是巨大优势
|
15
GrayXu 97 天前
完美,看完舒服了
|
17
kenny9572 97 天前
不错,很有参考意义
|
18
zzzyk 97 天前
最后的交换机有点格格不入呀。
|
20
zhaidoudou123 97 天前
为什么你的 freeimg.cn 的图我一个都打不开..😂
|
21
piero66 OP @zhaidoudou123 chiphell 、zhihu 、coolapk 、bili 不需要图床的也投稿了,去那边看吧
|
22
NewHere 97 天前
为啥我去黄鱼上看,浪潮 BX512-IP 是 4 卡扩展柜,而且是只能插涡轮卡的那种
|
23
zhaidoudou123 97 天前
|
24
sdd11 97 天前
@piero66 你这个 P2P 的测速的 GPU 编号是不是和 topo 的编号不一致,测速的 0 1 2 3 号 GPU 到自己的带宽是 780G ,4 5 号 GPU 到自己的带宽是 530G ,530G 的这两个才是 2080ti 吧。这样就能解释 P2P 带宽了,就是只有 NVLINK 直连的才是 800G ,只要走 PCIE 就很慢。
|
26
0o0O0o0O0o 97 天前 via iPhone
别人家的 homelab
|
28
ihuotui 96 天前
不如直接 4090 吧,个人一般跑推理不是训练。
|
30
Pteromyini 96 天前
@ihuotui #28 在显存面前算力还是不够看啊,两个 4090 48GB 显存撑死跑 34B 这个规模的模型,70B 以上的规模 q4 量化都不太够
|
31
wm5d8b 96 天前 via Android
感谢 op 分享 BX512-IP 扩展柜,我之前在考虑使用多个 oclink 扩展坞的方案,还是这个扩展柜方便
|
32
comlewin 96 天前
能不叫 homeidc 啊
|
33
akin520 96 天前
看着你的感觉超静音呀,我的 4 卡 P100,声音超大呀
|
34
ScqLl 96 天前
要不是电费太贵我也想整了,幸好有云 GPU
|
35
playboy0 96 天前
VK911 一共都没有多少货,有一个在你手里呀,牛
|
37
hawei 95 天前
好赞
|
38
wm5d8b 95 天前 via Android
op 的 BX512-IP 扩展柜 可以分享下入手渠道吗,我找了找没有短的,都是 700+长的,switch 芯片在风扇正前方
|