mirror of
https://github.com/sockspls/badfish
synced 2025-04-30 08:43:09 +00:00

Joint work gvreuls / vondele * Download the default NNUE net in AppVeyor * Download net in travis CI `make net` * Adjust tests to cover more archs, speedup instrumented testing * Introduce 'mixed' bench as default, with further options: classical, NNUE, mixed. mixed (default) and NNUE require the default net to be present, which can be obtained with ``` make net ``` Further examples (first is equivalent to `./stockfish bench`): ``` ./stockfish bench 16 1 13 default depth mixed ./stockfish bench 16 1 13 default depth classical ./stockfish bench 16 1 13 default depth NNUE ``` The net is now downloaded automatically if needed for `profile-build` (usual `build` works fine without net present) PGO gives a nice speedup on fishtest: passed STC: LLR: 2.93 (-2.94,2.94) {-0.50,1.50} Total: 3360 W: 469 L: 343 D: 2548 Ptnml(0-2): 20, 246, 1030, 356, 28 https://tests.stockfishchess.org/tests/view/5f31b5499081672066537569 passed LTC: LLR: 2.97 (-2.94,2.94) {0.25,1.75} Total: 8824 W: 609 L: 502 D: 7713 Ptnml(0-2): 8, 430, 3438, 519, 17 https://tests.stockfishchess.org/tests/view/5f31c87b908167206653757c closes https://github.com/official-stockfish/Stockfish/pull/2931 fixes https://github.com/official-stockfish/Stockfish/issues/2907 requires fishtest updates before commit Bench: 4290577
88 lines
2.9 KiB
YAML
88 lines
2.9 KiB
YAML
version: 1.0.{build}
|
|
clone_depth: 50
|
|
|
|
branches:
|
|
only:
|
|
- master
|
|
|
|
# Operating system (build VM template)
|
|
os: Visual Studio 2019
|
|
|
|
# Build platform, i.e. x86, x64, AnyCPU. This setting is optional.
|
|
platform:
|
|
- x86
|
|
- x64
|
|
|
|
# build Configuration, i.e. Debug, Release, etc.
|
|
configuration:
|
|
- Debug
|
|
- Release
|
|
|
|
matrix:
|
|
# The build fail immediately once one of the job fails
|
|
fast_finish: true
|
|
|
|
# Scripts that are called at very beginning, before repo cloning
|
|
init:
|
|
- cmake --version
|
|
- msbuild /version
|
|
|
|
before_build:
|
|
- ps: |
|
|
# Get sources
|
|
$src = get-childitem -Path *.cpp -Recurse | select -ExpandProperty FullName
|
|
$src = $src -join ' '
|
|
$src = $src.Replace("\", "/")
|
|
|
|
# Build CMakeLists.txt
|
|
$t = 'cmake_minimum_required(VERSION 3.17)',
|
|
'project(Stockfish)',
|
|
'set(CMAKE_CXX_STANDARD 17)',
|
|
'set(CMAKE_CXX_STANDARD_REQUIRED ON)',
|
|
'set (CMAKE_CXX_EXTENSIONS OFF)',
|
|
'set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/src)',
|
|
'set(source_files', $src, ')',
|
|
'add_executable(stockfish ${source_files})'
|
|
|
|
# Write CMakeLists.txt withouth BOM
|
|
$MyPath = (Get-Item -Path "." -Verbose).FullName + '\CMakeLists.txt'
|
|
$Utf8NoBomEncoding = New-Object System.Text.UTF8Encoding $False
|
|
[System.IO.File]::WriteAllLines($MyPath, $t, $Utf8NoBomEncoding)
|
|
|
|
# Obtain bench reference from git log
|
|
$b = git log HEAD | sls "\b[Bb]ench[ :]+[0-9]{7}" | select -first 1
|
|
$bench = $b -match '\D+(\d+)' | % { $matches[1] }
|
|
Write-Host "Reference bench:" $bench
|
|
$g = "Visual Studio 16 2019"
|
|
If (${env:PLATFORM} -eq 'x64') { $a = "x64" }
|
|
If (${env:PLATFORM} -eq 'x86') { $a = "Win32" }
|
|
cmake -G "${g}" -A ${a} .
|
|
Write-Host "Generated files for: " $g $a
|
|
|
|
build_script:
|
|
- cmake --build . --config %CONFIGURATION% -- /verbosity:minimal
|
|
- ps: |
|
|
# Download default NNUE net from fishtest
|
|
$nnuenet = Get-Content -Path src\ucioption.cpp | Select-String -CaseSensitive -Pattern "Option" | Select-String -CaseSensitive -Pattern "nn-[a-z0-9]{12}.nnue"
|
|
$dummy = $nnuenet -match "(?<nnuenet>nn-[a-z0-9]{12}.nnue)"
|
|
$nnuenet = $Matches.nnuenet
|
|
Write-Host "Default net:" $nnuenet
|
|
$nnuedownloadurl = "https://tests.stockfishchess.org/api/nn/$nnuenet"
|
|
$nnuefilepath = "src\${env:CONFIGURATION}\$nnuenet"
|
|
if (Test-Path -Path $nnuefilepath) {
|
|
Write-Host "Already available."
|
|
} else {
|
|
Write-Host "Downloading $nnuedownloadurl to $nnuefilepath"
|
|
Invoke-WebRequest -Uri $nnuedownloadurl -OutFile $nnuefilepath
|
|
}
|
|
|
|
before_test:
|
|
- cd src/%CONFIGURATION%
|
|
- stockfish bench 2> out.txt >NUL
|
|
- ps: |
|
|
# Verify bench number
|
|
$s = (gc "./out.txt" | out-string)
|
|
$r = ($s -match 'Nodes searched \D+(\d+)' | % { $matches[1] })
|
|
Write-Host "Engine bench:" $r
|
|
Write-Host "Reference bench:" $bench
|
|
If ($r -ne $bench) { exit 1 }
|