ember-tune-pc1.ps1: the copy runs with Power control off (the installed setting is read and reported, never a prompt: the project lead, 6 October 2026 07:20Z), the kit paths after the update, the AMD card reset to factory at the end

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
igneum-labs 2026-10-06 07:15:43 +00:00
parent f5dfdbf443
commit e941588c58

View file

@ -40,15 +40,17 @@ $sLogs = Join-Path $root 'logs'
New-Item -ItemType Directory -Force -Path $root, $sApp, $sLogs | Out-Null
if (Test-Path $bin) { Remove-Item -LiteralPath $bin -Recurse -Force -ErrorAction SilentlyContinue }
Copy-Item -LiteralPath $installDir -Destination $bin -Recurse -Force
$ember = Join-Path $appDir 'jobs\ember-kit-1\igneum-app-ember.exe'
if (Test-Path $ember) {
$ember = $null
foreach ($cand in @((Join-Path $appDir 'jobs\ember-kit-2\igneum-app-ember.exe'), (Join-Path $appDir 'jobs\ember-kit-1\igneum-app-ember.exe'))) { if (Test-Path $cand) { $ember = $cand; break } }
if ($ember) {
Copy-Item -LiteralPath $ember -Destination (Join-Path $bin 'igneum-app.exe') -Force
Say ("engine: the Ember build from " + $ember)
} else {
Say 'engine: the installed one (no jobs\ember-kit-1\igneum-app-ember.exe); an older engine ignores the tune and reports no_rows'
}
$helper = Join-Path $appDir 'jobs\amd-kit-1\kit\igneum-gpu-telemetry.exe'
if (Test-Path $helper) {
$helper = $null
foreach ($cand in @((Join-Path $appDir 'jobs\amd-kit-2\igneum-gpu-telemetry.exe'), (Join-Path $appDir 'jobs\amd-kit-1\kit\igneum-gpu-telemetry.exe'))) { if (Test-Path $cand) { $helper = $cand; break } }
if ($helper) {
Copy-Item -LiteralPath $helper -Destination (Join-Path $bin 'igneum-gpu-telemetry.exe') -Force
Say ("helper: the Ember build of igneum-gpu-telemetry from " + $helper + " sha256=" + (Get-FileHash -LiteralPath $helper -Algorithm SHA256).Hash.ToLower())
} else { Say 'helper: the installed igneum-gpu-telemetry (no jobs\amd-kit-1\kit\igneum-gpu-telemetry.exe); without --tune the AMD card measures only' }
@ -68,6 +70,13 @@ if (Test-Path $sj) {
try {
$j = Get-Content -LiteralPath $sj -Raw | ConvertFrom-Json
$j.remote_jobs = $false; $j.auto_update = $false; $j.prove = $false; $j.paused = $false; $j.setup_done = $true; $j.sweep = $true
# the project lead, 6 October 2026, 07:20Z: never raise an administrator prompt. The installed app's Power control is READ and
# reported, but the copy runs with it OFF so the second engine can never start the elevated helper; the 5090 is
# measured as it runs either way (the two-knob tune is the installed engine's job once it carries Ember Tune)
$installedPowerControl = $false
try { $installedPowerControl = [bool]$j.power_control } catch { }
Write-Output ('RESULT TUNE installed_power_control=' + $installedPowerControl.ToString().ToLower() + ' (the copy runs with it off: no prompt)')
if ($j.PSObject.Properties.Name -contains 'power_control') { $j.power_control = $false } else { $j | Add-Member -NotePropertyName power_control -NotePropertyValue $false }
# every card is due: the stored results are cleared in the COPY only
if ($j.cards) { foreach ($p in $j.cards.PSObject.Properties) { $p.Value.sweep_at = 0; $p.Value.pinned = $false } }
$j | ConvertTo-Json -Depth 8 | Set-Content -LiteralPath $sj -Encoding utf8
@ -144,6 +153,14 @@ $all = @(); if (Test-Path -LiteralPath $outFile) { $all = @(Get-Content -Literal
while ($seen -lt $all.Count) { $l = [string]$all[$seen]; $seen++; if ($l -match '^TUNE ') { Write-Output ('RESULT ' + $l); if ($l -match '^TUNE card=') { $rows++ } } }
Say ("tune engine exited " + $p.ExitCode + " after " + [int]((Get-Date) - $started).TotalSeconds + " s, " + $rows + " table rows")
EndTree $p.Id 'end of run'
# the AMD card back to factory: the measurement leaves PC 1 as found (the product pins the point; the installed app
# does not carry Ember Tune yet, so a pinned ADLX setting would be invisible to it)
if (Test-Path $tele) {
$tl = (& $tele --tune 2>&1 | Out-String)
foreach ($m in [regex]::Matches($tl, 'tune (\d+) name "([^"]+)" gmax ([-\d]+) gmax_range')) {
if ($m.Groups[3].Value -ne '-') { $r = (& $tele --card $m.Groups[1].Value --reset 2>&1 | Out-String).Trim(); Write-Output ('RESULT TUNE reset card ' + $m.Groups[1].Value + ' (' + $m.Groups[2].Value + '): ' + ($r -replace "`r?`n", ' | ')) }
}
}
Snapshot 'after'
# the tune engine's own log: the TUNE lines and what happened around them
$log = Get-ChildItem -Path $sLogs -Filter 'app-*.log' -ErrorAction SilentlyContinue | Sort-Object LastWriteTime -Descending | Select-Object -First 1