Merge ca3-v4-amend f21fa4b9 into master (gate: green on f21fa4b9, recorded by tools/ci/pre-push.sh; landed on the build mirror)
This commit is contained in:
commit
87c0b06d42
6 changed files with 40 additions and 13 deletions
|
|
@ -82,7 +82,7 @@ function RunState([string] $state) {
|
|||
"RESULT packs-state $state start $(Stamp) $((& $smi -i $idx --query-gpu=clocks.sm,clocks.applications.graphics,power.draw --format=csv,noheader 2>&1 | Out-String).Trim())"
|
||||
foreach ($pk in $packOrder) { foreach ($variant in $variants) {
|
||||
$d = Join-Path $packs $pk
|
||||
$cls = ''; $pid = ''; try { $pj = Get-Content -LiteralPath (Join-Path $d 'program.json') -Raw | ConvertFrom-Json; $cls = [string] $pj.load_class; $pid = [string] $pj.program_id } catch { }
|
||||
$cls = ''; $progId = ''; try { $pj = Get-Content -LiteralPath (Join-Path $d 'program.json') -Raw | ConvertFrom-Json; $cls = [string] $pj.load_class; $progId = [string] $pj.program_id } catch { }
|
||||
$t0 = Get-Date
|
||||
$extra = @(); if ($variant -ne 'base') { $extra = @('--variant', $variant) }
|
||||
$lines = @(& $exe --bench --pack $d --batches 250 --batch-log2 24 --block-warps 1 @extra --device 0 2>&1 | ForEach-Object { "$_" })
|
||||
|
|
@ -98,7 +98,7 @@ function RunState([string] $state) {
|
|||
$wi = Mean ($w | Where-Object { $_.Count -ge 8 -and $_[6] -match '^\s*[\d.]+\s*$' } | ForEach-Object { $_[6] }); $wa = Mean ($w | Where-Object { $_.Count -ge 8 -and $_[7] -match '^\s*[\d.]+\s*$' } | ForEach-Object { $_[7] })
|
||||
$eff = if ($watts -and $mhs) { [math]::Round([double]$mhs / $watts, 4) } else { '' }
|
||||
$err = ''; if (-not $res -or $rc -ne 0) { $e = ($lines | Where-Object { $_ -match 'FAIL|error|MISMATCH|compile' } | Select-Object -First 1); $err = if ($e) { ($e -replace '\s+', ' ') } else { "exit $rc, no RESULT line" } }
|
||||
"RESULT ca4-research pack=$pk dir=$d program_id=$pid class=$cls variant=$variant state=$state mhs=$mhs watts=$watts watts_instant=$wi watts_average=$wa mh_per_w=$eff sm_mhz=$sm mem_mhz=$mem util=$util fingerprint=$fp check=$check exit=$rc wall_s=$([int]($t1 - $t0).TotalSeconds) samples=$($w.Count) error=$err race=[$race]"
|
||||
"RESULT ca4-research pack=$pk dir=$d program_id=$progId class=$cls variant=$variant state=$state mhs=$mhs watts=$watts watts_instant=$wi watts_average=$wa mh_per_w=$eff sm_mhz=$sm mem_mhz=$mem util=$util fingerprint=$fp check=$check exit=$rc wall_s=$([int]($t1 - $t0).TotalSeconds) samples=$($w.Count) error=$err race=[$race]"
|
||||
Start-Sleep -Seconds 3
|
||||
} }
|
||||
"RESULT packs-state $state end $(Stamp)"
|
||||
|
|
|
|||
|
|
@ -19,6 +19,14 @@ $jobs = Split-Path $jobDir
|
|||
$exe = Join-Path (Join-Path $jobs 'fetch-ca4-microbench-exe-20261007') 'igneum-worker-cuda-ca4mb.exe'
|
||||
if (-not (Test-Path $exe)) { "RESULT error exe missing at $exe (the fetch job fetch-ca4-microbench-exe-20261007 runs first)"; Summary 'failed' @{ error = 'exe missing' }; exit 2 }
|
||||
"RESULT start $(Stamp) job=$jobName exe=$exe sha256=$((Get-FileHash -Algorithm SHA256 $exe).Hash.ToLower()) label=ca4-research"
|
||||
# the loader (the research lane, 8 October 2026, 04:1x UTC): an exit 2 after one line is a loader line; NVRTC's two DLLs must sit beside the
|
||||
# exe, and this exe was fetched into its own job folder; the installed worker's copies are copied beside it (the install folder is read, never
|
||||
# written) and the exe runs from its own folder
|
||||
$inst = @("$env:LOCALAPPDATA\Programs\Igneum Miner", "$env:ProgramFiles\Igneum Miner") | Where-Object { Test-Path (Join-Path $_ 'igneum-worker-cuda.exe') } | Select-Object -First 1
|
||||
$exeDir = Split-Path $exe
|
||||
if ($inst) { foreach ($dll in (Get-ChildItem -Path $inst -Filter 'nvrtc*.dll' -ErrorAction SilentlyContinue)) { if (-not (Test-Path (Join-Path $exeDir $dll.Name))) { Copy-Item -LiteralPath $dll.FullName -Destination $exeDir; "RESULT dll copied beside the exe: $($dll.Name) sha256 $((Get-FileHash -Algorithm SHA256 $dll.FullName).Hash.ToLower())" } } }
|
||||
"RESULT dlls beside the exe: $((Get-ChildItem -Path $exeDir -Filter '*.dll' -ErrorAction SilentlyContinue | ForEach-Object { $_.Name }) -join ', ')"
|
||||
Set-Location $exeDir
|
||||
$smi = (Get-Command nvidia-smi -ErrorAction SilentlyContinue).Source
|
||||
if (-not $smi) { foreach ($p in @((Join-Path $env:ProgramFiles 'NVIDIA Corporation\NVSMI\nvidia-smi.exe'), (Join-Path $env:SystemRoot 'System32\nvidia-smi.exe'))) { if (Test-Path $p) { $smi = $p; break } } }
|
||||
$row = @(& $smi --query-gpu=index,name,uuid,pci.bus_id --format=csv,noheader 2>&1 | ForEach-Object { "$_" }) | Where-Object { $_ -match 'RTX 5090' } | Select-Object -First 1
|
||||
|
|
@ -73,9 +81,17 @@ function ParseUtc([string] $s) { try { return [datetime]::Parse($s, [cultureinfo
|
|||
function RunState([string] $state) {
|
||||
$env:CUDA_VISIBLE_DEVICES = $uuid
|
||||
"RESULT microbench-state $state start $(Stamp) $((& $smi -i $idx --query-gpu=clocks.sm,clocks.applications.graphics,power.draw --format=csv,noheader 2>&1 | Out-String).Trim())"
|
||||
$lines = @(& $exe --microbench --mb-seconds 60 --device 0 2>&1 | ForEach-Object { "$_" })
|
||||
# the research lane's exact command (8 October 2026, 03:54Z: with `--device 0` added the exe exited 2 after one line at both states and the
|
||||
# script kept only probe-matching lines, so the refusal text was lost); CUDA_VISIBLE_DEVICES selects the card; every line is echoed when the
|
||||
# exe exits non-zero or prints fewer than five lines
|
||||
# the argument parser's pack check runs before the microbench branch on this build (04:25Z: "--pack <dir> is required"); the probes read
|
||||
# no pack, so the sub-version 3 kit's class v4 pack satisfies the check and changes nothing (the research lane's word, 04:4x UTC)
|
||||
$packArg = Join-Path (Join-Path (Join-Path $jobs 'fetch-ca3-v4-sub3-pc1-20261007') 'packs') 'v4-devnet-epoch0'
|
||||
if (-not (Test-Path $packArg)) { "RESULT error the pack for the argument check is missing at $packArg"; Summary 'failed' @{ error = 'pack argument missing' }; exit 2 }
|
||||
$lines = @(& $exe --microbench --mb-seconds 60 --pack $packArg 2>&1 | ForEach-Object { "$_" })
|
||||
$rc = $LASTEXITCODE
|
||||
foreach ($l in $lines) { if ($l -match '^RESULT microbench') { "$l state=$state" } elseif ($l -match 'error|fail|compile|skipped') { "RESULT microbench-note state=$state $l" } }
|
||||
if ($rc -ne 0 -or $lines.Count -lt 5) { foreach ($l in $lines) { "RESULT microbench-raw state=$state exit=$rc $l" } }
|
||||
foreach ($l in $lines) { if ($l -match '^RESULT microbench') { "$l state=$state" } elseif ($l -match 'error|fail|compile|skipped|usage') { "RESULT microbench-note state=$state $l" } }
|
||||
foreach ($l in ($lines | Where-Object { $_ -match '^RESULT microbench probe=' })) {
|
||||
$name = ''; $g = ''; $ck = ''; $st = ''; $su = ''; $eu = ''
|
||||
if ($l -match 'probe=(\S+)') { $name = $Matches[1] }; if ($l -match 'G_ops_s=(\S+)') { $g = $Matches[1] }; if ($l -match 'checksum=(\S+)') { $ck = $Matches[1] }; if ($l -match 'status=(\S+)') { $st = $Matches[1] }
|
||||
|
|
|
|||
|
|
@ -86,7 +86,7 @@ function RunState([string] $state) {
|
|||
"RESULT packs-state $state start $(Stamp) $((& $smi -i $idx --query-gpu=clocks.sm,clocks.applications.graphics,power.draw --format=csv,noheader 2>&1 | Out-String).Trim())"
|
||||
foreach ($pk in $packOrder) {
|
||||
$d = Join-Path $packs $pk
|
||||
$cls = ''; $pid = ''; try { $pj = Get-Content -LiteralPath (Join-Path $d 'program.json') -Raw | ConvertFrom-Json; $cls = [string] $pj.load_class; $pid = [string] $pj.program_id } catch { }
|
||||
$cls = ''; $progId = ''; try { $pj = Get-Content -LiteralPath (Join-Path $d 'program.json') -Raw | ConvertFrom-Json; $cls = [string] $pj.load_class; $progId = [string] $pj.program_id } catch { }
|
||||
$t0 = Get-Date
|
||||
$lines = @(& $exe --bench --pack $d --batches 250 --batch-log2 24 --block-warps 1 --device 0 2>&1 | ForEach-Object { "$_" })
|
||||
$rc = $LASTEXITCODE
|
||||
|
|
@ -101,7 +101,7 @@ function RunState([string] $state) {
|
|||
$eff = if ($watts -and $mhs) { [math]::Round([double]$mhs / $watts, 4) } else { '' }
|
||||
$err = ''; if (-not $res -or $rc -ne 0) { $e = ($lines | Where-Object { $_ -match 'FAIL|error|MISMATCH|compile' } | Select-Object -First 1); $err = if ($e) { ($e -replace '\s+', ' ') } else { "exit $rc, no RESULT line" } }
|
||||
$tag = if ($pk -like 'mx8_shl256x27*') { ' construction=unsound-energy-reading-only' } else { '' }
|
||||
"RESULT ca4-research pack=$pk dir=$d program_id=$pid class=$cls$tag state=$state mhs=$mhs watts=$watts watts_instant=$wi watts_average=$wa mh_per_w=$eff sm_mhz=$sm mem_mhz=$mem util=$util fingerprint=$fp check=$check exit=$rc wall_s=$([int]($t1 - $t0).TotalSeconds) samples=$($w.Count) error=$err"
|
||||
"RESULT ca4-research pack=$pk dir=$d program_id=$progId class=$cls$tag state=$state mhs=$mhs watts=$watts watts_instant=$wi watts_average=$wa mh_per_w=$eff sm_mhz=$sm mem_mhz=$mem util=$util fingerprint=$fp check=$check exit=$rc wall_s=$([int]($t1 - $t0).TotalSeconds) samples=$($w.Count) error=$err"
|
||||
Start-Sleep -Seconds 3
|
||||
}
|
||||
"RESULT packs-state $state end $(Stamp)"
|
||||
|
|
|
|||
|
|
@ -30,6 +30,8 @@ Write-Output ('RESULT TUNE job_id=' + $jobId + ' card_match=' + $want)
|
|||
$cards = @($s.mining.cards | Where-Object { $_.enabled -and ($_.vendor -eq 'nvidia' -or $_.vendor -eq 'amd') -and $_.name -notmatch 'Radeon\(TM\) Graphics' -and $_.name -match $want })
|
||||
if ($cards.Count -eq 0) { Write-Output ('RESULT TUNE error=no enabled card matching ' + $want + ' in api/state (names: ' + (($s.mining.cards | ForEach-Object { $_.name }) -join ', ') + ')'); exit 1 }
|
||||
Write-Output ('RESULT TUNE cards ' + (($cards | ForEach-Object { $_.key + ' (' + $_.name + ', ' + $_.vendor + ', sweep_state ' + $_.sweep_state + ', line "' + $_.tune_line + '")' }) -join ' | '))
|
||||
# every card's stored curve from the last tune (the 06:0x UTC 5080 run's rows were lost to a cast fault in this script's curve line; the app keeps them)
|
||||
foreach ($c0 in $s.mining.cards) { if ($c0.tune_curve -and $c0.tune_curve.Count -gt 0) { Write-Output ('RESULT TUNE stored-curve key=' + $c0.key + ' source=' + $c0.tune_source + ' line="' + $c0.tune_line + '" rows=' + (($c0.tune_curve | ForEach-Object { "$($_.clock_mhz)MHz/$($_.mem_mhz)mem/$($_.power_pct)pct/$($_.limit_w)W/$($_.watts)W/$($_.mhs)MHs/$($_.eff)MHW/$($_.mark)" }) -join ' | ')) } }
|
||||
foreach ($c in $cards) { Write-Output ('RESULT TUNE before key=' + $c.key + ' power_w=' + $c.power_w + ' power_pct=' + $c.power_pct + ' clock_cap=' + $c.clock_cap_mhz + ' mhs=' + $c.mhs + ' line=' + $c.tune_line) }
|
||||
# the climb on (NVIDIA cards; an AMD card has no clock knob and runs its ladder regardless)
|
||||
if (-not (Post 'api/tune/goal' '{"goal":"balanced","climb":true}')) { Write-Output 'RESULT TUNE error=tune_goal_refused'; exit 1 }
|
||||
|
|
@ -62,7 +64,7 @@ foreach ($c in $order) {
|
|||
}
|
||||
}
|
||||
$st = State
|
||||
if ($st) { $cc = $st.mining.cards | Where-Object { $_.key -eq $c.key } | Select-Object -First 1; if ($cc) { Write-Output ('RESULT TUNE after key=' + $c.key + ' power_w=' + $cc.power_w + ' power_pct=' + $cc.power_pct + ' clock_cap=' + $cc.clock_cap_mhz + ' line=' + $cc.tune_line + ' source=' + $cc.tune_source + ' note=' + $cc.sweep_note); if ($cc.tune_curve) { Write-Output ('RESULT TUNE curve key=' + $c.key + ' ' + (($cc.tune_curve | ForEach-Object { ($_.clock_mhz) + 'MHz/' + ($_.mem_mhz) + 'mem/' + ($_.power_pct) + '%:' + $_.mhs + 'MH/s ' + $_.watts + 'W ' + $_.eff + ' ' + $_.mark }) -join ' | ')) } } }
|
||||
if ($st) { $cc = $st.mining.cards | Where-Object { $_.key -eq $c.key } | Select-Object -First 1; if ($cc) { Write-Output ('RESULT TUNE after key=' + $c.key + ' power_w=' + $cc.power_w + ' power_pct=' + $cc.power_pct + ' clock_cap=' + $cc.clock_cap_mhz + ' line=' + $cc.tune_line + ' source=' + $cc.tune_source + ' note=' + $cc.sweep_note); if ($cc.tune_curve) { Write-Output ('RESULT TUNE curve key=' + $c.key + ' ' + (($cc.tune_curve | ForEach-Object { "$($_.clock_mhz)MHz/$($_.mem_mhz)mem/$($_.power_pct)pct/$($_.limit_w)W/$($_.watts)W/$($_.mhs)MHs/$($_.eff)MHW/$($_.mark)" }) -join ' | ')) } } }
|
||||
}
|
||||
# the climb switch back to what it was
|
||||
Post 'api/tune/goal' ('{"climb":' + $(if ($climbBefore) { 'true' } else { 'false' }) + '}') | Out-Null
|
||||
|
|
|
|||
|
|
@ -26,15 +26,15 @@ case "$STEP" in
|
|||
family-kit) $P add --kind fetch --target ae432dc7 --id fetch-ca3-pc1-amd-family-20261007 --file "$KITS/igneum-ca3-pc1-amd-family-kit-20261007.zip" --dir jobs --extract --title "CA3 PC 1: the family probe kit (7 Oct)" --expires-hours 36 $DEPLOY ;;
|
||||
eff-5090) $P add --kind run --target ae432dc7 --id run-ca3-pc1-v4-eff-5090-20261007-b --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-v4-efficiency.ps1 --timeout-minutes 75 --title "CA3 PC 1: class v4 efficiency pass on the RTX 5090 (clock locks, v4 against v3, the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
eff-5090-floor) $P add --kind run --target ae432dc7 --id run-ca3-pc1-v4-eff-5090-floor-20261007 --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-v4-efficiency.ps1 --timeout-minutes 60 --title "CA3 PC 1: class v4 efficiency pass 2 on the RTX 5090 (1,400 MHz down to the driver floor, v4 against v3, the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-exe) $P add --kind fetch --target ae432dc7 --id fetch-ca4-sparse3-exe-20261008 --file "$KITS/ca4/igneum-worker-cuda-ca4sparse3.exe" --dir jobs --title "CA4 research: the SM-sparse worker exe with the race fix (scratch build, counter-asic-4, 00:46 UTC)" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-sparse) $P add --kind run --target ae432dc7 --id run-ca4-pc1-ca4sparse-5090-20261008 --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-v4-efficiency.ps1 --timeout-minutes 70 --title "CA4 research: SM-sparse worker variants on the RTX 5090, unlocked and at the 1,300 MHz knee, v4 and v3 (the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-exe) $P add --kind fetch --target ae432dc7 --id fetch-ca4-sparse5-exe-20261008 --file "$KITS/ca4/igneum-worker-cuda-ca4sparse5.exe" --dir jobs --title "CA4 research: the SM-sparse worker exe with the capture fix (scratch build, counter-asic-4, 03:55 UTC)" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-sparse) $P add --kind run --target ae432dc7 --id run-ca4-pc1-ca4sparse-5090-20261008-c --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-v4-efficiency.ps1 --timeout-minutes 70 --title "CA4 research: SM-sparse worker variants on the RTX 5090, unlocked and at the 1,300 MHz knee, v4 and v3 (the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
eff-5090-floor2) $P add --kind run --target ae432dc7 --id run-ca3-pc1-v4-eff-5090-floor2-20261007 --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-v4-efficiency.ps1 --timeout-minutes 45 --title "CA3 PC 1: class v4 efficiency pass 3 on the RTX 5090 (1,100 MHz down to the driver floor, v4 against v3, the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
eff-5080) $P add --kind run --target ae432dc7 --id run-ca3-pc1-v4-eff-5080-20261007-d --cards-off "nvidia:NVIDIA GeForce RTX 5080" --script tools/ca3-v4-amend/pc1-v4-efficiency.ps1 --timeout-minutes 75 --title "CA3 PC 1: class v4 efficiency pass on the RTX 5080 (clock locks, v4 against v3, the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
helper-diag2) $P add --kind run --target ae432dc7 --id run-ca3-pc1-helper-diag2-20261007 --script tools/ca3-v4-amend/pc1-helper-diag2.ps1 --timeout-minutes 5 --title "PC 1: Power Helper diagnostic 2 (the task exe against the running app, scheduler history, crash log, a 20 s unelevated helper probe)" --expires-hours 12 $DEPLOY ;;
|
||||
ca4-mb-exe) $P add --kind fetch --target ae432dc7 --id fetch-ca4-microbench-exe-20261007 --file "$KITS/ca4/igneum-worker-cuda-ca4mb.exe" --dir jobs --title "CA4 research: the microbench worker exe (scratch build)" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-mb) $P add --kind run --target ae432dc7 --id run-ca4-pc1-microbench-5090-20261007 --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-ca4-microbench.ps1 --timeout-minutes 60 --title "CA4 research: per-block micro-benchmark on the RTX 5090, unlocked and at the 1,300 MHz knee (the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-mb) $P add --kind run --target ae432dc7 --id run-ca4-pc1-microbench-5090-20261008-c --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-ca4-microbench.ps1 --timeout-minutes 60 --title "CA4 research: per-block micro-benchmark on the RTX 5090, unlocked and at the 1,300 MHz knee (the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-packs-kit) $P add --kind fetch --target ae432dc7 --id fetch-ca4-packs-20261007 --file "$KITS/igneum-ca4-packs-20261007.zip" --dir jobs --extract --title "CA4 research: the two prototype classes, both per-load exports, plus the mx8 control" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-packs) $P add --kind run --target ae432dc7 --id run-ca4-pc1-packs-5090-20261007 --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-ca4-packs.ps1 --timeout-minutes 60 --title "CA4 research: the per-load shadow and the int8 tile prototypes against mx8 and sh256x27 on the RTX 5090 (the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
ca4-packs) $P add --kind run --target ae432dc7 --id run-ca4-pc1-packs-5090-20261008-b --cards-off "nvidia:NVIDIA GeForce RTX 5090" --script tools/ca3-v4-amend/pc1-ca4-packs.ps1 --timeout-minutes 60 --title "CA4 research: the per-load shadow and the int8 tile prototypes against mx8 and sh256x27 on the RTX 5090 (the card alone)" --expires-hours 36 $DEPLOY ;;
|
||||
v5-kit) $P add --kind fetch --target ae432dc7,1ccfe586 --id fetch-ca3-v5-kit-20261007 --file "$KITS/v5kit/packs-ca3-v5-20261007T221001Z.zip" --dir jobs --extract --title "Class v5 kit (the v5 lane, 7f58af97): packs, workers, SHA256SUMS" --expires-hours 36 $DEPLOY ;;
|
||||
v5-amd) $P add --kind run --target ae432dc7 --id run-ca3-pc1-v5-amd-bench-20261007 --script tools/ca3-v4-amend/pc1-v5-amd-bench-20261007.ps1 --timeout-minutes 12 --title "Class v5 kit fingerprint on the RX 9070 XT (beside the miners; the v5 lane's script)" --expires-hours 36 $DEPLOY ;;
|
||||
v5-intel) $P add --kind run --target 1ccfe586 --id run-ca3-pc2-v5-intel-bench-20261007 --script tools/ca3-v4-amend/pc1-v5-intel-bench-20261007.ps1 --timeout-minutes 12 --title "Class v5 kit fingerprint on PC 2's Arc B580 eGPU (the v5 lane's script, class-v5 a4b08245; beside the miners; only on the shipper's PC 2 clear)" --expires-hours 36 $DEPLOY ;;
|
||||
|
|
|
|||
|
|
@ -70,10 +70,19 @@ $exe = Join-Path $inst 'igneum-worker-cuda.exe'
|
|||
if ($ca4) {
|
||||
# the research lane's exe with the race fix (counter-asic-4 after 2d0013d1, 00:46 UTC; the first exe parsed --variant and never applied it:
|
||||
# every row of the 00:22Z run read "variant base"); the rows carry its variant= and sparse_blocks= fields and any variant_not_installed line
|
||||
$exe = Join-Path (Join-Path $jobs 'fetch-ca4-sparse3-exe-20261008') 'igneum-worker-cuda-ca4sparse3.exe'
|
||||
if (-not (Test-Path $exe)) { "RESULT error the research worker is missing at $exe (the fetch job fetch-ca4-sparse3-exe-20261008 runs first)"; Summary 'failed' @{ error = 'research worker missing' }; exit 2 }
|
||||
$exe = Join-Path (Join-Path $jobs 'fetch-ca4-sparse5-exe-20261008') 'igneum-worker-cuda-ca4sparse5.exe'
|
||||
if (-not (Test-Path $exe)) { "RESULT error the research worker is missing at $exe (the fetch job fetch-ca4-sparse5-exe-20261008 runs first)"; Summary 'failed' @{ error = 'research worker missing' }; exit 2 }
|
||||
}
|
||||
"RESULT worker $exe sha256 $((Get-FileHash -Algorithm SHA256 $exe).Hash.ToLower()) bytes $((Get-Item $exe).Length)"
|
||||
if ($ca4) {
|
||||
# the research lane's card-free check of the race order (ca4sparse4, 03:04 UTC): the run would build "variants=2 names=base,sp43-w32"
|
||||
$d0 = Join-Path $packs 'v4-devnet-epoch0'
|
||||
$lr = @(& $exe --bench --pack $d0 --batches 250 --batch-log2 24 --block-warps 32 --variant sp43-w32 --list-race 2>&1 | ForEach-Object { "$_" })
|
||||
foreach ($l in $lr) { if ($l -match 'list-race|error|compile') { "RESULT list-race $l" } }
|
||||
if (-not ($lr | Where-Object { $_ -match 'variants=2' })) { 'RESULT ca4 STOP: the card-free race check does not list the sparse variant (variants=2 absent); the sparse rows would be base again, nothing run'; Summary 'failed' @{ error = 'sparse variant not in the race order' }; exit 4 }
|
||||
# ca4sparse5 (03:55 UTC): --list-race also compiles the rewritten kernel through the PC's nvrtc; a compile error or compiled=0 stops the job with nothing run
|
||||
if (($lr | Where-Object { $_ -match 'compiled=0|NVRTC_ERROR|error: ' })) { 'RESULT ca4 STOP: the card-free check does not compile the rewritten kernel on this PC (the list-race lines above carry the error); nothing run'; Summary 'failed' @{ error = 'rewritten kernel does not compile' }; exit 4 }
|
||||
}
|
||||
$appExe = Join-Path $inst 'igneum-app.exe'
|
||||
if (Test-Path $appExe) { try { "RESULT app-version $((& $appExe --version 2>&1 | Out-String).Trim())" } catch { } }
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue