Skip to content

Commit 456a2e9

Browse files
Adds support for select GPU accelerated instance types when creating new service-managed fleets.
1 parent 86c0d21 commit 456a2e9

16 files changed

+755
-12
lines changed

generator/ServiceModels/deadline/deadline-2023-10-12.api.json

Lines changed: 41 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1937,6 +1937,14 @@
19371937
}
19381938
},
19391939
"shapes":{
1940+
"AcceleratorCapabilities":{
1941+
"type":"structure",
1942+
"required":["selections"],
1943+
"members":{
1944+
"selections":{"shape":"AcceleratorSelections"},
1945+
"count":{"shape":"AcceleratorCountRange"}
1946+
}
1947+
},
19401948
"AcceleratorCountRange":{
19411949
"type":"structure",
19421950
"required":["min"],
@@ -1945,6 +1953,32 @@
19451953
"max":{"shape":"MinZeroMaxInteger"}
19461954
}
19471955
},
1956+
"AcceleratorName":{
1957+
"type":"string",
1958+
"enum":[
1959+
"t4",
1960+
"a10g",
1961+
"l4",
1962+
"l40s"
1963+
]
1964+
},
1965+
"AcceleratorRuntime":{
1966+
"type":"string",
1967+
"max":100,
1968+
"min":1
1969+
},
1970+
"AcceleratorSelection":{
1971+
"type":"structure",
1972+
"required":["name"],
1973+
"members":{
1974+
"name":{"shape":"AcceleratorName"},
1975+
"runtime":{"shape":"AcceleratorRuntime"}
1976+
}
1977+
},
1978+
"AcceleratorSelections":{
1979+
"type":"list",
1980+
"member":{"shape":"AcceleratorSelection"}
1981+
},
19481982
"AcceleratorTotalMemoryMiBRange":{
19491983
"type":"structure",
19501984
"required":["min"],
@@ -7070,6 +7104,7 @@
70707104
"osFamily":{"shape":"ServiceManagedFleetOperatingSystemFamily"},
70717105
"cpuArchitectureType":{"shape":"CpuArchitectureType"},
70727106
"rootEbsVolume":{"shape":"Ec2EbsVolume"},
7107+
"acceleratorCapabilities":{"shape":"AcceleratorCapabilities"},
70737108
"allowedInstanceTypes":{"shape":"InstanceTypes"},
70747109
"excludedInstanceTypes":{"shape":"InstanceTypes"},
70757110
"customAmounts":{"shape":"CustomFleetAmountCapabilities"},
@@ -7366,7 +7401,9 @@
73667401
},
73677402
"StepAmountCapabilities":{
73687403
"type":"list",
7369-
"member":{"shape":"StepAmountCapability"}
7404+
"member":{"shape":"StepAmountCapability"},
7405+
"max":25,
7406+
"min":1
73707407
},
73717408
"StepAmountCapability":{
73727409
"type":"structure",
@@ -7380,7 +7417,9 @@
73807417
},
73817418
"StepAttributeCapabilities":{
73827419
"type":"list",
7383-
"member":{"shape":"StepAttributeCapability"}
7420+
"member":{"shape":"StepAttributeCapability"},
7421+
"max":25,
7422+
"min":1
73847423
},
73857424
"StepAttributeCapability":{
73867425
"type":"structure",

generator/ServiceModels/deadline/deadline-2023-10-12.docs.json

Lines changed: 33 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -107,12 +107,43 @@
107107
"UpdateWorkerSchedule": "<p>Updates the schedule for a worker.</p>"
108108
},
109109
"shapes": {
110+
"AcceleratorCapabilities": {
111+
"base": "<p>Provides information about the GPU accelerators and drivers for the instance types in a fleet. If you include the <code>acceleratorCapabilities</code> property in the <a href=\"https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities\">ServiceManagedEc2InstanceCapabilities</a> object, all of the Amazon EC2 instances will have at least one accelerator. </p>",
112+
"refs": {
113+
"ServiceManagedEc2InstanceCapabilities$acceleratorCapabilities": "<p>The GPU accelerator capabilities required for the Amazon EC2 instances. If you include the <code>acceleratorCapabilities</code> property in the <a href=\"https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities\">ServiceManagedEc2InstanceCapabilities</a> object, all of the Amazon EC2 instances will have at least one accelerator. </p>"
114+
}
115+
},
110116
"AcceleratorCountRange": {
111117
"base": "<p>The range for the GPU fleet acceleration.</p>",
112118
"refs": {
119+
"AcceleratorCapabilities$count": "<p>The number of GPUs on each worker. The default is 1.</p>",
113120
"CustomerManagedWorkerCapabilities$acceleratorCount": "<p>The range of the accelerator.</p>"
114121
}
115122
},
123+
"AcceleratorName": {
124+
"base": null,
125+
"refs": {
126+
"AcceleratorSelection$name": "<p>The name of the GPU accelerator.</p>"
127+
}
128+
},
129+
"AcceleratorRuntime": {
130+
"base": null,
131+
"refs": {
132+
"AcceleratorSelection$runtime": "<p>The driver version that the GPU accelerator uses. </p>"
133+
}
134+
},
135+
"AcceleratorSelection": {
136+
"base": "<p>Values that you can use to select a particular Amazon EC2 instance type. </p>",
137+
"refs": {
138+
"AcceleratorSelections$member": null
139+
}
140+
},
141+
"AcceleratorSelections": {
142+
"base": null,
143+
"refs": {
144+
"AcceleratorCapabilities$selections": "<p>A list of objects that contain the GPU name of the accelerator and driver for the instance types that support the accelerator.</p>"
145+
}
146+
},
116147
"AcceleratorTotalMemoryMiBRange": {
117148
"base": "<p>The range for memory, in MiB, to use for the accelerator.</p>",
118149
"refs": {
@@ -2584,8 +2615,8 @@
25842615
"MinZeroMaxInteger": {
25852616
"base": null,
25862617
"refs": {
2587-
"AcceleratorCountRange$min": "<p>The minimum GPU for the accelerator.</p>",
2588-
"AcceleratorCountRange$max": "<p>The maximum GPU for the accelerator.</p>",
2618+
"AcceleratorCountRange$min": "<p>The minimum number of GPUs for the accelerator. If you set the value to 0, a worker will still have 1 GPU.</p>",
2619+
"AcceleratorCountRange$max": "<p>The maximum number of GPUs for the accelerator.</p>",
25892620
"AcceleratorTotalMemoryMiBRange$min": "<p>The minimum amount of memory to use for the accelerator, measured in MiB.</p>",
25902621
"AcceleratorTotalMemoryMiBRange$max": "<p>The maximum amount of memory to use for the accelerator, measured in MiB.</p>",
25912622
"CreateFleetRequest$minWorkerCount": "<p>The minimum number of workers for the fleet.</p>",

generator/ServiceModels/deadline/deadline-2023-10-12.normal.json

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2040,21 +2040,69 @@
20402040
}
20412041
},
20422042
"shapes":{
2043+
"AcceleratorCapabilities":{
2044+
"type":"structure",
2045+
"required":["selections"],
2046+
"members":{
2047+
"selections":{
2048+
"shape":"AcceleratorSelections",
2049+
"documentation":"<p>A list of objects that contain the GPU name of the accelerator and driver for the instance types that support the accelerator.</p>"
2050+
},
2051+
"count":{
2052+
"shape":"AcceleratorCountRange",
2053+
"documentation":"<p>The number of GPUs on each worker. The default is 1.</p>"
2054+
}
2055+
},
2056+
"documentation":"<p>Provides information about the GPU accelerators and drivers for the instance types in a fleet. If you include the <code>acceleratorCapabilities</code> property in the <a href=\"https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities\">ServiceManagedEc2InstanceCapabilities</a> object, all of the Amazon EC2 instances will have at least one accelerator. </p>"
2057+
},
20432058
"AcceleratorCountRange":{
20442059
"type":"structure",
20452060
"required":["min"],
20462061
"members":{
20472062
"min":{
20482063
"shape":"MinZeroMaxInteger",
2049-
"documentation":"<p>The minimum GPU for the accelerator.</p>"
2064+
"documentation":"<p>The minimum number of GPUs for the accelerator. If you set the value to 0, a worker will still have 1 GPU.</p>"
20502065
},
20512066
"max":{
20522067
"shape":"MinZeroMaxInteger",
2053-
"documentation":"<p>The maximum GPU for the accelerator.</p>"
2068+
"documentation":"<p>The maximum number of GPUs for the accelerator.</p>"
20542069
}
20552070
},
20562071
"documentation":"<p>The range for the GPU fleet acceleration.</p>"
20572072
},
2073+
"AcceleratorName":{
2074+
"type":"string",
2075+
"enum":[
2076+
"t4",
2077+
"a10g",
2078+
"l4",
2079+
"l40s"
2080+
]
2081+
},
2082+
"AcceleratorRuntime":{
2083+
"type":"string",
2084+
"max":100,
2085+
"min":1
2086+
},
2087+
"AcceleratorSelection":{
2088+
"type":"structure",
2089+
"required":["name"],
2090+
"members":{
2091+
"name":{
2092+
"shape":"AcceleratorName",
2093+
"documentation":"<p>The name of the GPU accelerator.</p>"
2094+
},
2095+
"runtime":{
2096+
"shape":"AcceleratorRuntime",
2097+
"documentation":"<p>The driver version that the GPU accelerator uses. </p>"
2098+
}
2099+
},
2100+
"documentation":"<p>Values that you can use to select a particular Amazon EC2 instance type. </p>"
2101+
},
2102+
"AcceleratorSelections":{
2103+
"type":"list",
2104+
"member":{"shape":"AcceleratorSelection"}
2105+
},
20582106
"AcceleratorTotalMemoryMiBRange":{
20592107
"type":"structure",
20602108
"required":["min"],
@@ -9537,6 +9585,10 @@
95379585
"shape":"Ec2EbsVolume",
95389586
"documentation":"<p>The root EBS volume.</p>"
95399587
},
9588+
"acceleratorCapabilities":{
9589+
"shape":"AcceleratorCapabilities",
9590+
"documentation":"<p>The GPU accelerator capabilities required for the Amazon EC2 instances. If you include the <code>acceleratorCapabilities</code> property in the <a href=\"https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities\">ServiceManagedEc2InstanceCapabilities</a> object, all of the Amazon EC2 instances will have at least one accelerator. </p>"
9591+
},
95409592
"allowedInstanceTypes":{
95419593
"shape":"InstanceTypes",
95429594
"documentation":"<p>The allowable Amazon EC2 instance types.</p>"
@@ -10030,7 +10082,9 @@
1003010082
},
1003110083
"StepAmountCapabilities":{
1003210084
"type":"list",
10033-
"member":{"shape":"StepAmountCapability"}
10085+
"member":{"shape":"StepAmountCapability"},
10086+
"max":25,
10087+
"min":1
1003410088
},
1003510089
"StepAmountCapability":{
1003610090
"type":"structure",
@@ -10057,7 +10111,9 @@
1005710111
},
1005810112
"StepAttributeCapabilities":{
1005910113
"type":"list",
10060-
"member":{"shape":"StepAttributeCapability"}
10114+
"member":{"shape":"StepAttributeCapability"},
10115+
"max":25,
10116+
"min":1
1006110117
},
1006210118
"StepAttributeCapability":{
1006310119
"type":"structure",

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1846,6 +1846,11 @@
18461846
<min>0</min>
18471847
<max>2147483647</max>
18481848
</property-value-rule>
1849+
<property-value-rule>
1850+
<property>Amazon.Deadline.Model.AcceleratorSelection.Runtime</property>
1851+
<min>1</min>
1852+
<max>100</max>
1853+
</property-value-rule>
18491854
<property-value-rule>
18501855
<property>Amazon.Deadline.Model.AcceleratorTotalMemoryMiBRange.Max</property>
18511856
<min>0</min>
Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
/*
17+
* Do not modify this file. This file is generated from the deadline-2023-10-12.normal.json service model.
18+
*/
19+
using System;
20+
using System.Collections.Generic;
21+
using System.Xml.Serialization;
22+
using System.Text;
23+
using System.IO;
24+
using System.Net;
25+
26+
using Amazon.Runtime;
27+
using Amazon.Runtime.Internal;
28+
29+
#pragma warning disable CS0612,CS0618,CS1570
30+
namespace Amazon.Deadline.Model
31+
{
32+
/// <summary>
33+
/// Provides information about the GPU accelerators and drivers for the instance types
34+
/// in a fleet. If you include the <c>acceleratorCapabilities</c> property in the <a href="https://docs.aws.amazon.com/deadline-cloud/latest/APIReference/API_ServiceManagedEc2InstanceCapabilities">ServiceManagedEc2InstanceCapabilities</a>
35+
/// object, all of the Amazon EC2 instances will have at least one accelerator.
36+
/// </summary>
37+
public partial class AcceleratorCapabilities
38+
{
39+
private AcceleratorCountRange _count;
40+
private List<AcceleratorSelection> _selections = AWSConfigs.InitializeCollections ? new List<AcceleratorSelection>() : null;
41+
42+
/// <summary>
43+
/// Gets and sets the property Count.
44+
/// <para>
45+
/// The number of GPUs on each worker. The default is 1.
46+
/// </para>
47+
/// </summary>
48+
public AcceleratorCountRange Count
49+
{
50+
get { return this._count; }
51+
set { this._count = value; }
52+
}
53+
54+
// Check to see if Count property is set
55+
internal bool IsSetCount()
56+
{
57+
return this._count != null;
58+
}
59+
60+
/// <summary>
61+
/// Gets and sets the property Selections.
62+
/// <para>
63+
/// A list of objects that contain the GPU name of the accelerator and driver for the
64+
/// instance types that support the accelerator.
65+
/// </para>
66+
/// </summary>
67+
[AWSProperty(Required=true)]
68+
public List<AcceleratorSelection> Selections
69+
{
70+
get { return this._selections; }
71+
set { this._selections = value; }
72+
}
73+
74+
// Check to see if Selections property is set
75+
internal bool IsSetSelections()
76+
{
77+
return this._selections != null && (this._selections.Count > 0 || !AWSConfigs.InitializeCollections);
78+
}
79+
80+
}
81+
}

sdk/src/Services/Deadline/Generated/Model/AcceleratorCountRange.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public partial class AcceleratorCountRange
4040
/// <summary>
4141
/// Gets and sets the property Max.
4242
/// <para>
43-
/// The maximum GPU for the accelerator.
43+
/// The maximum number of GPUs for the accelerator.
4444
/// </para>
4545
/// </summary>
4646
[AWSProperty(Min=0, Max=2147483647)]
@@ -59,7 +59,8 @@ internal bool IsSetMax()
5959
/// <summary>
6060
/// Gets and sets the property Min.
6161
/// <para>
62-
/// The minimum GPU for the accelerator.
62+
/// The minimum number of GPUs for the accelerator. If you set the value to 0, a worker
63+
/// will still have 1 GPU.
6364
/// </para>
6465
/// </summary>
6566
[AWSProperty(Required=true, Min=0, Max=2147483647)]

0 commit comments

Comments
 (0)