Repository navigation
Open the GB10: admit SM 0xa04 only with its PCI identity and the Blackwell-B class set - #246
Conversation
|
Chip result (EXERCISED on GB10, not merged/qualified). spark-window
So the 0xA04 admission refusal on main reproduces on the chip, and this commit clears it with the Blackwell class check still in place. Host: Disclosure: one unauthorized pre-window run of Logs: |
…l-B class set At driver 580.173.02 the GB10 reports the GR SM-version field 10_04 (0xa04). ctrl2080gr.h:323-328 keeps 10_04 only until its 12_* names are validated, so 10_04 alone does not identify sm_121. Seeded Omega op 1 now admits sm_121 for 12_01, or for 10_04 only with PCI 0x10de:0x2e12, and still requires the full Blackwell-B class set. nvrm.c only marshals the vendor constant and PCI ids. Rule taken from #251 (same four source files); this branch is today's main plus that rule, with om/units.sh regenerated (pinned omc 2c824805, omega-bridge 3dc4a00e). Generated amp_runtime.c is byte-identical to #251's. Host: make test-ampere-runtime PASS (GB10 admitted; wrong device, wrong vendor, partial class set and Ampere classes refused). GB10: build/hello_gpu PASS, 1048576/1048576 elements correct. Negative control: origin/main hello_gpu refuses "unsupported SM 0xa04 or missing target classes". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
c5f6ec2 to
b49ada2
Compare
Independent review of #246 found :749/:755 and :1058 off by a few lines. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Risk: medium. Approved. Cursor Security Agent passed with no findings that need human review; Bugbot was not present after the first poll and was skipped. The change is a bounded GB10 SM/PCI admission rule with negative-control tests, so it stays within the medium approval threshold.
Sent by Cursor Approval Agent: Pull Request Router and Approver


Why
Since #170 the GB10 cannot be opened:
nvrm_openrefuses it withunsupported SM 0xa04 or missing target classes. At driver 580.173.02 the GB10 reports the GR SM-version field as 10_04 (0xa04), and admission only accepted 12_01.What changed
NVIDIA's
ctrl2080gr.h:323-328keeps 10_04 only "until 12_* is tested and validated", so 10_04 alone does not identify the GB10. The admission rule in seeded Omega (om/encoder/amp_runtime.omop 1) now accepts sm_121 when:The complete Blackwell-B class set is still required in both cases.
nvrm/nvrm.conly passes the vendor constant and the PCI ids to Omega; no admission logic is in C.The rule is the one in #251, which keeps it inside a much larger change. This PR is today's main plus that rule alone. The first version of this PR accepted any 10_04 device and conflicted with main; it has been replaced. Generated units come from
om/units.shwith the pinned omc (2c824805…) and omega-bridge3dc4a00e. The generatedsrc/cudapp_om_amp_runtime.cis byte-identical to #251's.docs/PORT-AMPERE.mdline references move with the edit.Evidence
make test-ampere-runtimePASS. The GB10 identity is admitted. A wrong device id, a wrong vendor id, a partial class set and the Ampere class set are refused.build/hello_gpuPASS, 1048576 of 1048576 elements correct, 0 never written.origin/mainhello_gpuprintsGPU not available (stage: nvrm_open: unsupported SM 0xa04 or missing target classes).Not covered
No speed claim. No other GB10 kernels were run on this head.
Unblocks #254, which needs the device to open. After this lands, #251 should drop its copy of the rule when it rebases.
🤖 Generated with Claude Code