| @echo off |
| setlocal enabledelayedexpansion |
|
|
| set MAX_JOBS=1 |
|
|
| :parseArgs |
| |
| |
| if "%~1" == "FORCE_CXX11_ABI" ( |
| set "FLASH_ATTENTION_FORCE_CXX11_ABI=%~2" |
| shift & shift |
| goto :parseArgs |
| ) |
| if "%~1" == "CUDA_ARCH" ( |
| set "FLASH_ATTN_CUDA_ARCHS=%~2" |
| shift & shift |
| goto :parseArgs |
| ) |
| goto :buildContinue |
| :end |
|
|
| :buildFinalize |
| set MAX_JOBS= |
| set BUILD_TARGET= |
| set DISTUTILS_USE_SDK= |
| set FLASH_ATTENTION_FORCE_BUILD= |
| set FLASH_ATTENTION_FORCE_CXX11_ABI= |
| set dist_dir= |
| set FLASH_ATTN_CUDA_ARCHS= |
| set tmpname= |
| endlocal |
| goto :eof |
| :end |
|
|
| :buildContinue |
| echo MAX_JOBS: %MAX_JOBS% |
| echo FLASH_ATTENTION_FORCE_CXX11_ABI: %FLASH_ATTENTION_FORCE_CXX11_ABI% |
| echo FLASH_ATTN_CUDA_ARCHS: %FLASH_ATTN_CUDA_ARCHS% |
| |
| |
| |
| |
| pip install "setuptools>=49.6.0" packaging wheel psutil |
| |
| |
| set FLASH_ATTENTION_FORCE_BUILD=TRUE |
| set BUILD_TARGET=cuda |
| set DISTUTILS_USE_SDK=1 |
| set dist_dir=dist |
| |
|
|
| python setup.py bdist_wheel --dist-dir=%dist_dir% |
| |
| |
| |
| |
| |
| |
| |
| |
| for /f "delims=" %%i in ('python -c "import sys; from packaging.version import parse; import torch; python_version = f'cp{sys.version_info.major}{sys.version_info.minor}'; cxx11_abi=str(torch._C._GLIBCXX_USE_CXX11_ABI).upper(); torch_cuda_version = parse(torch.version.cuda); cuda_version = \"\".join(map(str, torch_cuda_version.release)); torch_version_raw = parse(torch.__version__); torch_version = \".\".join(map(str, torch_version_raw.release)); wheel_filename = f'cu{cuda_version}torch{torch_version}cxx11abi{cxx11_abi}'; print(wheel_filename);"') do set wheel_filename=%%i |
|
|
| set tmpname=%wheel_filename% |
|
|
|
|
| for %%i in (%dist_dir%\*.whl) do ( |
| set "filename=%%~nxi" |
| |
| |
| echo !filename! | findstr /c:+ >nul |
| if errorlevel 1 ( |
| |
| set "count=0" |
| for /l %%j in (0, 1, 1000) do ( |
| if "!filename:~%%j,1!"=="-" set /a count+=1 |
| if "!filename:~%%j,1!"=="-" if "!count!"=="2" ( |
| set "new_filename=!filename:~0,%%j!+%tmpname%!filename:~%%j!" |
|
|
| echo Renaming !filename! to !new_filename! |
| move "%%i" "!dist_dir!/!new_filename!" |
| goto :next |
| ) |
| ) |
| ) |
| :next |
| |
| ) |
|
|
| goto :buildFinalize |
| :end |