#!/bin/bash
# 日志文件路径
LOG_FILE="nvidia_gpu_check.log"
# 记录日志函数
log() {
echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" | tee -a "$LOG_FILE"
}
log "==================== NVIDIA GPU 检测脚本 ===================="
log "开始检测..."
# 1. 检查是否为 root 用户(非必须,但某些操作需要)
if [ "$(id -u)" -eq 0 ]; then
log "警告:建议使用普通用户运行(避免权限问题)"
fi
# 2. 检查 lspci 是否可用
if ! command -v lspci &> /dev/null; then
log "错误:lspci 未安装,请先安装 pciutils!"
log "Ubuntu/Debian: sudo apt install pciutils"
log "CentOS/RHEL: sudo yum install pciutils"
exit 1
fi
# 3. 检测 NVIDIA GPU
log "检测 NVIDIA 显卡..."
if ! lspci | grep -i nvidia &> /dev/null; then
log "错误:未检测到 NVIDIA 显卡!"
exit 1
else
log "检测到 NVIDIA 显卡:"
lspci | grep -i nvidia | tee -a "$LOG_FILE"
fi
# 4. 检查 NVIDIA 驱动是否安装
log "检查 NVIDIA 驱动..."
if ! command -v nvidia-smi &> /dev/null; then
log "警告:nvidia-smi 未找到,可能未安装 NVIDIA 驱动!"
else
# 输出驱动信息
log "NVIDIA 驱动信息:"
nvidia-smi --query | tee -a "$LOG_FILE"
# 提取关键信息
DRIVER_VERSION=$(nvidia-smi --query-gpu=driver_version,name --format=csv,noheader | head -1)
log "驱动版本: $DRIVER_VERSION"
fi
# 5. 检查 CUDA 版本(如果安装)
log "检查 CUDA 版本..."
if [ -f "/usr/local/cuda/version.txt" ]; then
CUDA_VERSION=$(cat /usr/local/cuda/version.txt | grep -oP '(?<=CUDA Version )\S+')
log "CUDA 版本: $CUDA_VERSION"
elif [ -d "/usr/local/cuda" ]; then
log "CUDA 已安装,但版本文件未找到,请手动检查:"
ls -l /usr/local/cuda/lib64/libcudart* 2>/dev/null | tee -a "$LOG_FILE"
else
log "未检测到 CUDA"
fi
# 6. 检查 GPU 显存信息(如果驱动正常)
if command -v nvidia-smi &> /dev/null; then
log "GPU 显存信息:"
nvidia-smi --query-gpu=memory.total,memory.used,memory.free --format=csv | tee -a "$LOG_FILE"
fi
# 7. 检查是否加载 Nouveau 驱动(可能冲突)
log "检查 Nouveau 驱动..."
if lsmod | grep -i nouveau &> /dev/null; then
log "警告:Nouveau 驱动已加载,可能与 NVIDIA 官方驱动冲突!"
else
log "Nouveau 驱动未加载"
fi
log "检测完成!"
发表评论