You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Paddle/paddle/fluid/inference/api/demo_ci/run_windows_demo.bat

256 lines
7.6 KiB

@echo off
setlocal
set source_path=%~dp0
set build_path=%~dp0\build
setlocal enabledelayedexpansion
rem set gpu_inference
SET /P gpu_inference="Use GPU_inference_lib or not(Y/N), default: N =======>"
IF /i "%gpu_inference%"=="y" (
SET gpu_inference=Y
) else (
SET gpu_inference=N
)
SET /P use_mkl="Use MKL or not (Y/N), default: Y =======>"
if /i "%use_mkl%"=="N" (
set use_mkl=N
) else (
set use_mkl=Y
)
:set_paddle_infernece_lib
SET /P paddle_infernece_lib="Please input the path of paddle inference library, such as D:\fluid_inference_install_dir =======>"
set tmp_var=!paddle_infernece_lib!
call:remove_space
set paddle_infernece_lib=!tmp_var!
IF NOT EXIST "%paddle_infernece_lib%" (
echo "------------%paddle_infernece_lib% not exist------------"
goto set_paddle_infernece_lib
)
IF "%use_mkl%"=="N" (
IF NOT EXIST "%paddle_infernece_lib%\third_party\install\openblas" (
echo "------------It's not a OpenBlas inference library------------"
goto:eof
)
) else (
IF NOT EXIST "%paddle_infernece_lib%\third_party\install\mklml" (
echo "------------It's not a MKL inference library------------"
goto:eof
)
)
:set_path_cuda
if /i "!gpu_inference!"=="Y" (
SET /P cuda_lib_dir="Please input the path of cuda libraries, such as D:\cuda\lib\x64 =======>"
set tmp_var=!cuda_lib_dir!
call:remove_space
set cuda_lib_dir=!tmp_var!
IF NOT EXIST "!cuda_lib_dir!" (
echo "------------!cuda_lib_dir!not exist------------"
goto set_path_cuda
)
)
rem set_use_gpu
if /i "!gpu_inference!"=="Y" (
SET /P use_gpu="Use GPU or not(Y/N), default: N =======>"
)
if /i "%use_gpu%"=="Y" (
set use_gpu=Y
) else (
set use_gpu=N
)
rem set_path_vs_command_prompt
:set_vcvarsall_dir
SET /P vcvarsall_dir="Please input the path of visual studio command Prompt, such as C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat =======>"
set tmp_var=!vcvarsall_dir!
call:remove_space
set vcvarsall_dir=!tmp_var!
IF NOT EXIST "%vcvarsall_dir%" (
echo "------------%vcvarsall_dir% not exist------------"
goto set_vcvarsall_dir
)
rem set_demo_name
:set_demo_name
SET /P demo_name="Please input the demo name, default: windows_mobilenet =======>"
if "%demo_name%"=="" set demo_name=windows_mobilenet
IF NOT EXIST "%source_path%\%demo_name%.cc" (
echo "------------%source_path%\%demo_name%.cc not exist------------"
goto set_demo_name
)
if "%demo_name%"=="windows_mobilenet" set model_name=mobilenet
if "%demo_name%"=="vis_demo" set model_name=mobilenet
if "%demo_name%"=="simple_on_word2vec" set model_name=word2vec.inference.model
if "%demo_name%"=="trt_mobilenet_demo" (
echo "The trt_mobilenet_demo need tensorRT inference library"
if NOT exist "%paddle_infernece_lib%\third_party\install\tensorrt" (
echo "------------It's not a tensorRT inference library------------"
goto:eof
)
set model_name=mobilenet
)
rem download model
if NOT EXIST "%source_path%\%model_name%.tar.gz" (
if "%model_name%"=="mobilenet" (
call:download_model_mobilenet
)
if "%model_name%"=="word2vec.inference.model" (
call:download_model_word2vec
)
)
if EXIST "%source_path%\%model_name%.tar.gz" (
if NOT EXIST "%source_path%\%model_name%" (
SET /P python_path="Please input the path of python.exe, such as C:\Python35\python.exe, C:\Python35\python3.exe =======>"
set tmp_var=!python_path!
call:remove_space
set python_path=!tmp_var!
if "!python_path!"=="" (
set python_path=python.exe
) else (
if NOT exist "!python_path!" (
echo "------------!python_path! not exist------------"
goto:eof
)
)
md %source_path%\%model_name%
!python_path! %source_path%\untar_model.py %source_path%\%model_name%.tar.gz %source_path%\%model_name%
SET error_code=N
if "%model_name%"=="mobilenet" (
if NOT EXIST "%source_path%\%model_name%\model" set error_code=Y
) else (
if NOT EXIST "%source_path%\%model_name%\%model_name%" set error_code=Y
)
if "!error_code!"=="Y" (
echo "========= Unzip %model_name%.tar.gz failed ======="
del /f /s /q "%source_path%\%model_name%\*.*" >nul 2>&1
rd /s /q "%source_path%\%model_name%" >nul 2>&1
goto:eof
)
)
)
echo "=================================================================="
echo.
echo "use_gpu_inference=%gpu_inference%"
echo.
echo "use_mkl=%use_mkl%"
echo.
echo "use_gpu=%use_gpu%"
echo.
echo "paddle_infernece_lib=%paddle_infernece_lib%"
echo.
IF /i "%gpu_inference%"=="y" (
echo "cuda_lib_dir=%cuda_lib_dir%"
echo.
)
echo "vs_vcvarsall_dir=%vcvarsall_dir%"
echo.
echo "demo_name=%demo_name%"
echo.
if NOT "!python_path!"=="" (
echo "python_path=!python_path!"
echo.
)
echo "===================================================================="
pause
rem compile and run demo
if NOT EXIST "%build_path%" (
md %build_path%
cd %build_path%
) else (
del /f /s /q "%build_path%\*.*" >nul 2>&1
rd /s /q "%build_path%" >nul 2>&1
md %build_path%
cd %build_path%
)
if /i "%use_mkl%"=="N" (
set use_mkl=OFF
) else (
set use_mkl=ON
)
if /i "%gpu_inference%"=="Y" (
if "%demo_name%"=="trt_mobilenet_demo" (
cmake .. -G "Visual Studio 14 2015 Win64" -T host=x64 -DWITH_GPU=ON ^
-DWITH_MKL=%use_mkl% -DWITH_STATIC_LIB=ON -DCMAKE_BUILD_TYPE=Release -DDEMO_NAME=%demo_name% ^
-DPADDLE_LIB="%paddle_infernece_lib%" -DMSVC_STATIC_CRT=ON -DCUDA_LIB="%cuda_lib_dir%" -DUSE_TENSORRT=ON
) else (
cmake .. -G "Visual Studio 14 2015 Win64" -T host=x64 -DWITH_GPU=ON ^
-DWITH_MKL=%use_mkl% -DWITH_STATIC_LIB=ON -DCMAKE_BUILD_TYPE=Release -DDEMO_NAME=%demo_name% ^
-DPADDLE_LIB="%paddle_infernece_lib%" -DMSVC_STATIC_CRT=ON -DCUDA_LIB="%cuda_lib_dir%"
)
) else (
cmake .. -G "Visual Studio 14 2015 Win64" -T host=x64 -DWITH_GPU=OFF ^
-DWITH_MKL=%use_mkl% -DWITH_STATIC_LIB=ON -DCMAKE_BUILD_TYPE=Release -DDEMO_NAME=%demo_name% ^
-DPADDLE_LIB="%paddle_infernece_lib%" -DMSVC_STATIC_CRT=ON
)
call "%vcvarsall_dir%" amd64
msbuild /m /p:Configuration=Release %demo_name%.vcxproj
if /i "%use_gpu%"=="Y" (
SET use_gpu=true
) else (
SET use_gpu=false
)
if exist "%build_path%\Release\%demo_name%.exe" (
cd %build_path%\Release
set GLOG_v=4
if "%demo_name%"=="simple_on_word2vec" (
%demo_name%.exe --dirname="%source_path%\%model_name%\%model_name%" --use_gpu="%use_gpu%"
) else (
if "%demo_name%"=="windows_mobilenet" (
%demo_name%.exe --modeldir="%source_path%\%model_name%\model" --use_gpu="%use_gpu%"
) else (
if "%demo_name%"=="trt_mobilenet_demo" (
%demo_name%.exe --modeldir="%source_path%\%model_name%\model" --data=%source_path%\%model_name%\data.txt ^
--refer=%source_path%\%model_name%\result.txt
) else (
%demo_name%.exe --modeldir="%source_path%\%model_name%\model" --data=%source_path%\%model_name%\data.txt ^
--refer=%source_path%\%model_name%\result.txt --use_gpu="%use_gpu%"
)
)
)
) else (
echo "=========compilation fails!!=========="
)
echo.&pause&goto:eof
:download_model_mobilenet
powershell.exe (new-object System.Net.WebClient).DownloadFile('http://paddlemodels.bj.bcebos.com//inference-vis-demos/mobilenet.tar.gz', ^
'%source_path%\mobilenet.tar.gz')
goto:eof
:download_model_word2vec
powershell.exe (new-object System.Net.WebClient).DownloadFile('http://paddle-inference-dist.bj.bcebos.com/word2vec.inference.model.tar.gz', ^
'%source_path%\word2vec.inference.model.tar.gz')
goto:eof
:remove_space
:remove_left_space
if "%tmp_var:~0,1%"==" " (
set "tmp_var=%tmp_var:~1%"
goto remove_left_space
)
:remove_right_space
if "%tmp_var:~-1%"==" " (
set "tmp_var=%tmp_var:~0,-1%"
goto remove_left_space
)
goto:eof