我现有的笔记本内部有一张 GTX1060,6G 的显存在进行神经网络训练时不免有些捉襟见肘。此外,笔记本在进行训练时散热也是个大问题,遂萌生了搭建专用训练服务器的想法。作为一个贫穷学生仔,我的基本需求也很简单:便宜、大显存。冲浪一圈后,发现上古 Tesla M40 计算卡很符合我的需求,24G 显存版本在闲鱼基本 1200 元即可拿下。尽管其算力大致只与 GTX 980Ti 持平,但跑的慢远比不能跑强。如果预算还可以往上提个 1300 左右,大可直接拿下 Tesla P40 24G版本,算力可与 GTX 1080 Ti 持平。(2023年4月更新:现在闲鱼上P40 24G价格稳定在1000左右,M40 24G在500左右)
但是 Tesla 系列计算卡大多为被动散热设计,没有主动散热风扇。此外,计算卡上的供电为 EPS 供电接口,与显卡常用的 PCIE 供电接口并不相同[1,2]。收一个二手机架式服务器来使用是最为理想的,机箱内的暴力风扇可以给它提供充足的散热气流,riser 卡上也提供了专用的 EPS 供电接口。若要在台式机箱中使用 Tesla M40,不仅需要考虑散热改造,还要注意电源供电的问题。
EPS 8 Pin 与 PCIe 8 Pin 在接口样式与电气特性上都有区别。EPS 8 Pin 常用于主板 CPU 供电,因此你可以尝试购买适合你电源的额外的 CPU 线缆来给 Tesla M40 供电,但是强烈建议在实际接入前测量其电气特性是否正确。你也可以购置一条 PCIe 转 EPS 接口的电源转接线,该转接线使用两个 PCIe 电源作为输入,相对来说对大部分台式机电源较为友好。
原本在淘宝看上了一台二手戴尔 PowerEdge R720 服务器,商家给出的配置与报价如下:
类别 | 型号 | 数量 |
---|---|---|
服务器 | PowerEdge R720 3.5寸 8盘位机架式服务器 | 1 台 |
CPU | E5 2650 | 2 颗 |
RAM | 4G ECC 服务器内存 | 4 条 |
电源 | 750w | 1 个 |
合计 1695 元 |
由于机房下架服务器数量较多,其配件价格通常也较为便宜。例如 3TB 的服务器拆机 SAS 硬盘通常 150 元即可入手,1100W 服务器拆机电源也仅需 120 元。在台式工作站上,往往难以这样低廉的价格买到放心的拆机配件。然而,购入服务器来搭建训练平台往往需要面临下面几个问题:
如果你的使用场景对上述缺点不敏感,购置一台机架式服务器无疑是拥有最大兼容性的解决方案,更多的参考请查看[3,4]。因为机架式服务器较大的噪音不适用于安放在办公室使用,遂转而规划使用 X79 平台的台式工作站,其配置如下:
类别 | 型号 | 价格(元) | 购置渠道 |
---|---|---|---|
CPU | E5 2650V2 | 58 | 淘宝 |
CPU散热 | 杂牌六铜管散热器 适用 2011 针螺丝支架 | 62 | 淘宝 |
主板 | 华南 X79豪华大板 | 475 | 淘宝 |
内存 | 服务器拆机 DDR3 ECC 1600MHz 16G * 2 | 256 | 淘宝 |
硬盘 | 500G SATA SSD + 500G HDD | 0 | 自有 |
电源 | 二手 美商艾湃电竞 AJ850m 850瓦 | 300 | 闲鱼 |
计算显卡 | Tesla M40 24G | 1200 | 闲鱼 |
亮机显卡 | AMD Radeon HD 8470 | 0 | 自有 |
机箱 | 航嘉暗夜猎手5 | 89 | 淘宝 |
机箱风扇 | 航嘉清风 * 2 | 19.9 | 淘宝 |
合计价格 | 2459.9 |
硬盘使用了一块西部数据 SN550 500G 的 M.2 SATA 固态硬盘以及一块实验室拆机 500G 机械硬盘。由于学校支持挂载 EasyConnect 实现外网访问,而华南 X79 主板支持在开机时通过快捷键选取本次的启动盘 (Fast Boot)。因此,计划在固态硬盘中安装 Windows 10 ,机械硬盘中安装 Ubuntu,并将机械硬盘设为默认启动盘。这样一来,关机状态下只需要让他人帮我按下开机键便可以直接进入 Linux 环境,即使处于外网环境依旧可以通过 SSH 进行访问与控制。搭配 Tmux,可以非常方便的查看控制台的运行输出结果 ( 使用终端复用器 Tmux 解绑终端与会话: https://blog.csdn.net/sements/article/details/124837526?spm=1001.2014.3001.5501)。而日常使用时,只需要在启动时按住快捷键 (F7) 即可选取进入 Windows 系统。
首先,Tesla M40 不带显示接口,作为台式工作站使用的话需要为其搭配一张亮机显卡。这里我使用的是实验室拆机显卡 ATI HD 8470。如若你准备使用 NVIDIA 的显卡作为亮机卡,请注意 Tesla M40 的驱动是否兼容。我尝试参考他人的方案[5,6,8]在 Windows 10 中选择 Tesla M40 作为高性能 GPU 进行显示,发现了以下的一些问题:
其次,如若你准备使用其他主板或电源,请注意以下几点:
此外,请尽可能选择拥有足够的显卡及其附加风扇的安装空间的机箱(建议 320CM 以上)。
尽管依靠 PCIe 挡板足以固定住这张计算卡,但考虑到其本为服务器竖插设计,添加一个外部支撑更为保险。相比购置专用的显卡支架,我选择裁剪快递箱瓦楞纸板这种更为环保的方式。其支撑效果好,支持任意调节高度,并且由于瓦楞纸板自身结构特性,还可以滤除部分震动对计算卡的影响。
显卡到手后,首先要解决的便是其在机箱内的散热问题。设计用于服务器环境的 Tesla M40 拥有较大的被动散热面积,适合在服务器等高气流环境中散热,但在个人台式工作站中使用极易触及其温度墙造成过热死机。目前国内外常用的散热改装方法大致可分为:风冷、水冷或者外挂风扇。本着成本与安全优先的原则,这里不讨论水冷改装。
在显卡外加装风扇吹风的方案[5-7]便宜大碗,但美中不足的是会显著增加显卡的体积,并且需要自购合适的螺丝进行安装。常见的风扇选型有服务器暴力风扇,9/12cm 家用机箱风扇,以及笔记本电脑常使用的涡轮风扇(鼓风机式)。
由于 Tesla M40 的散热片有折弯,不适用 Tesla K80 等开放式散热片上外挂风扇的做法。当然,虽然这里不推荐对原装散热进行开膛手术,但如果你想尝试,可以参考链接[12]中的做法进行改造。
我首先尝试了 3628 服务器暴力风扇,风扇型号为 DB03628B12S,外形尺寸为 36 * 36 * 28 mm。固定这种风扇的方式可大致分为两类,一类是使用螺丝或胶带将其固定在显卡末端,另一类则是 3D 打印专用的风扇罩来固定。如若选择直接使用螺丝进行固定,需要一颗 M3 * 35 mm 螺丝来将风扇固定至显卡末端的螺丝孔上,并依靠拧紧螺丝施加的压力或者靠在电源线上防止风扇移动。如若你选择的风扇厚度与我的不同,可选购比风扇长约 3mm 的螺丝。
直接固定的方式成本最低,后端增加长度也仅有风扇自身的 28mm,但该方法大多只能固定一个风扇。若想压榨散热,还需选择专用的 3D 打印的风扇罩。参考链接[10]提供的可对接两个 3628 风扇的风扇罩模型可以较好的满足需求,但该风扇罩在接入风扇后会在显卡后端增加约 60mm 长的空间占用,整卡带风扇长度将达到 330mm 左右。如若准备选择该方案,请注意你的机箱对显卡长度的限制。此外,部分设计给其他 Tesla 计算卡使用的风扇罩可能也可以使用,但是需要注意其固定至散热器末端的螺丝开孔是否为适用于 Tesla M40 的均匀分布式。
受限于风扇尺寸限制,小尺寸暴力风扇提高风量的唯一途径便是增加转速,这不可避免会产生的噪音。即使使用风扇调速器,也难以在噪音与风量间达到令人满意的平衡。在这种情况下,可以尝试寻找可适用更大尺寸风扇的风扇罩。闲鱼上有部分卖家出售自制的 9 厘米风扇罩模型,可以购置后自行打印安装。
值得注意的是,加上这类风扇罩后,计算卡整体的长度将达到 300mm 左右,而常见的 9 厘米风扇厚度大多为 25mm ,少部分薄款风扇为 15mm。这意味着整体长度将达到 325mm左右,且会向下侵占一部分机箱空间。
除开常见的轴流风扇,市面上还有涡轮风扇。4020 涡轮风扇适合直接塞在计算卡散热器末端进风口,但购入后实测的风量差强人意,故没有尝试该方案。
由于机箱空间有限,最终还是选择替换为主动散热器的方案。如若想替换 Tesla M40 原装的散热器为主动风冷散热,需选购 58 * 58 mm 孔距的散热器,并且要确保板卡尾端的供电接口不会与散热器翅片产生冲突。此外,还需要注意是否有孔位来固定 PCIE 挡板,否则显卡只能依靠插槽支撑。根据搜集到的资料来看,改装者们推荐的散热器有:
上述散热器的尾端都为供电接口留出了空隙,大多仅需要简单的对散热翅片进行修剪即可适用于 Tesla M40 计算卡。出于散热效果的考虑,更推荐选购 1080Ti 及以上的散热器。注意,仅实际上手确认影驰 GTX 1080Ti 大将可兼容修改,如欲使用其他散热器型号,请确认是否兼容
原装散热的拆解较为简单,卸下所有螺丝即可,原装散热所使用的螺丝如下表所示:
位置 | 型号 | 数量(颗) |
---|---|---|
外壳 | 内六角沉头 M2*5 | 8 |
背板 | 十字沉头 M2.5*5 | 1 |
背板 | 十字沉头 M2.5*7 | 14 |
核心散热 | 十字沉头弹簧螺丝 M2.5*9 | 4 |
PCIe 挡板 | 十字沉头 M2.5*5 | 3 |
由于购置的二手主动散热器大多不带背板,因此将继续使用原装散热的背板。如若你希望更换背板上显存的导热垫,选购 1.5mm 厚度的即可,这个厚度的导热垫也适用于正面显存。
在安装过程中,我所用到的材料如下表所示:
类别 | 详情 | 购置渠道 | 价格(元) |
---|---|---|---|
散热器 | 影驰 GTX 1080Ti 大将(GALAX GTX 1080Ti EXOC) | 闲鱼 | 100 |
导热硅脂 | 信越7921 | 淘宝 | 10 |
导热泥 | 7W/m-K 20g | 淘宝 | 33.9 |
PCIe 挡板 | 与影驰 GTX 1080Ti 大将配套的挡板 | 淘宝 | 15 |
风扇温控模块 | 温控风扇调速模块,DC调压 | 淘宝 | 10 |
螺丝 | 与影驰 GTX 1080Ti 大将配套的 M2/M3 螺丝与垫片 | 自有 | - |
高温胶带 | 绝缘与固定温控模块 | 自有 | - |
跳线 | 用于延长散热器风扇供电线 | 自有 | - |
合计 | 168.9 |
值得一提的是,这里我选购的导热泥为 7W/m-K,与莱尔德 HD90000 的导热能力接近。实测 M40 计算卡在训练过程中的发热量尚不需要如此高规格的导热泥。出于成本考虑,选取 3W/m-K 左右导热能力的导热泥的即可。此外,20g 导热泥只够单面显存及供电部分使用,如若你准备给背板处的显存也更换为导热泥,建议购置 40g。
修剪散热翅片,延长散热器风扇供电线,安装螺丝固定散热器后,更换工作便大功告成。虽然板卡上靠近散热器部分的 EPS 链接器针脚为接地,还是建议修剪散热器翅片后在断面处黏贴高温胶带,以防后续拆装时划伤或短路。在安装过程中可能出现需要添加垫片的情况,因此建议预先备好十来个左右的 M3 垫片。
测量没有短路后,便可将其接入电脑进行测试了。在此之前,可以将购置的温控风扇模块安装好。建议使用高温胶带包裹其金属头部预防短路,并将温控探头伸入到散热器的热管之间,注意不要与散热器风扇有刮擦。
使用 Ki-Unet 的训练过程作为散热与显存容量测试。由于训练过程中 GPU 利用率存在波动(可能为网络结构问题),因此测试结果仅供参考。GPU 热点温度维持在 70° 以下,平均温度约 50°。数据集中图像大小为 512 *512,缩放 0.5x 进行训练,显存占用 14.7G。训练机安放在我身侧20cm左右的位置上,整体训练过程中可以很明显感受到温控模块在实时调整散热器风扇转速,但整体噪音依旧在可接受的范围内。