我最近看到這篇文章:Getting GPU-Accelerated PaddlePaddle Working in Docker on QNAP NAS
我按步驟調整了一些細節,目前 NAS 運作超過 36 小時,一直都很正常,已經過了 CUDA 常出錯的關鍵時段。還需要多觀察一段時間才能確定這是不是穩定的解決方案,但我會在這裡分享我的操作過程。
免責聲明:這個方法會修改 QNAP 套件檔案,操作風險請自行承擔。
注意:只是在 SSH 執行指令沒有效果。必須是在開機、核心驅動程序初始化時執行這些指令。
1. 查找你的 Nvidia GPU 驅動安裝路徑。
執行 echo "$(/sbin/getcfg NVIDIA_GPU_DRV Install_Path -f /etc/config/qpkg.conf)"。這會顯示你的 Nvidia GPU 驅動的安裝位置。
我的情況是:/share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV。把這個路徑記下來,後面會用到。
2. 修改核心驅動啟動腳本。
核心驅動啟動腳本的位置是:/share/ZFS1_DATA/.qpkg.local/NvKernelDriver/qpkg_NvKernelDriver.sh
檔案內容如下:
#!/bin/sh
QPKG_CONF=/etc/config.local/qpkg.conf
QPKG_NAME="NvKernelDriver"
QPKG_ROOT=`/sbin/getcfg ${QPKG_NAME} Install_Path -f ${QPKG_CONF}`
QPKG_INSTALL_BUILDNUMBER=`cat ${QPKG_ROOT}/QPKG_INFO | grep "Nas_BuildNumber" | cut -d " " -f 3`
CONF_DIR="/etc/default_config"
SYS_ULINUX_CONF="${CONF_DIR}/uLinux.conf"
BUILD_NUMBER=`cat ${SYS_ULINUX_CONF} | grep "Build Number" | cut -d " " -f 4`
MODEL_NAME=`/sbin/getcfg -f ${SYS_ULINUX_CONF} "System" "Model"`
IDS_FILE="${QPKG_ROOT}/nvda_legacy.ids"
case "$1" in
stop)
;;
start)
# more lines ...
就在 case "$1" in 這行的上面,新增以下內容:
mount -o remount,size=800M /
sleep 2
# 根據第 1 步查到的路徑調整這行。
/share/ZFS530_DATA/.qpkg/NVIDIA_GPU_DRV/NVIDIA_GPU_DRV.sh start
注意檔案權限和擁有者設定。
3. 重啟.
重啟你的 NAS。