Skip to content

feat: add B200 accelerator type support#437

Merged
atif1996 merged 4 commits intomainfrom
feat/b200-accelerator
Mar 20, 2026
Merged

feat: add B200 accelerator type support#437
atif1996 merged 4 commits intomainfrom
feat/b200-accelerator

Conversation

@atif1996
Copy link
Copy Markdown
Contributor

Summary

  • Adds b200 as a recognized CriteriaAcceleratorType for standalone NVIDIA Blackwell B200 GPUs
  • Adds snapshot auto-detection via matchAccelerator() for GPU model strings containing "B200"
  • Adds test coverage for parsing, matching, and snapshot extraction

Closes #436

Test plan

  • TestParseCriteriaAcceleratorType — verifies "b200" parses to CriteriaAcceleratorB200
  • TestMatchAccelerator — verifies "NVIDIA-B200" model string matches B200
  • TestExtractCriteriaFromSnapshot — verifies B200 extraction from snapshot measurements
  • make test passes (pre-existing togetherai overlay failures unrelated)
  • make lintgo vet passes (golangci-lint has pre-existing toolchain mismatch)

Add NVIDIA B200 (standalone Blackwell GPU) as a recognized accelerator
type in the criteria system and snapshot auto-detection.

Closes #436
@atif1996 atif1996 requested a review from a team as a code owner March 19, 2026 17:28
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 19, 2026

Coverage Report ✅

Metric Value
Coverage 73.5%
Threshold 70%
Status Pass
Coverage Badge
![Coverage](https://img.shields.io/badge/coverage-73.5%25-green)

Merging this branch will increase overall coverage

Impacted Packages Coverage Δ 🤖
github.com/NVIDIA/aicr/pkg/recipe 90.26% (+0.02%) 👍

Coverage by file

Changed files (no unit tests)

Changed File Coverage Δ Total Covered Missed 🤖
github.com/NVIDIA/aicr/pkg/recipe/criteria.go 90.15% (+0.04%) 264 (+1) 238 (+1) 26 👍
github.com/NVIDIA/aicr/pkg/recipe/doc.go 0.00% (ø) 0 0 0
github.com/NVIDIA/aicr/pkg/recipe/snapshot.go 100.00% (ø) 42 (+1) 42 (+1) 0

Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code.

yuanchen8911
yuanchen8911 previously approved these changes Mar 19, 2026
Copy link
Copy Markdown
Contributor

@yuanchen8911 yuanchen8911 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Clean, well-scoped change with good test coverage.

One note: the matchAccelerator ordering is correct — gb200 is checked before b200, so a "GB200" model string won't false-match as B200. Worth a comment in the code to make this ordering dependency explicit for future maintainers (e.g., if someone adds "GB300" they need to check it before a hypothetical "B300").

Nit (non-blocking): consider adding a comment above the b200 case in matchAccelerator:

// b200 must be checked after gb200 to avoid false-matching GB200 models.

Copy link
Copy Markdown
Contributor

@yuanchen8911 yuanchen8911 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One more thing — the doc/comments should be updated to include b200:

  • pkg/recipe/criteria.go:210Accelerator field comment still lists only h100, gb200, a100, l40
  • pkg/recipe/doc.go:68 and doc.go:118 — package docs and API query parameter lists omit b200

Not a blocker but users/API consumers will miss it otherwise.

- Add ordering comment in matchAccelerator explaining gb200 must be
  checked before b200 to prevent false-matching GB200 model strings
- Update Criteria.Accelerator field comment to include b200
- Update doc.go type synopsis, accelerator list, and HTTP query
  parameter docs to include b200
@atif1996
Copy link
Copy Markdown
Contributor Author

LGTM. Clean, well-scoped change with good test coverage.

One note: the matchAccelerator ordering is correct — gb200 is checked before b200, so a "GB200" model string won't false-match as B200. Worth a comment in the code to make this ordering dependency explicit for future maintainers (e.g., if someone adds "GB300" they need to check it before a hypothetical "B300").

Nit (non-blocking): consider adding a comment above the b200 case in matchAccelerator:

// b200 must be checked after gb200 to avoid false-matching GB200 models.

LGTM. Clean, well-scoped change with good test coverage.

One note: the matchAccelerator ordering is correct — gb200 is checked before b200, so a "GB200" model string won't false-match as B200. Worth a comment in the code to make this ordering dependency explicit for future maintainers (e.g., if someone adds "GB300" they need to check it before a hypothetical "B300").

Nit (non-blocking): consider adding a comment above the b200 case in matchAccelerator:

// b200 must be checked after gb200 to avoid false-matching GB200 models.

Updated, ready to re-review

@atif1996 atif1996 merged commit 0866ef0 into main Mar 20, 2026
17 checks passed
@atif1996 atif1996 deleted the feat/b200-accelerator branch March 20, 2026 11:52
xdu31 pushed a commit to xdu31/aicr that referenced this pull request Mar 24, 2026
Add NVIDIA B200 (standalone Blackwell GPU) as a recognized accelerator type in the criteria system and snapshot auto-detection.
Changes:
- Add `CriteriaAcceleratorB200` constant and parsing logic
- Add snapshot auto-detection for "B200" model strings (ordered after GB200 to prevent false matches)
- Update package documentation and API query parameter lists to include b200
- Add unit tests for parsing and snapshot extraction
Closes NVIDIA#436
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add B200 accelerator type support

3 participants