起因

一方面买书的数量小于预期(我发现一年中文书我大约就能读到4000块钱左右,更多的书可能读不完),另一方面请人来做讲座也没有请太多,导致临近年底还剩余了一些经费,遂决定提前来购置本来准备在第二年购买的工作站,用它来做一些之前没有做完的语义网络分析和最近的一个对于Github上项目的分析研究。这台工作站的构建过程成为了我很好的社会学观察的机会。

配置

在工作站的配置上也是一波三折。一开始准备转配一个纯CPU的计算平台,但是又考虑到之后可能可以等50系的显卡,可以做一些简单的模型的推断,所以思来想去放弃了zen2的捡垃圾之旅,而是选择了9950X的消费者CPU。主板则选择了X870E。这个主板有两条PCIe5 * 8的通道。万一哪天出去玩,还能带两张5090回来。结果决定购买工作站之后不久,系里又告诉我因为系里的经费没有用完,能够给我一些预算来购买GPU,又临时添加了两张4090D的涡轮显卡。之所以购买涡轮版的显卡,是因为采购的时候传出4090停产的消息,使得京东平台上正常价格的4090都消失了。最后,这台工作站的基本配置如下:

Component Specification
CPU AMD-9950X
Motherboard 华硕X870E Hero
Memory 海盗船DDR5 5600 96GB
Power Supply 长城两千瓦
Storage 长江储存TiPlus2TB
Fans noctua NF-A14 * 4
Cooler noctua NH-D15
Case 追风者614P
Graphics Card 4090D * 2

这个配置可以跑70B的量化模型,也可以做一些轻度的CPU运算,比如之前有一个matrix超过32GB的语义网络,现在应该能够画出来了。

Friction

没有想到的是,这台机器给我带来的问题不断。首先的小插曲是,京东提供的上门装机服务过于粗糙。装机的师傅一开始没有把内存插紧,在遇到内存报错的时候,反而认为是主板的BIOS版本太低。但X870E Hero是一块新主板,不存在BIOS版太低的问题。我把主板上的内存狠狠地按了一遍,机器就顺利开机了。

这是一台全风冷的机器,而且在Linux下还没有找到自动的风扇调节的驱动。随之而来的结果就是,这台机器噪音感人,并不能放在办公室直接使用,而是需要另寻房间摆放。我们系找了一个平常不太使用的讨论室,作为放置着台机器的房间,也顺便能够让其他老师一起使用。

因为X870E这块主板太新,最直接的一个问题是,主板上的Wi-Fi和蓝牙还没有Linux驱动。因此我只能先通过有线网络来让着台机器接入网络。但当我把网线插入的一瞬间,并没有显示任何的连接,网口也没有反应。我一开始以为这是因为Linux Kernel对于有线网卡也没有提供驱动,同时Reddit上的一些相关的讨论也加重了我的这个猜测。于是我急急忙忙下单了一块USB网卡。这块网卡让我发现,是放置机器的房间的网口出了问题,只能联系系里的行政老师修理网络。

于此同时,我把机器搬回了办公室,胡乱地临时架了起来,连上了办公室的网络。这下感觉是应该没有问题了。但基础设施再次成为了绊脚石。很突出的一个问题是,现在着台机器的网络连接非常不稳定,而且很多网络服务都连不上,比如说,安装了VS code server之后没有办法下载插件。甚至在校内SSH这台机器都出现了不靠谱的情况,如果出现了多个连接,着台机器往往就会直接断网,更不要说获取Github上的信息了。询问了同事,发现他也没有办法来搞定有线网络的问题,只能通过无线网络来保证网络连接的可能。在知道这一点后,我从京东上火速下单了一张腾达的AX900的网卡。这张网卡声称对于Linux有支持。

但到手之后又让我傻眼了。从官网上下载的驱动总是没有办法完成安装,一直在报错。仔细一查,Linux下的网卡支持简直是一个灾难,甚至有一个专门的Github Repo来讨论这个问题。在仔细选择之后,我选择了一个不知名厂商生产的USB Wi-Fi网卡,然后通过无线网络进行连接。

在这个间隙,空闲房间的网卡已经修复。于是我又开始折腾有线网络。我得到了很多矛盾的信息。一方面,在插上网线后,确实可以间歇性地访问一些国内的网站。但是也出现了很多的问题,比如说中国大陆常用的一个DNS服务器,114,居然没有办法访问,似乎有一个白名单。最后的时刻,学校的信息办公室告诉我可能需要拨号,但我已经直接放弃了,而是改用刚刚送到USB Wi-Fi。

尾声

最后,我获得了网络连接。在机器能够开机到我能够将它连上网络之间的一周多的时间内,它能够稳定连接上网络的唯一的方式就是通过USB连接我的手机做网络共享。我面对的是一个由诸多的patchwork拼凑起来的平台:学校的Wi-Fi和有线网络的架构,新的硬件和Linux的驱动,Linux对于消费硬件的支持等等等等。将着台工作站连上网络的过程,也是我自己对于STS和基础设施的一个日常观察。

(现在它正在角落里跑一些Zero-shot classification的任务,后续我会分享一些用它来做的研究。)