h3-blackwell-runtime/tools/Summarize-H3Nvfp4Checkpoint.ps1

27 lines
1.6 KiB
PowerShell
Raw Permalink Normal View History

2026-08-12 14:12:42 +07:00
$ErrorActionPreference = 'Stop'
$envPath = Join-Path $PSScriptRoot '..\..\..\.env'
Get-Content -LiteralPath $envPath | ForEach-Object {
if ($_ -match '^\s*([^#=\s]+)\s*=\s*(.*)\s*$') {
[Environment]::SetEnvironmentVariable($matches[1], $matches[2].Trim('"').Trim("'"), 'Process')
}
}
if (-not $env:RUNPOD_API_KEY) { throw 'RUNPOD_API_KEY is not set in .env.' }
$header = '/runpod-volume/h3-blackwell-runtime/artifacts/checkpoints/minimax_h3_ref2va_pruned_nvfp4.header.json'
$probe = "import collections,json; h=json.load(open('$header')); t=h['tensors']; groups=collections.Counter('.'.join(k.split('.')[:3]) for k in t); u8={k:v for k,v in t.items() if v['dtype']=='U8'}; scale=[k for k,v in t.items() if v['dtype']=='F8_E4M3']; print(json.dumps({'u8_tensors':u8,'fp8_scale_tensors':scale,'module_prefix_counts':groups.most_common(80)},sort_keys=True))"
$encodedProbe = [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($probe))
$payload = @{
name = 'h3-nvfp4-checkpoint-summary'
image = 'runpod/pytorch:1.1.0-rc.154-cu1300-torch291-ubuntu2404'
cloud = 'SECURE'
gpu = @{ id = 'NVIDIA RTX PRO 6000 Blackwell Server Edition'; count = 1 }
disk = 20
dataCenterIds = @('EUR-IS-1')
mounts = @{ network = @(@{ volumeId = 'g8r2uqufz5'; path = '/runpod-volume' }) }
args = 'bash -lc ''set -eu; python -c "import base64;exec(base64.b64decode(\"' + $encodedProbe + '\"))"'''
}
$headers = @{ Authorization = "Bearer $env:RUNPOD_API_KEY" }
Invoke-RestMethod -Method Post -Uri 'https://api.runpod.io/v2/pods' -Headers $headers -ContentType 'application/json' -Body ($payload | ConvertTo-Json -Depth 8)