shared-compute implementation to support multiple GPU SKUs#92
Open
mgmachado wants to merge 5 commits into
Open
shared-compute implementation to support multiple GPU SKUs#92mgmachado wants to merge 5 commits into
mgmachado wants to merge 5 commits into
Conversation
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.
Description
Adds multi-tenant shared GPU Batch pools so many environments can share scarce GPU quota instead of fragmenting it across one pool per environment, plus the v2.1.0
hastelibrouting + per-job SAS changes that make it work.batchPool.bicep(fixed/autoscale × dedicated/low-priority × optional VNet) and a new standaloneshared-pools.bicep+shared-pools.bicepparamthat provision an H100 + T4 pool pair per group (dev, demo, …), autoscaling on low-priority nodes and scaling to zero when idle.hastelibnow takes ordered candidate pool lists and binds a pool at submit time (select_pool) — preferred tier first, spillover to a tier with a free node.HASTE_RESOURCE_PREFIX→ neutralhaste, BYO account/ACR), so other partners can deploy without editing the templates.All new behavior is behind per-environment flags that default to the existing single-pool, pool-identity path, so existing environments are unaffected until they explicitly opt in.
Full design:
spec/features/batch-compute-expansion/.Fixes #
Type of change
Checklist
cd hastelib && hatch run test:pytest) and the UI lints clean (cd ui && npm run lint) — new unit tests pass (9/9); full suite to run in CI (conda env)Testing
hastelib/tests/core/runners/test_azure_batch_routing.py— 9 tests coveringselect_pool(single / spillover-to-idle / preferred fallback), the SAS-vs-identity blob-credential toggle, and config candidate-list parsing. All pass.ResourceFile/OutputFileI/O works with noidentity_reference; a cross-tenant SAS was denied (BlobAccessDenied); the ACR-pull-only shared identity authenticated and pulled the training image.batchPool.bicep+shared-pools.bicepcompile clean;what-ifshows no drift against the live pools.rollout.md).Additional context
AZURE_BATCH_USE_SAS=true,AZURE_BATCH_MANAGE_POOLS=false, andAZURE_BATCH_{TRAINING,INFERENCE,IMAGERYPREP}_POOL_IDS; all default to legacy.Storage Blob Delegatoris granted to theapi/queuesidentity (infunctionApp.bicep) so it can mint the SAS.azure-batchpinned to==14.2.0— the 15.x track-2 rewrite restructures the models this code uses; migration tracked separately.README,plan,impact-analysis,user-stories,design,test-plan,rollout.