Repository navigation
feat(lib-cloudinfo): add GPU model, capability, CUDA range and memory (2.3.0) - #169
Merged
Merged
Conversation
… (2.3.0) Model the cross-provider GPU facts served from cloudinfo 0.30.0 (seqeralabs/cloudinfo#130, #132) on CloudProduct: gpuModel, gpuVendor, gpuCapability, gpuArch, gpuCudaMin, gpuCudaMax and gpuMemoryGB. Add the matching ProductsQuery filters: gpuModels (?gpuModel=), minGpuCapability, cuda and minGpuMemoryGB. Additive, no API break. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
jordeu
approved these changes
Oct 23, 2026
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds client support for the cloud-neutral GPU data that cloudinfo will serve once seqeralabs/cloudinfo#130 and seqeralabs/cloudinfo#132 are merged, expected in cloudinfo 0.30.0. With it, a consumer such as sched can ask for the same GPU on every cloud and filter by CUDA support or memory, without its own per-provider tables.
Changes
CloudProduct, new fields. All arenullon older backends and wherever cloudinfo omits them (CPU-only, TPU, Inferentia and Trainium types, unmapped GPUs). They're included inequals,hashCodeandtoString.gpuModelnvidia-a10ggpuVendornvidianvidiaoramdgpuCapability8.6gpuArchamperegpuCudaMin/gpuCudaMax11.1/ nullgpuCudaMaxis null while still supportedgpuMemoryGB24The CUDA fields are
nullfor AMD GPUs and for parts whose chip isn't disclosed.gpuMemoryMiBkeeps its meaning (total memory for the instance); its docs now note that cloudinfo derives it for Azure.ProductsQuery, new GPU filters, combined with the existing ones (a product must match all):gpuModels(List<String>), sent as?gpuModel=a,b, matches any of the given IDs.minGpuCapability(String), sent as?minGpuCapability=8.0.cuda(String), sent as?cuda=12.4.minGpuMemoryGB(Long), sent as?minGpuMemoryGB=40. A fractional GPU counts only its share of the card.Values are URL-encoded. The client doesn't validate them, because cloudinfo answers 400 to a malformed value. Older backends ignore the filters.
Docs: README section "GPU Model, Capability and Memory", changelog entry, and
VERSIONbumped to 2.3.0.Notes for review
[release]marker yet. It's left out on purpose, so merging doesn't publish 2.3.0 before cloudinfo 0.30.0 is deployed. Add the marker, or release separately, once it's out.Testing
./gradlew :lib-cloudinfo:test: 121 tests, 0 failures.CloudProductGpuFieldsTest: its test data (products-gpu-models.json) is real prod products from all four providers, fetched on 23 Oct 2026, with the new fields set to the values the cloudinfo branch computes. It covers:gpuMemoryGB: 24gpuMemoryMiB: 4096CloudInfoClientMockTestchecks how the four filters appear in the request URL, including encoding.ProductsQueryTestcovers equality and that thegpuModelslist is copied.🤖 Generated with Claude Code