Skip to content

fix(prism): rent 1x B200 on Lium 8x split hosts - #192

Merged
echobt merged 1 commit into
mainfrom
fix/lium-b200-split-rent
Aug 22, 2026
Merged

fix(prism): rent 1x B200 on Lium 8x split hosts#192
echobt merged 1 commit into
mainfrom
fix/lium-b200-split-rent

Conversation

@echobt

@echobt echobt commented Aug 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Prod no_capacity was a false sold-out: Lium only lists 8× B200, and the 1× pin rejected every row.
  • Parse available_gpu_count / min_gpu_count_for_rental and rent one GPU (including idle hosts that omit min).
  • Never buy the whole 8-pack; still never fall through to 5090 / 6000.

Test plan

  • cargo test -p prism-lium-types -p prism-lium
  • Replay live /executors → 4 B200 hosts become 1× candidates
  • CI green on main
  • Prod prism-challenge no longer floods no_capacity when B200s are listed
  • A queued miner job reaches provisioning / rent with gpu_count=1

Summary by CodeRabbit

  • New Features
    • Supports renting fewer GPUs from eligible split-capable hosts, including individual GPUs from larger B200 instances.
    • Marketplace offers now include rental minimums and available GPU counts for more accurate matching.
  • Bug Fixes
    • Improved GPU offer selection while preventing unintended whole-host rentals or fallback to unsuitable GPU types.
    • Preserved existing whole-host rental behavior for non-splittable offers.
  • Documentation
    • Updated GPU pinning guidance and refreshed the Lium marketplace inventory snapshot and pricing details.

Prod no_capacity was a false sold-out: the market only lists 8x B200
and the 1x pin rejected every row. Parse Lium split fields and rent
one GPU, including idle hosts that omit min_gpu_count_for_rental.
@echobt
echobt merged commit 689154f into main Aug 22, 2026
2 of 3 checks passed
@echobt
echobt deleted the fix/lium-b200-split-rent branch August 22, 2026 03:53
@coderabbitai

coderabbitai Bot commented Aug 22, 2026

Copy link
Copy Markdown

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 27efcca8-225c-4291-83da-d165b24df8fe

📥 Commits

Reviewing files that changed from the base of the PR and between 286f5e5 and b1208f7.

📒 Files selected for processing (6)
  • crates/prism-lium-types/src/json.rs
  • crates/prism-lium-types/src/types.rs
  • crates/prism-lium/src/client.rs
  • crates/prism-lium/src/sim.rs
  • crates/prism-verda/src/lib.rs
  • docs/PRISM.md

📝 Walkthrough

Walkthrough

Lium offers now parse rental metadata and support split GPU matching. Provisioning uses the calculated rental count, including one-GPU rentals from eligible 8× B200 hosts. Provider defaults, tests, and pin guidance were updated.

Changes

Split GPU rental

Layer / File(s) Summary
Offer metadata and parsing
crates/prism-lium-types/src/json.rs, crates/prism-lium-types/src/types.rs, crates/prism-lium/src/sim.rs, crates/prism-verda/src/lib.rs
Offer now stores optional rental minimum and available GPU counts. JSON parsing accepts valid bounded values. Provider constructors use Offer::default() for unspecified fields.
Split matching and rent calculation
crates/prism-lium-types/src/types.rs
Offer now validates split rentals, calculates rent_count, and preserves whole-host rejection rules. Tests cover native, split-capable, idle, and minimum-four-GPU 8× offers.
Provisioning integration and pin guidance
crates/prism-lium/src/client.rs, docs/PRISM.md
Provisioning uses selected.rent_count(spec.gpu_count). Tests cover one-GPU rental from an idle 8× B200 host. Documentation updates the dense GPU pin guidance and inventory snapshot.

Estimated code review effort: 4 (Complex) | ~45 minutes

Sequence Diagram(s)

sequenceDiagram
  participant LiumMarketplace
  participant Offer
  participant LiumClient
  participant RentalAPI
  LiumMarketplace->>Offer: provide GPU rental metadata
  LiumClient->>Offer: match requested GPU count
  Offer-->>LiumClient: return eligible offer and rent_count
  LiumClient->>RentalAPI: provision with rent_count
  RentalAPI-->>LiumClient: return provisioned pod
Loading
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/lium-b200-split-rent

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant