feat: enhance GPU backend detection in LocalAGI installation scripts

This commit is contained in:
John Doe
2026-03-04 00:09:48 -05:00
parent d3d1da15cc
commit 565705e837
2 changed files with 34 additions and 8 deletions

View File

@@ -32,6 +32,16 @@ catch_errors
resolve_backend() {
local requested="${var_localagi_backend:-${var_torch_backend:-auto}}"
local backend="cpu"
local gpu_type="${GPU_TYPE:-unknown}"
local has_nvidia="no"
local has_kfd="no"
local has_amd_pci="no"
local has_amd_vendor="no"
[[ -e /dev/nvidia0 || -e /dev/nvidiactl ]] && has_nvidia="yes"
[[ -e /dev/kfd ]] && has_kfd="yes"
lspci 2>/dev/null | grep -qiE 'AMD|Radeon' && has_amd_pci="yes"
grep -qEi '0x1002|0x1022' /sys/class/drm/renderD*/device/vendor /sys/class/drm/card*/device/vendor 2>/dev/null && has_amd_vendor="yes"
case "$requested" in
cpu | cu128 | rocm7.2)
@@ -39,19 +49,21 @@ resolve_backend() {
;;
*)
if [[ "${var_gpu:-no}" == "yes" ]]; then
if [[ -e /dev/nvidia0 || -e /dev/nvidiactl ]]; then
if [[ "${gpu_type}" == "NVIDIA" || "${has_nvidia}" == "yes" ]]; then
backend="cu128"
elif [[ -e /dev/kfd ]]; then
elif [[ "${gpu_type}" == "AMD" || "${has_kfd}" == "yes" ]]; then
backend="rocm7.2"
elif lspci 2>/dev/null | grep -qiE 'AMD|Radeon'; then
elif [[ "${has_amd_pci}" == "yes" ]]; then
backend="rocm7.2"
elif grep -qEi '0x1002|0x1022' /sys/class/drm/renderD*/device/vendor /sys/class/drm/card*/device/vendor 2>/dev/null; then
elif [[ "${has_amd_vendor}" == "yes" ]]; then
backend="rocm7.2"
fi
fi
;;
esac
msg_info "Backend detection: requested=${requested}, var_gpu=${var_gpu:-no}, GPU_TYPE=${gpu_type}, nvidia=${has_nvidia}, kfd=${has_kfd}, amd_pci=${has_amd_pci}, amd_vendor=${has_amd_vendor}, selected=${backend}"
echo "$backend"
}

View File

@@ -29,6 +29,16 @@ header_info "$APP"
resolve_backend() {
local requested="${var_localagi_backend:-${var_torch_backend:-auto}}"
local backend="cpu"
local gpu_type="${GPU_TYPE:-unknown}"
local has_nvidia="no"
local has_kfd="no"
local has_amd_pci="no"
local has_amd_vendor="no"
[[ -e /dev/nvidia0 || -e /dev/nvidiactl ]] && has_nvidia="yes"
[[ -e /dev/kfd ]] && has_kfd="yes"
lspci 2>/dev/null | grep -qiE 'AMD|Radeon' && has_amd_pci="yes"
grep -qEi '0x1002|0x1022' /sys/class/drm/renderD*/device/vendor /sys/class/drm/card*/device/vendor 2>/dev/null && has_amd_vendor="yes"
case "$requested" in
cpu | cu128 | rocm7.2)
@@ -36,19 +46,21 @@ resolve_backend() {
;;
*)
if [[ "${var_gpu:-no}" == "yes" ]]; then
if [[ -e /dev/nvidia0 || -e /dev/nvidiactl ]]; then
if [[ "${gpu_type}" == "NVIDIA" || "${has_nvidia}" == "yes" ]]; then
backend="cu128"
elif [[ -e /dev/kfd ]]; then
elif [[ "${gpu_type}" == "AMD" || "${has_kfd}" == "yes" ]]; then
backend="rocm7.2"
elif lspci 2>/dev/null | grep -qiE 'AMD|Radeon'; then
elif [[ "${has_amd_pci}" == "yes" ]]; then
backend="rocm7.2"
elif grep -qEi '0x1002|0x1022' /sys/class/drm/renderD*/device/vendor /sys/class/drm/card*/device/vendor 2>/dev/null; then
elif [[ "${has_amd_vendor}" == "yes" ]]; then
backend="rocm7.2"
fi
fi
;;
esac
msg_info "Backend detection: requested=${requested}, var_gpu=${var_gpu:-no}, GPU_TYPE=${gpu_type}, nvidia=${has_nvidia}, kfd=${has_kfd}, amd_pci=${has_amd_pci}, amd_vendor=${has_amd_vendor}, selected=${backend}"
echo "$backend"
}
@@ -208,6 +220,8 @@ mkdir -p /opt/localagi/pool
# Only attempt ROCm runtime provisioning when AMD backend is selected.
if [[ "${BACKEND}" == "rocm7.2" ]]; then
install_rocm_runtime_debian || msg_warn "ROCm runtime package installation failed"
else
msg_warn "ROCm install skipped because selected backend is '${BACKEND}'"
fi
# Generate runtime configuration file used by systemd service.