From 352c937b3f9a9d86eb9f6fa0d080cb4369a5fa6b Mon Sep 17 00:00:00 2001 From: ai-hpc Date: Wed, 15 Jul 2026 01:49:11 +0000 Subject: [PATCH] Fall back to Blackwell for legacy manifests missing gpu_architecture MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Same bug class as SparkDistill's dataset_verify fix: verify_manifest_policy required gpu_architecture to resolve from either the manifest's own field or gpu_profile.gpu_architecture — both only populated by the post-Hopper build_manifest_v2/require_supported_gpu. Bundles published before this field existed have neither, only the older gpu_profile.family, so verification started rejecting every pre-existing Blackwell bundle with "gpu_architecture must be one of [...], got None". Now falls back to "blackwell" when gpu_architecture is absent from both locations but gpu_profile.family == "blackwell" — the only architecture that existed before this field was added, so this can't admit anything actually unsupported. --- sparkproof/verify.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/sparkproof/verify.py b/sparkproof/verify.py index f3fb352..ed38ca9 100644 --- a/sparkproof/verify.py +++ b/sparkproof/verify.py @@ -60,6 +60,11 @@ def verify_manifest_policy(manifest: dict[str, Any]) -> list[str]: issues.append(f"unexpected dataset_kind: {manifest.get('dataset_kind')!r}") gpu = manifest.get("gpu_profile") or {} gpu_architecture = manifest.get("gpu_architecture") or gpu.get("gpu_architecture") + if gpu_architecture is None and gpu.get("family") == "blackwell": + # Legacy manifest predating the gpu_architecture field (before Hopper + # support existed, every accepted bundle was Blackwell) — the older + # "family" field is still evidence enough to default, not reject. + gpu_architecture = "blackwell" if gpu_architecture not in SUPPORTED_ARCHITECTURES: issues.append( f"gpu_architecture must be one of {sorted(SUPPORTED_ARCHITECTURES)!r}, got {gpu_architecture!r}"