Skip to content

Commit 5016a59

Browse files
This release introduces compute quota for GPU, Trainium accelerators, vCPU, and vCPU memory utilization across teams in HyperPod clusters
1 parent 700a609 commit 5016a59

File tree

7 files changed

+206
-1
lines changed

7 files changed

+206
-1
lines changed

generator/ServiceModels/sagemaker/sagemaker-2017-07-24.api.json

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4192,6 +4192,12 @@
41924192
}
41934193
},
41944194
"shapes":{
4195+
"AcceleratorsAmount":{
4196+
"type":"integer",
4197+
"box":true,
4198+
"max":10000000,
4199+
"min":0
4200+
},
41954201
"Accept":{
41964202
"type":"string",
41974203
"max":256,
@@ -7634,7 +7640,10 @@
76347640
"required":["InstanceType"],
76357641
"members":{
76367642
"InstanceType":{"shape":"ClusterInstanceType"},
7637-
"Count":{"shape":"InstanceCount"}
7643+
"Count":{"shape":"InstanceCount"},
7644+
"Accelerators":{"shape":"AcceleratorsAmount"},
7645+
"VCpu":{"shape":"VCpuAmount"},
7646+
"MemoryInGiB":{"shape":"MemoryInGiBAmount"}
76387647
}
76397648
},
76407649
"ComputeQuotaResourceConfigList":{
@@ -19095,6 +19104,12 @@
1909519104
"max":10,
1909619105
"min":1
1909719106
},
19107+
"MemoryInGiBAmount":{
19108+
"type":"float",
19109+
"box":true,
19110+
"max":10000000,
19111+
"min":0
19112+
},
1909819113
"MemoryInMb":{
1909919114
"type":"integer",
1910019115
"box":true,
@@ -28419,6 +28434,12 @@
2841928434
"max":100,
2842028435
"min":1
2842128436
},
28437+
"VCpuAmount":{
28438+
"type":"float",
28439+
"box":true,
28440+
"max":10000000,
28441+
"min":0
28442+
},
2842228443
"ValidationFraction":{
2842328444
"type":"float",
2842428445
"box":true,

generator/ServiceModels/sagemaker/sagemaker-2017-07-24.docs.json

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,12 @@
373373
"UpdateWorkteam": "<p>Updates an existing work team with new member definitions or description.</p>"
374374
},
375375
"shapes": {
376+
"AcceleratorsAmount": {
377+
"base": null,
378+
"refs": {
379+
"ComputeQuotaResourceConfig$Accelerators": "<p>The number of accelerators to allocate. If you don't specify a value for vCPU and MemoryInGiB, SageMaker AI automatically allocates ratio-based values for those parameters based on the number of accelerators you provide. For example, if you allocate 16 out of 32 total accelerators, SageMaker AI uses the ratio of 0.5 and allocates values to vCPU and MemoryInGiB.</p>"
380+
}
381+
},
376382
"Accept": {
377383
"base": null,
378384
"refs": {
@@ -10344,6 +10350,12 @@
1034410350
"Workteam$MemberDefinitions": "<p>A list of <code>MemberDefinition</code> objects that contains objects that identify the workers that make up the work team. </p> <p>Workforces can be created using Amazon Cognito or your own OIDC Identity Provider (IdP). For private workforces created using Amazon Cognito use <code>CognitoMemberDefinition</code>. For workforces created using your own OIDC identity provider (IdP) use <code>OidcMemberDefinition</code>.</p>"
1034510351
}
1034610352
},
10353+
"MemoryInGiBAmount": {
10354+
"base": null,
10355+
"refs": {
10356+
"ComputeQuotaResourceConfig$MemoryInGiB": "<p>The amount of memory in GiB to allocate. If you specify a value only for this parameter, SageMaker AI automatically allocates a ratio-based value for vCPU based on this memory that you provide. For example, if you allocate 200 out of 400 total memory in GiB, SageMaker AI uses the ratio of 0.5 and allocates values to vCPU. Accelerators are set to 0.</p>"
10357+
}
10358+
},
1034710359
"MemoryInMb": {
1034810360
"base": null,
1034910361
"refs": {
@@ -18642,6 +18654,12 @@
1864218654
"GetScalingConfigurationRecommendationResponse$TargetCpuUtilizationPerCore": "<p>The percentage of how much utilization you want an instance to use before autoscaling, which you specified in the request. The default value is 50%.</p>"
1864318655
}
1864418656
},
18657+
"VCpuAmount": {
18658+
"base": null,
18659+
"refs": {
18660+
"ComputeQuotaResourceConfig$VCpu": "<p>The number of vCPU to allocate. If you specify a value only for vCPU, SageMaker AI automatically allocates ratio-based values for MemoryInGiB based on this vCPU parameter. For example, if you allocate 20 out of 40 total vCPU, SageMaker AI uses the ratio of 0.5 and allocates values to MemoryInGiB. Accelerators are set to 0.</p>"
18661+
}
18662+
},
1864518663
"ValidationFraction": {
1864618664
"base": null,
1864718665
"refs": {

generator/ServiceModels/sagemaker/sagemaker-2017-07-24.normal.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4561,6 +4561,12 @@
45614561
}
45624562
},
45634563
"shapes":{
4564+
"AcceleratorsAmount":{
4565+
"type":"integer",
4566+
"box":true,
4567+
"max":10000000,
4568+
"min":0
4569+
},
45644570
"Accept":{
45654571
"type":"string",
45664572
"max":256,
@@ -9645,6 +9651,18 @@
96459651
"Count":{
96469652
"shape":"InstanceCount",
96479653
"documentation":"<p>The number of instances to add to the instance group of a SageMaker HyperPod cluster.</p>"
9654+
},
9655+
"Accelerators":{
9656+
"shape":"AcceleratorsAmount",
9657+
"documentation":"<p>The number of accelerators to allocate. If you don't specify a value for vCPU and MemoryInGiB, SageMaker AI automatically allocates ratio-based values for those parameters based on the number of accelerators you provide. For example, if you allocate 16 out of 32 total accelerators, SageMaker AI uses the ratio of 0.5 and allocates values to vCPU and MemoryInGiB.</p>"
9658+
},
9659+
"VCpu":{
9660+
"shape":"VCpuAmount",
9661+
"documentation":"<p>The number of vCPU to allocate. If you specify a value only for vCPU, SageMaker AI automatically allocates ratio-based values for MemoryInGiB based on this vCPU parameter. For example, if you allocate 20 out of 40 total vCPU, SageMaker AI uses the ratio of 0.5 and allocates values to MemoryInGiB. Accelerators are set to 0.</p>"
9662+
},
9663+
"MemoryInGiB":{
9664+
"shape":"MemoryInGiBAmount",
9665+
"documentation":"<p>The amount of memory in GiB to allocate. If you specify a value only for this parameter, SageMaker AI automatically allocates a ratio-based value for vCPU based on this memory that you provide. For example, if you allocate 200 out of 400 total memory in GiB, SageMaker AI uses the ratio of 0.5 and allocates values to vCPU. Accelerators are set to 0.</p>"
96489666
}
96499667
},
96509668
"documentation":"<p>Configuration of the resources used for the compute allocation definition.</p>"
@@ -30769,6 +30787,12 @@
3076930787
"max":10,
3077030788
"min":1
3077130789
},
30790+
"MemoryInGiBAmount":{
30791+
"type":"float",
30792+
"box":true,
30793+
"max":10000000,
30794+
"min":0
30795+
},
3077230796
"MemoryInMb":{
3077330797
"type":"integer",
3077430798
"box":true,
@@ -45251,6 +45275,12 @@
4525145275
"max":100,
4525245276
"min":1
4525345277
},
45278+
"VCpuAmount":{
45279+
"type":"float",
45280+
"box":true,
45281+
"max":10000000,
45282+
"min":0
45283+
},
4525445284
"ValidationFraction":{
4525545285
"type":"float",
4525645286
"box":true,

sdk/code-analysis/ServiceAnalysis/SageMaker/Generated/PropertyValueRules.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9461,11 +9461,26 @@
94619461
<max>63</max>
94629462
<pattern>[a-zA-Z0-9](-*[a-zA-Z0-9]){0,62}</pattern>
94639463
</property-value-rule>
9464+
<property-value-rule>
9465+
<property>Amazon.SageMaker.Model.ComputeQuotaResourceConfig.Accelerators</property>
9466+
<min>0</min>
9467+
<max>10000000</max>
9468+
</property-value-rule>
94649469
<property-value-rule>
94659470
<property>Amazon.SageMaker.Model.ComputeQuotaResourceConfig.Count</property>
94669471
<min>0</min>
94679472
<max>10000000</max>
94689473
</property-value-rule>
9474+
<property-value-rule>
9475+
<property>Amazon.SageMaker.Model.ComputeQuotaResourceConfig.MemoryInGiB</property>
9476+
<min>0</min>
9477+
<max>10000000</max>
9478+
</property-value-rule>
9479+
<property-value-rule>
9480+
<property>Amazon.SageMaker.Model.ComputeQuotaResourceConfig.VCpu</property>
9481+
<min>0</min>
9482+
<max>10000000</max>
9483+
</property-value-rule>
94699484
<property-value-rule>
94709485
<property>Amazon.SageMaker.Model.ComputeQuotaSummary.ClusterArn</property>
94719486
<min>0</min>

sdk/src/Services/SageMaker/Generated/Model/ComputeQuotaResourceConfig.cs

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,34 @@ namespace Amazon.SageMaker.Model
3434
/// </summary>
3535
public partial class ComputeQuotaResourceConfig
3636
{
37+
private int? _accelerators;
3738
private int? _count;
3839
private ClusterInstanceType _instanceType;
40+
private float? _memoryInGiB;
41+
private float? _vCpu;
42+
43+
/// <summary>
44+
/// Gets and sets the property Accelerators.
45+
/// <para>
46+
/// The number of accelerators to allocate. If you don't specify a value for vCPU and
47+
/// MemoryInGiB, SageMaker AI automatically allocates ratio-based values for those parameters
48+
/// based on the number of accelerators you provide. For example, if you allocate 16 out
49+
/// of 32 total accelerators, SageMaker AI uses the ratio of 0.5 and allocates values
50+
/// to vCPU and MemoryInGiB.
51+
/// </para>
52+
/// </summary>
53+
[AWSProperty(Min=0, Max=10000000)]
54+
public int Accelerators
55+
{
56+
get { return this._accelerators.GetValueOrDefault(); }
57+
set { this._accelerators = value; }
58+
}
59+
60+
// Check to see if Accelerators property is set
61+
internal bool IsSetAccelerators()
62+
{
63+
return this._accelerators.HasValue;
64+
}
3965

4066
/// <summary>
4167
/// Gets and sets the property Count.
@@ -75,5 +101,50 @@ internal bool IsSetInstanceType()
75101
return this._instanceType != null;
76102
}
77103

104+
/// <summary>
105+
/// Gets and sets the property MemoryInGiB.
106+
/// <para>
107+
/// The amount of memory in GiB to allocate. If you specify a value only for this parameter,
108+
/// SageMaker AI automatically allocates a ratio-based value for vCPU based on this memory
109+
/// that you provide. For example, if you allocate 200 out of 400 total memory in GiB,
110+
/// SageMaker AI uses the ratio of 0.5 and allocates values to vCPU. Accelerators are
111+
/// set to 0.
112+
/// </para>
113+
/// </summary>
114+
[AWSProperty(Min=0, Max=10000000)]
115+
public float MemoryInGiB
116+
{
117+
get { return this._memoryInGiB.GetValueOrDefault(); }
118+
set { this._memoryInGiB = value; }
119+
}
120+
121+
// Check to see if MemoryInGiB property is set
122+
internal bool IsSetMemoryInGiB()
123+
{
124+
return this._memoryInGiB.HasValue;
125+
}
126+
127+
/// <summary>
128+
/// Gets and sets the property VCpu.
129+
/// <para>
130+
/// The number of vCPU to allocate. If you specify a value only for vCPU, SageMaker AI
131+
/// automatically allocates ratio-based values for MemoryInGiB based on this vCPU parameter.
132+
/// For example, if you allocate 20 out of 40 total vCPU, SageMaker AI uses the ratio
133+
/// of 0.5 and allocates values to MemoryInGiB. Accelerators are set to 0.
134+
/// </para>
135+
/// </summary>
136+
[AWSProperty(Min=0, Max=10000000)]
137+
public float VCpu
138+
{
139+
get { return this._vCpu.GetValueOrDefault(); }
140+
set { this._vCpu = value; }
141+
}
142+
143+
// Check to see if VCpu property is set
144+
internal bool IsSetVCpu()
145+
{
146+
return this._vCpu.HasValue;
147+
}
148+
78149
}
79150
}

sdk/src/Services/SageMaker/Generated/Model/Internal/MarshallTransformations/ComputeQuotaResourceConfigMarshaller.cs

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ public void Marshall(ComputeQuotaResourceConfig requestObject, JsonMarshallerCon
4848
{
4949
if(requestObject == null)
5050
return;
51+
if(requestObject.IsSetAccelerators())
52+
{
53+
context.Writer.WritePropertyName("Accelerators");
54+
context.Writer.Write(requestObject.Accelerators);
55+
}
56+
5157
if(requestObject.IsSetCount())
5258
{
5359
context.Writer.WritePropertyName("Count");
@@ -60,6 +66,32 @@ public void Marshall(ComputeQuotaResourceConfig requestObject, JsonMarshallerCon
6066
context.Writer.Write(requestObject.InstanceType);
6167
}
6268

69+
if(requestObject.IsSetMemoryInGiB())
70+
{
71+
context.Writer.WritePropertyName("MemoryInGiB");
72+
if(StringUtils.IsSpecialFloatValue(requestObject.MemoryInGiB))
73+
{
74+
context.Writer.Write(StringUtils.FromSpecialFloatValue(requestObject.MemoryInGiB));
75+
}
76+
else
77+
{
78+
context.Writer.Write(requestObject.MemoryInGiB);
79+
}
80+
}
81+
82+
if(requestObject.IsSetVCpu())
83+
{
84+
context.Writer.WritePropertyName("VCpu");
85+
if(StringUtils.IsSpecialFloatValue(requestObject.VCpu))
86+
{
87+
context.Writer.Write(StringUtils.FromSpecialFloatValue(requestObject.VCpu));
88+
}
89+
else
90+
{
91+
context.Writer.Write(requestObject.VCpu);
92+
}
93+
}
94+
6395
}
6496

6597
/// <summary>

sdk/src/Services/SageMaker/Generated/Model/Internal/MarshallTransformations/ComputeQuotaResourceConfigUnmarshaller.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,12 @@ public ComputeQuotaResourceConfig Unmarshall(JsonUnmarshallerContext context)
6666
int targetDepth = context.CurrentDepth;
6767
while (context.ReadAtDepth(targetDepth))
6868
{
69+
if (context.TestExpression("Accelerators", targetDepth))
70+
{
71+
var unmarshaller = IntUnmarshaller.Instance;
72+
unmarshalledObject.Accelerators = unmarshaller.Unmarshall(context);
73+
continue;
74+
}
6975
if (context.TestExpression("Count", targetDepth))
7076
{
7177
var unmarshaller = IntUnmarshaller.Instance;
@@ -78,6 +84,18 @@ public ComputeQuotaResourceConfig Unmarshall(JsonUnmarshallerContext context)
7884
unmarshalledObject.InstanceType = unmarshaller.Unmarshall(context);
7985
continue;
8086
}
87+
if (context.TestExpression("MemoryInGiB", targetDepth))
88+
{
89+
var unmarshaller = FloatUnmarshaller.Instance;
90+
unmarshalledObject.MemoryInGiB = unmarshaller.Unmarshall(context);
91+
continue;
92+
}
93+
if (context.TestExpression("VCpu", targetDepth))
94+
{
95+
var unmarshaller = FloatUnmarshaller.Instance;
96+
unmarshalledObject.VCpu = unmarshaller.Unmarshall(context);
97+
continue;
98+
}
8199
}
82100
return unmarshalledObject;
83101
}

0 commit comments

Comments
 (0)