动机
之前一直想装一个显卡作为训练机使用,不过一直没有下定决心,直到最近发现P100显卡降到低价才选择这张计算卡。总的来说选择它的原因主要有以下几种:
- 16GB ECC显存,足够应付我手头上大部分训练场景,且玩大模型推理也不会吃力
- DataSheet给出的纸面数据大概10TFLOPS的FP32算力,在这个价位来讲应该算是性价比极高了
- NVIDIA官方编码矩阵中这张显卡有3路视频编码器,支持H264和HEVC
- 我的台式机是有集成显卡输出的,如果显卡有显示输出也没有什么用,计算卡就刚刚好。
当然网上买的这种低价的计算卡一般来源是服务器集群上拆下来的,虽然比矿卡好但是还是有一些问题:
- 散热是用卡表面的密闭风道,这个在服务器上是有现成风扇能够产生气流散热的,但是一般的台式机需要自己加散热。不加散热的话80度高温下就会降频(见Product Brief)
- 功耗大,大概能到250W,当然实际上比较难跑满这个功率,一般连续训练大概180W
- 显卡架构为Pascal,软件不一定兼容。这张卡的GPU Compute Capability为6.0,某些软件不一定支持
这几个问题在安装过程中都会遇到,下面会介绍如何解决
硬件安装
电源
这张卡的电源插槽用的是和CPU一样的8Pin电源接口,这个与常见显卡的PCIE接口插槽不一样。在Product Brief里面提到如果你的电源有多一个CPU 8Pin电源接口(多见于服务器电源)就可以直接插上去,或者用两根PCIE电源转8Pin,其线序定义如下图。如果你的电源只能用PCIE供电线为显卡供电的话就必须用这条线,这条线也可以在网上买

这张卡的最大总功耗是250W,其中8pin电源口最大240W,PCIE插槽12V和3.3V最大分别为66W和10W。一般采用650W及其以上的电源就足够了,但是选用电源的时候还是务必关注主板电源功率和8Pin电源线输出功率是否充足。另外Product Brief指出如果用两根PCIE电源转8Pin,两根线必须能够同时输出120W,因此为避免烧电源口,尽量采用独立的两根PCIE供电线接入转接线的两口。
散热
散热就有比较多的发挥空间了。我目前看到的主要有三种改造方案:
- 彻底更换散热器,例如换水冷或者其他相似尺寸显卡的散热器+风扇(例如1080Ti显卡),效果最好但是成本较高
- 破坏外壳以及散热器上表面,在散热器上表面增加风扇,这是和目前主流显卡的散热方案一样
- 不破坏外壳,在原有风道的出口上增加涡轮风扇或者用3D打印件将大风扇的气流引入风道内部。这种是NVIDIA官方默认散热方式,且散热对风量有给出具体要求

我最后选择的是第三种方案。如果用风扇的话目前大部分的小风扇或者涡轮风扇风量(CFM)都不够,如果用大风量小风扇或者涡扇的话噪音会非常大,所以最后相对更好的方案是引入大风扇的气流散热。风扇安装可以用3D打印件,这个可以选择上网买,也可以自己打印,在Makerworld上有现成模型。另外需要预估机箱是否能装下增加打印件的风扇,P100显卡长约266.7mm,我最后用的打印件风扇厚度大概为6~7cm
软件
BIOS设置
- 打开Above 4G Decoding(没有这个选项的主板是不支持这张显卡的)
- 打开CSM Support
- (可选)打开Resize BAR
驱动安装
Windows和Linux目前都可以装官网数据中心驱动,安装完成后用nvidia-smi验证是否安装成功。R580之后的驱动不再兼容Tesla P100,因此理论上最新的CUDA版本只能到12(实际上更新到最新版的CUDA还是能到13,不过13的新功能这张卡用不上)。如果在Windows下要把这张计算卡作为一般显卡使用需要将其从TCC模式切换到WDDM模式,目前直接装官方CUDA 12.4应该是不行了。我用的是之前其他人装过的驱动,这种方法需要改注册表,主要步骤如下:
- 找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}下四位数字项,通过项下面的Driver Desc项确认对应设备,找到P100显卡的项 - 在该项下面删除AdapterType,修改FeatureScore,值从 CF 修改为 D1。(十六进制,hex),新增EnableMsHybrid,类型为 DWORD(32bit),值为 1。
- 在输出卡项里面新增键值EnableMsHybrid,类型为 DWORD(32bit),值为 2。
- 重启电脑,在任务管理器中性能选卡下应该能看到多了一个P100显卡出来
风扇控制
- Windows:FanControl
- Linux(Ubuntu22.04):Coolercontrol
Linux下需要先配置使得软件能够读取显卡温度。首先用sudo apt install lm-sensors命令安装sensors,其次需要配置驱动使其输出温度到hwmon,执行之后用命令1
2
3sudo tee /etc/modprobe.d/nvidia.conf <<-'EOF'
options nvidia NVreg_EnableHwmon=1
EOFsudo update-initramfs -u更新initramfs,重启。开机后用sensor命令应该能够看到显卡温度。此时再打开Coolercontrol就能够选择显卡作为风扇调速输入了。
测试软件
这张计算卡毕竟是二手拆机卡,买过来还是要验证是否有问题。首先可以通过以下两个命令分别检查PCIE通信以及内存状态
1 | nvidia-smi pci -gErrCnt |
PCIE状态中除了L0_TO_RECOVERY_COUNTER之外其他的计数器应该都是0,若不为0检查PCIE插槽是否插好。而ECC状态和Page Retirement所有项都应该为0,Remap rows下的两个Error应该均为0,若其中一项不为0则表明显存可能有问题。这里的ECC错误计数实际上是可以手动被清0的,因此最好的方案还是自己用工具测一次。在Linux下能用DCGM自动跑测试检查一遍。安装DCGM的方法如下:首先选择对应系统的版本的源目录,例如Ubuntu22.04为
1 | https://developer.download.nvidia.cn/compute/cuda/repos/ubuntu2204/x86_64/ |
用浏览器打开,在下面找到datacenter-gpu-manager-4-core-xxx.deb和datacenter-gpu-manager-4-cuda12-xxx.deb两个版本号相同的包,用dpkg -i安装即可。根据官方文档,即使你在P100显卡上安装了CUDA13的驱动,也需要安装CUDA12的DCGM否则会报错。安装完成后执行dcgmi --help应该会帮助有输出运行。成功安装后执行
1 | dcgmi diag -r 4 |
即可运行测试,-r 4和-r 3都会烤机测试,而-r 4会增加显存测试,运行时间会比较长。运行这两个测试时中间有一段时间显卡功率会跑满(约247W),这个时候可以执行watch -n 1 nvidia-smi观察显卡温度,验证上面散热的效果。测试完成后会显示是否通过
最终环境
- Windows10: CUDA 12.4,驱动版本 551.78
- Linux(Ubuntu22.04):CUDA 13.0,驱动版本 580.126.20