使用 eGPU 搭建機器學習工作站

原本有一張 AMD Vega 64 用於擴展 MBP 外接三螢幕,一張 Nvidia 1080 Ti 用於大主機。上個月入手 Nvidia 4090 之後,這張 1080 Ti 就閒置了。最近又有突發事件是上週裝 Vega 64 的 Akitio Node Pro 壞了。除了新購了 Razer Core X Chroma,另從朋友那裡買了一台 Akitio Node 重新佈局一下。

目前是:

  • 大主機:Nvidia 4090
  • 小主機(Intel NUC):Nvidia 1080 Ti + Akitio Node
  • MBP:AMD Vega 64 + Razer Core X Chroma

啟用 TB3 及顯卡

我的 Intel NUC 中是 Arch Linux,故參考官方 Wiki 配置驅動。因為機器是在自己家裡,不是公司,比較不擔心 DMA attack,所以採用暴力解法:先建一個新的 /etc/udev/rules.d/99-removable.rules 然後寫入:

ACTION=="add", SUBSYSTEM=="thunderbolt", ATTR{authorized}=="0", ATTR{authorized}="1"

重開機後即可啟用 thunderbolt 3 設備。通過 boltctl 可以看到設備資訊。

CUDA

要運行 CUDA 還需要安裝 Nvidia 驅動:

sudo pacman -S cuda nvidia

之後可以通過 nvidia-smi 確定是否能驅動顯卡運行。關於 CUDA 部分,我使用 PyTorch 來檢測。官方網站有提供安裝指令配置,我是選擇最新版的 CUDA 搭配 pip 安裝。

import torch
torch.cuda.is_available()

如果是 True 那就沒有問題了,一切運作良好。

Monero 挖礦

另外用挖礦來檢測一下顯卡功能。我曾經挖過一陣子的 Monero / XMR 幣,用的工具是 XMRig;雖然現在 Arch Linux 有提供二進位文件,但我喜歡自己搞。本體 XMRigCUDA plugin 需要分開編譯。

git clone <repo>
cd <repo>
mkdir build
cd build
cmake ..
make

完成後,從 CUDA-plugin 裡面複製 libxmrig-cuda.so 到 XMRig 本體資料夾。設定檔的部分可用官方生成器 configuration wizard 來產生。一開始的設定檔挺短的,不過 XMRig 好像會自己去填充必要資訊。

Nvidia 1080 Ti 的 hash-rate 一如當年也是 830 H/s 上下。另外在我的大主機上測試下,AMD R9 的 hash-rate 是 15300 H/s 而 Nvidia 4090 是 4500 H/s,差距十分驚人。