NarratoAI/check_gpu_cuda_cudnn.bat
2025-04-13 15:41:25 +08:00

115 lines
5.3 KiB
Batchfile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
echo ========================================
echo GPU、CUDA 和 cuDNN 检测工具
echo ========================================
echo.
:: 检测NVIDIA显卡型号
echo [正在检测NVIDIA显卡...]
nvidia-smi >nul 2>&1
if %errorlevel% neq 0 (
echo [错误] 未检测到NVIDIA显卡或驱动未正确安装。
goto check_cuda
)
for /f "tokens=3,4" %%a in ('nvidia-smi --query-gpu=name --format=csv,noheader') do (
set "gpu_name=%%a %%b"
)
echo [成功] 检测到显卡: !gpu_name!
:: 检测CUDA版本
:check_cuda
echo.
echo [正在检测CUDA版本...]
nvcc --version >nul 2>&1
if %errorlevel% neq 0 (
echo [警告] 未检测到CUDA或CUDA未添加到系统路径。
) else (
for /f "tokens=5,6" %%a in ('nvcc --version ^| findstr "release"') do (
set "cuda_version=%%b"
)
echo [成功] 检测到CUDA版本: !cuda_version!
)
:: 检测cuDNN
echo.
echo [正在检测cuDNN...]
set "cudnn_found=false"
set "cudnn_path="
:: 检查可能的cuDNN路径
for %%p in ("%ProgramFiles%\NVIDIA GPU Computing Toolkit\CUDA" "%ProgramW6432%\NVIDIA GPU Computing Toolkit\CUDA" "C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA") do (
if exist "%%~p" (
for /d %%d in ("%%~p\*") do (
if exist "%%~d\bin\cudnn*.dll" (
set "cudnn_found=true"
set "cudnn_path=%%~d\bin"
)
)
)
)
if "!cudnn_found!"=="true" (
echo [成功] 找到cuDNN文件路径: !cudnn_path!
:: 检查特定的cuDNN文件
if exist "!cudnn_path!\cudnn_ops_infer64_8.dll" (
echo [成功] 找到关键文件: cudnn_ops_infer64_8.dll
) else (
echo [警告] 未找到关键文件: cudnn_ops_infer64_8.dll可能会导致运行机器学习模型时出错。
)
) else (
echo [警告] 未找到cuDNN或cuDNN未正确安装。
)
:: 总结
echo.
echo ========================================
echo 检测结果
echo ========================================
if %errorlevel% neq 0 (
echo [警告] NVIDIA显卡驱动可能未正确安装。
) else (
echo [√] NVIDIA显卡: !gpu_name!
)
if defined cuda_version (
echo [√] CUDA版本: !cuda_version!
) else (
echo [×] CUDA未安装或未添加到系统路径。
)
if "!cudnn_found!"=="true" (
echo [√] cuDNN已安装
if not exist "!cudnn_path!\cudnn_ops_infer64_8.dll" (
echo [!] 警告: 缺少关键文件cudnn_ops_infer64_8.dll
)
) else (
echo [×] cuDNN未安装或未正确配置。
)
echo.
echo ========================================
echo 建议操作
echo ========================================
echo.
if not defined cuda_version (
echo - 请安装CUDA工具包建议从NVIDIA官方网站下载。
)
if "!cudnn_found!"=="false" (
echo - 请安装cuDNN库需要从NVIDIA开发者网站下载。
)
if "!cudnn_found!"=="true" if not exist "!cudnn_path!\cudnn_ops_infer64_8.dll" (
echo - 您的cuDNN安装可能不完整请重新安装或更新cuDNN。
)
echo.
echo 按任意键退出...
pause >nul