add ipex-llm-init.bat for Windows (#11082)

* add ipex-llm-init.bat for Windows

* update setup.py
This commit is contained in:
Shaojun Liu 2024-05-24 14:26:25 +08:00 committed by GitHub
parent 85491907f3
commit 373f9e6c79
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 112 additions and 1 deletions

View file

@ -0,0 +1,111 @@
@echo off
setlocal
:: Usage #############################
:: ipex-llm-init.bat
:: Example:
:: ipex-llm-init.bat --gpu --device Arc
:: ######################################
REM Call the argument parsing function
call :parse-args %*
:: Initialize default values
set ENABLE_GPU=0
set DEVICE=""
:enable-gpu
SET ENABLE_GPU=1
GOTO :eof
:disable-gpu
SET ENABLE_GPU=0
CALL :unset-gpu-envs
GOTO :eof
:unset-gpu-envs
SET SYCL_CACHE_PERSISTENT=
SET BIGDL_LLM_XMX_DISABLED=
GOTO :eof
:display-var
echo +++++ Env Variables +++++
echo Exported:
echo ENABLE_GPU = %ENABLE_GPU%
echo SYCL_CACHE_PERSISTENT = %SYCL_CACHE_PERSISTENT%
echo BIGDL_LLM_XMX_DISABLED = %BIGDL_LLM_XMX_DISABLED%
echo +++++++++++++++++++++++++
GOTO :eof
:display-help
echo Usage: call ipex-llm-init.bat [--option]
echo.
echo ipex-llm-init is a tool to automatically configure and run the subcommand under
echo environment variables for accelerating IPEX-LLM.
echo.
echo Optional options:
echo -h, --help Display this help message and exit.
echo -g, --gpu Enable GPU support
echo --device ^<device_type^> Specify the device type (Arc, iGPU)
GOTO :eof
:display-error
echo Invalid Option: -%1 1>&2
echo.
CALL :display-help
EXIT /B 1
:parse-args
IF "%~1"=="" GOTO args-done
IF "%~1"=="-h" GOTO display-help
IF "%~1"=="--help" GOTO display-help
IF "%~1"=="-g" CALL :enable-gpu & echo DEBUG: ENABLE_GPU enabled & SHIFT & GOTO parse-args
IF "%~1"=="--gpu" CALL :enable-gpu & echo DEBUG: ENABLE_GPU enabled & SHIFT & GOTO parse-args
IF "%~1"=="--device" (
IF "%~2"=="" (
echo Error: --device option requires a value.
GOTO :eof
)
SET "DEVICE=%2"
SHIFT
SHIFT
GOTO parse-args
)
CALL :display-error %1
EXIT /B 1
:args-done
:: Ensure -g and --device are used together or not at all
IF "%ENABLE_GPU%"=="1" (
IF "%DEVICE%"=="" (
echo Error: --device must be specified with -g
GOTO display-help
)
) ELSE IF NOT "%DEVICE%"=="" (
echo Error: -g must be specified with --device
GOTO display-help
)
IF "%ENABLE_GPU%"=="1" (
echo DEBUG: ENABLE_GPU is enabled and DEVICE is %DEVICE%
IF /I "%DEVICE%"=="Arc" (
SET SYCL_CACHE_PERSISTENT=1
) ELSE IF /I "%DEVICE%"=="iGPU" (
SET SYCL_CACHE_PERSISTENT=1
SET BIGDL_LLM_XMX_DISABLED=1
) ELSE (
echo Error: Invalid device type specified for GPU.
echo.
CALL :display-help
EXIT /B 1
)
) ELSE (
CALL :unset-gpu-envs
)
CALL :display-var
echo Complete.
:end
endlocal

View file

@ -344,7 +344,7 @@ def setup_package():
'Programming Language :: Python :: Implementation :: CPython'], 'Programming Language :: Python :: Implementation :: CPython'],
scripts={ scripts={
'Linux': ['src/ipex_llm/cli/llm-cli', 'src/ipex_llm/cli/llm-chat', 'scripts/ipex-llm-init'], 'Linux': ['src/ipex_llm/cli/llm-cli', 'src/ipex_llm/cli/llm-chat', 'scripts/ipex-llm-init'],
'Windows': ['src/ipex_llm/cli/llm-cli.ps1', 'src/ipex_llm/cli/llm-chat.ps1'], 'Windows': ['src/ipex_llm/cli/llm-cli.ps1', 'src/ipex_llm/cli/llm-chat.ps1', 'scripts/ipex-llm-init.bat'],
}[platform_name], }[platform_name],
platforms=['windows'] platforms=['windows']
) )