You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
OCI: H100/H200/L40S/A100-v2/B200/B300/RTX PRO shapes are filtered out of offers #4301
Configure the oci backend and run dstack apply with a run that requests an H100 (or H200, L40S, A100-v2, B200, B300, RTX PRO 6000) in a region and tenancy that has quota for it.
Actual behaviour
No OCI offer is ever selected for those GPUs. SUPPORTED_SHAPE_FAMILIES in src/dstack/_internal/core/backends/oci/compute.py still lists only the shapes that existed when Bare Metal support landed (#1325): BM.GPU3., BM.GPU4., BM.GPU.A10. plus the VM families. Every newer shape that gpuhunt already catalogs (BM.GPU.H100.8, BM.GPU.H200.8, BM.GPU.L40S.4, BM.GPU.A100-v2.8, BM.GPU.B200.8) is filtered out by _supported_instances. #2343 asked for H100 and was closed as non-priority; its blocker (Fabric Manager, #2348) was fixed in #2355, so the images now install open kernel modules and Fabric Manager.
Separately, the gpuhunt OCI provider dropped OCI's AMD shapes and the newest NVIDIA shapes, and published GB200 under its display name (fix in dstackai/gpuhunt#262).
Expected behaviour
Runs that request these GPUs get OCI offers when the account has quota for them. I use the OCI backend with NVIDIA GPU shapes and want to schedule newer ones through dstack rather than by hand.
dstack version
master (branch off 68e701d0's parent)
Additional information
I have a change ready that adds the x86-64 NVIDIA families to the allowlist and records why AMD (no ROCm image) and Grace GB200/GB300 (arm64 hosts, x86 images only) stay out, plus a note on why SUPPORTED_REGIONS is fixed (the Marketplace listings carrying the dstack images are regional). PR to follow.
One more shape worth recording, kept out of the PR because it cannot be fixed there alone.
BM.GPU.B4.8 (8 x A100 40GB, 128 OCPUs, 2048 GB) is returned by the Compute API as a shape distinct from BM.GPU4.8 (64 OCPUs), and it is filtered out twice over:
"BM.GPU.B4.8".startswith("BM.GPU4.") is False, so the allowlist would not match it even after this change.
It does not appear in the OCI Cost Estimator shapes.json that the gpuhunt provider reads, so the catalog has no row and no price for it.
Adding BM.GPU.B4. to SUPPORTED_SHAPE_FAMILIES on its own would therefore be dead code - the catalog side would have to come first.
Caveat on how much this matters: BM.GPU.B4.8 is also absent from Oracle's Compute Shapes documentation, which lists 21 GPU shapes and includes BM.GPU4.8 but not this one. So it looks like a legacy or undocumented shape still served by the API rather than a gap in current coverage, and it is probably not worth acting on unless someone turns out to be running it. Recording it so it is not rediscovered later.
Activity
fede-kamel commentedon Sep 24, 2026
One more shape worth recording, kept out of the PR because it cannot be fixed there alone.
BM.GPU.B4.8(8 x A100 40GB, 128 OCPUs, 2048 GB) is returned by the Compute API as a shape distinct fromBM.GPU4.8(64 OCPUs), and it is filtered out twice over:"BM.GPU.B4.8".startswith("BM.GPU4.")isFalse, so the allowlist would not match it even after this change.shapes.jsonthat the gpuhunt provider reads, so the catalog has no row and no price for it.Adding
BM.GPU.B4.toSUPPORTED_SHAPE_FAMILIESon its own would therefore be dead code - the catalog side would have to come first.Caveat on how much this matters:
BM.GPU.B4.8is also absent from Oracle's Compute Shapes documentation, which lists 21 GPU shapes and includesBM.GPU4.8but not this one. So it looks like a legacy or undocumented shape still served by the API rather than a gap in current coverage, and it is probably not worth acting on unless someone turns out to be running it. Recording it so it is not rediscovered later.jvstme commentedon Oct 7, 2026
Since dstack 0.22.2, you can use the
experimental_instance_typesbackend setting to enable these shapes.We will make the shapes available without
experimental_instance_typesonce we get a chance to test them.