59 lines
2.9 KiB
Batchfile
59 lines
2.9 KiB
Batchfile
@echo off
|
|
setlocal EnableExtensions
|
|
cd /d "%~dp0"
|
|
|
|
set "UC_SCALE=%~1"
|
|
if not defined UC_SCALE set "UC_SCALE=smoke"
|
|
if /I not "%UC_SCALE%"=="smoke" if /I not "%UC_SCALE%"=="quick" if /I not "%UC_SCALE%"=="full" (
|
|
echo Usage: benchmark.bat [smoke^|quick^|full]
|
|
exit /b 2
|
|
)
|
|
|
|
set "UC_PROFILES=scalar baseline"
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "tools\test_avx2.ps1"
|
|
if not errorlevel 1 set "UC_PROFILES=scalar baseline avx2"
|
|
|
|
for %%P in (%UC_PROFILES%) do (
|
|
call build.bat %%P test
|
|
if errorlevel 1 exit /b 1
|
|
)
|
|
|
|
for /f "delims=" %%I in ('powershell.exe -NoProfile -Command "Get-Date -Format yyyyMMdd-HHmmss"') do set "UC_RUN_ID=%%I-%UC_SCALE%"
|
|
set "UC_RESULT_DIR=results\benchmarks\%UC_RUN_ID%"
|
|
mkdir "%UC_RESULT_DIR%" 2>nul
|
|
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "tools\write_benchmark_environment.ps1" -ResultDirectory "%UC_RESULT_DIR%" -RunId "%UC_RUN_ID%" -Scale "%UC_SCALE%" -Profiles "%UC_PROFILES%"
|
|
if errorlevel 1 exit /b 1
|
|
|
|
for %%P in (%UC_PROFILES%) do (
|
|
echo.
|
|
echo === Tuning %%P /O2 profile ===
|
|
"out\bin\%%P\Release\uc_bench.exe" --suite tune --scale "%UC_SCALE%" --fanout 64 --output "%UC_RESULT_DIR%\%%P-tune.csv" --summary "%UC_RESULT_DIR%\%%P-tune-summary.csv"
|
|
if errorlevel 1 exit /b 1
|
|
|
|
echo === Adaptive phase transitions for %%P ===
|
|
"out\bin\%%P\Release\uc_bench.exe" --suite adapt --scale "%UC_SCALE%" --leaf 512 --fanout 64 --levels 4 --output "%UC_RESULT_DIR%\%%P-adapt.csv" --summary "%UC_RESULT_DIR%\%%P-adapt-summary.csv"
|
|
if errorlevel 1 exit /b 1
|
|
|
|
echo === Comparing %%P /O2 profile ===
|
|
"out\bin\%%P\Release\uc_bench.exe" --suite compare --scale "%UC_SCALE%" --leaf 512 --fanout 64 --levels 4 --output "%UC_RESULT_DIR%\%%P-compare.csv" --summary "%UC_RESULT_DIR%\%%P-compare-summary.csv"
|
|
if errorlevel 1 exit /b 1
|
|
|
|
echo === Hash index and stable-ID overhead for %%P ===
|
|
"out\bin\%%P\Release\uc_bench.exe" --suite index --scale "%UC_SCALE%" --leaf 512 --fanout 64 --levels 4 --output "%UC_RESULT_DIR%\%%P-index.csv" --summary "%UC_RESULT_DIR%\%%P-index-summary.csv"
|
|
if errorlevel 1 exit /b 1
|
|
)
|
|
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "tools\analyze_results.ps1" -InputDirectory "%UC_RESULT_DIR%" -Pattern "*-compare.csv" -OutputFile "%UC_RESULT_DIR%\aggregate-compare.csv" -CellMedianFile "%UC_RESULT_DIR%\cell-medians-compare.csv"
|
|
if errorlevel 1 exit /b 1
|
|
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "tools\analyze_results.ps1" -InputDirectory "%UC_RESULT_DIR%" -Pattern "*-adapt.csv" -OutputFile "%UC_RESULT_DIR%\aggregate-adapt.csv" -CellMedianFile "%UC_RESULT_DIR%\cell-medians-adapt.csv"
|
|
if errorlevel 1 exit /b 1
|
|
|
|
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "tools\validate_adaptation.ps1" -CompareCellMedianFile "%UC_RESULT_DIR%\cell-medians-compare.csv" -AdaptCellMedianFile "%UC_RESULT_DIR%\cell-medians-adapt.csv"
|
|
if errorlevel 1 exit /b 1
|
|
|
|
echo.
|
|
echo Benchmark run completed: %UC_RESULT_DIR%
|
|
exit /b 0
|