Skip to content

fix(gpu-attest): tensor-core gate string-compares CC, dropping channel for CC>=10#8009

Open
Vyacheslav-Tomashevskiy wants to merge 1 commit into
Scottcjn:mainfrom
Vyacheslav-Tomashevskiy:fix/gpu-cc-string-compare
Open

fix(gpu-attest): tensor-core gate string-compares CC, dropping channel for CC>=10#8009
Vyacheslav-Tomashevskiy wants to merge 1 commit into
Scottcjn:mainfrom
Vyacheslav-Tomashevskiy:fix/gpu-cc-string-compare

Conversation

@Vyacheslav-Tomashevskiy

Copy link
Copy Markdown
Contributor

The bug

get_gpu_attestation_payload (node/gpu_attestation.py) gates the Channel 8f Tensor Core fingerprint on the GPU's compute capability:

if fp.compute_capability >= "7.0":
    tc_fp = run_tensor_core_fingerprint(...)

compute_capability is a string (GPUFingerprint.compute_capability: str, built as f"{major}.{minor}" — "7.0", "8.0", "9.0", "10.0", "12.0"). >= on strings compares lexically, so:

"10.0" >= "7.0"  ->  False   ('1' < '7')
"12.0" >= "7.0"  ->  False

The check is meant to include Volta and newer (all of which have tensor cores). It instead silently drops the tensor-core channel for exactly the newest tensor-core GPUs — Blackwell data-center (CC 10.0) and consumer Blackwell / RTX-50 (CC 12.0) — while Volta..Hopper (7.0-9.x) pass. Those miners' attestation payloads are missing Channel 8f entirely.

The fix

Parse the value numerically via a small helper (so it's unit-testable without a GPU):

def _supports_tensor_cores(compute_capability) -> bool:
    try:
        return float(compute_capability) >= 7.0
    except (TypeError, ValueError):
        return False
...
if _supports_tensor_cores(fp.compute_capability):

Test

Added node/tests/test_gpu_tensor_core_cc_compare.py (torch-free — import torch in gpu_attestation is function-local): Volta..Hopper supported; CC 10.0 / 12.0 now supported (and asserts the old lexical compare returned False for them); pre-Volta and malformed values rejected without crashing. 4 pass.

Verified against upstream/main @ c6501de.

RTC: RTCd1554f0f35576faf01d386a6be1c947f560dd0b7

…el for CC>=10

get_gpu_attestation_payload gated the Channel 8f tensor-core fingerprint on
fp.compute_capability >= "7.0", a lexical string comparison. compute_capability
is f"{major}.{minor}", so "10.0" >= "7.0" is False ('1' < '7') — the newest
tensor-core GPUs (Blackwell CC 10.0, RTX-50 CC 12.0) silently skipped the
channel while Volta..Hopper worked. Parse numerically via a small helper and
add a torch-free regression test.
@github-actions github-actions Bot added BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) BCOS-L2 Beacon Certified Open Source tier BCOS-L2 (required for non-doc PRs) node Node server related tests Test suite changes size/M PR: 51-200 lines labels Jul 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

BCOS-L1 Beacon Certified Open Source tier BCOS-L1 (required for non-doc PRs) BCOS-L2 Beacon Certified Open Source tier BCOS-L2 (required for non-doc PRs) node Node server related size/M PR: 51-200 lines tests Test suite changes

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant