Featured image of post Tesla P4 Unraid 下折腾小记

Tesla P4 Unraid 下折腾小记

视频转码、AI画图 我全都要

最近在黄鱼捡垃圾时,发现一张散热改装深得我心的 Tesla P4 显卡,虽然已经溢价到598块(年前不带散热改装的还300不到来着T_T),还是拿下了,塞到自己小小的AIO主机里开始折腾,简单记录下在 unraid 上使用这张卡的记录

简单介绍

Tesla P4 这种卡设计之初都是放到服务器用的,因此都没有设计主动散热,毕竟服务器暴力扇力大砖飞,轻轻松松带走发热。而我们垃圾佬拿来家用时就不得不权衡一下噪音与散热了,因此简单的改装是很有必要的。常见的改装方案是在原装散热器后方3D打印出一个涡轮风扇,显卡长度增加了一截不说,也实在说不上优雅。

后置涡扇

此外我最喜欢的方案是 B站 鸦无量 的替换3D打印盖板,增加3组风扇的散热改装套件了,详细的可以参考视频 BV1oZ421q7qn

鸦无量 散热改装套件

而我这次购入的则是卖家定制不锈钢外壳,纯铜底板铜板散热器,3组风扇的版本,拿在手里沉甸甸的,很有质感,因为已经装进NAS里了,拆装比较麻烦,这里就直接使用卖家的图展示了。

闲鱼改造散热1

闲鱼改造散热2

闲鱼改造散热3

UNraid 上安装驱动并配置

首先需要安装 Nvidia-Driver 插件,可以自动检测当前设备上的 Nvidia 显卡并自动下载相应的驱动

nvidia_driver

….

Please make sure to disable and enable Docker if you installed the Nvidia driver for the first time! Settings ->Docker -> Enable Docker ‘No’ -> Apply -> Enable Docker ‘Yes’ -> Apply plugin: nvidia-driver.plg installed

参照安装成功的提示去设置里先停用docker ,再启用docker。

然后我们打开 plugins - Nvidia Driver, 记录下我们的显卡编号,如图上的GPU-4220501a-f1b0-d74e-ec65-b17844258a75; 并将显卡驱动版本从默认的 latest version 改为 available version 之一,避免 unraid 重启时重新去检测并下载 Nvidia 显卡驱动,导致启动时间拉长甚至在网络环境不佳的情况下无法启动Nvidia Driver

视频转码配置( jellyfin 为例)

我们在 jellyfin docker配置额外参数(Extra Parameters)加上 --runtime=nvidia

并添加两个变量 NVIDIA_VISIBLE_DEVICESNVIDIA_DRIVER_CAPABILITIES , 值分别为上面配置时拿到的 GPU-XXXYYYZZZ 编号和 all

jellyfin

jellyfin - playback - transcoding 选择 Nvidia NVENC 保存并重新启动 docker,选择一个电影测试一下即可。

jellyfin_setting2

这里我以 奥本海默 为例,可以看的已经成功转码播放,unraid 仪表盘也可以看到 P4 的使用情况(需安装 GPU Statistics 插件),以及在使用的APP jellyfin

jellyfin_setting3

jellyfin_setting4

AI 画图

选 P4 的一大原因自然是因为它 8 GB的显存,2560 个 CUDA 核心,不拿来狠狠地 AI 画图也是可惜了: )

unraid 应用商店搜索 stable diffusion,goolashe/automatic1111-sd-webui 这个整合镜像简单设置下就可以开画了!

我们将 Nvidia Visible Devices 参数的值填上之前获取的 GPU 编号启动即可

默认第一次启动时会在 /data/models 目录下载一些配置所需的模型文件,小文件还好,Stable-diffusion 目录下的 Stable-diffusionv1-5-pruned-emaonly.safetensors 可能很难下得动。这时候你可以在docker 的log 里找到 https://huggingface.co/ 开头的模型下载链接,在下载器里将其替换成 https://hf-mirror.com/ (一个国内镜像,速度还是很快的),下载完手动转移到 /data/models/Stable-diffusion 即可,后期你也可以找些别的模型放到这里,webui刷新一下即可调用。

FDM

万事俱备,我们来简单画张猫娘,这里我使用的模型是以前下载的 nordrin_v20

正向提示词随便写几个 cat_ears,2_girls, cute, young, flowers

反向提示词 bad hands (对 AI 画的手梁木了 XD)

Sampling method: DPM++2M,Schedule type: Karras ,其余默认,大概花了 17s 生成出来。生成的文件可以在 /output/txt2img里找到。

SD WEBUI

此时在仪表盘也可以看到,P4的显存被吃满了。

画图时的显卡占用

其他设置

静音调整

说实话,卖家这散热改装效果确实不错,就是声音有点太大了,三风扇满速时还是蛮吵的。于是我从PDD买了个小玩意,手动降速到满意的程度了,基本跟氦气盘读写时的声音差不多,也不怎么影响温度。旋钮在PCI挡板的位置,还是挺方便的

风扇集中调速

省电调整

当我们没有在使用这卡的时候,还是希望尽可能让它的待机功耗小一些的。这里提供一个网上找到的适用于 N卡的脚本,可以使用 user scirpt 插件,设置每小时启动一次。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#!/bin/bash
# check for driver
command -v nvidia-smi &> /dev/null || { echo >&2 "nvidia driver is not installed you will need to install this from community applications ... exiting."; exit 1; }
echo "Nvidia drivers are installed"
echo
echo "I can see these Nvidia gpus in your server"
echo
nvidia-smi --list-gpus
echo
echo "-------------------------------------------------------------"
# set persistence mode for gpus ( When persistence mode is enabled the NVIDIA driver remains loaded even when no active processes,
# stops modules being unloaded therefore stops settings changing when modules are reloaded
nvidia-smi --persistence-mode=1
#query power state
gpu_pstate=$(nvidia-smi --query-gpu="pstate" --format=csv,noheader);
#query running processes by pid using gpu
gpupid=$(nvidia-smi --query-compute-apps="pid" --format=csv,noheader);
#check if pstate is zero and no processes are running by checking if any pid is in string
if [ "$gpu_pstate" == "P0" ] && [ -z "$gpupid" ]; then
echo "No pid in string so no processes are running"
fuser -kv /dev/nvidia*
echo "Power state is"
echo "$gpu_pstate" # show what power state is
else
echo "Power state is"
echo "$gpu_pstate" # show what power state is
fi
echo
echo "-------------------------------------------------------------"
echo
echo "Power draw is now"
# Check current power draw of GPU
nvidia-smi --query-gpu=power.draw --format=csv
exit

User Scripts

总结

Tesla P4 虽然溢价不少,但是得益于免额外供电的设计,N卡的 cuda 生态,在 NAS 上的可玩性还是比较高的。

后续我可能再折腾下 MTPhotos cuda 版本的人脸识别分类等应用,让这张老计算卡继续发光发热~

Built with Hugo
Theme Stack designed by Jimmy