/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License").
* You may not use this file except in compliance with the License.
* A copy of the License is located at
*
* http://aws.amazon.com/apache2.0
*
* or in the "license" file accompanying this file. This file is distributed
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
* express or implied. See the License for the specific language governing
* permissions and limitations under the License.
*/
/*
* Do not modify this file. This file is generated from the sagemaker-2017-07-24.normal.json service model.
*/
using System;
using System.Collections.Generic;
using System.Xml.Serialization;
using System.Text;
using System.IO;
using System.Net;
using Amazon.Runtime;
using Amazon.Runtime.Internal;
namespace Amazon.SageMaker.Model
{
///
/// Describes the resources, including machine learning (ML) compute instances and ML
/// storage volumes, to use for model training.
///
public partial class ResourceConfig
{
private int? _instanceCount;
private List _instanceGroups = new List();
private TrainingInstanceType _instanceType;
private int? _keepAlivePeriodInSeconds;
private string _volumeKmsKeyId;
private int? _volumeSizeInGB;
///
/// Gets and sets the property InstanceCount.
///
/// The number of ML compute instances to use. For distributed training, provide a value
/// greater than 1.
///
///
[AWSProperty(Min=0)]
public int InstanceCount
{
get { return this._instanceCount.GetValueOrDefault(); }
set { this._instanceCount = value; }
}
// Check to see if InstanceCount property is set
internal bool IsSetInstanceCount()
{
return this._instanceCount.HasValue;
}
///
/// Gets and sets the property InstanceGroups.
///
/// The configuration of a heterogeneous cluster in JSON format.
///
///
[AWSProperty(Max=5)]
public List InstanceGroups
{
get { return this._instanceGroups; }
set { this._instanceGroups = value; }
}
// Check to see if InstanceGroups property is set
internal bool IsSetInstanceGroups()
{
return this._instanceGroups != null && this._instanceGroups.Count > 0;
}
///
/// Gets and sets the property InstanceType.
///
/// The ML compute instance type.
///
///
///
/// SageMaker Training on Amazon Elastic Compute Cloud (EC2) P4de instances is in preview
/// release starting December 9th, 2022.
///
///
///
/// Amazon EC2 P4de instances
/// (currently in preview) are powered by 8 NVIDIA A100 GPUs with 80GB high-performance
/// HBM2e GPU memory, which accelerate the speed of training ML models that need to be
/// trained on large datasets of high-resolution data. In this preview release, Amazon
/// SageMaker supports ML training jobs on P4de instances (ml.p4de.24xlarge
)
/// to reduce model training time. The ml.p4de.24xlarge
instances are available
/// in the following Amazon Web Services Regions.
///
/// -
///
/// US East (N. Virginia) (us-east-1)
///
///
-
///
/// US West (Oregon) (us-west-2)
///
///
///
/// To request quota limit increase and start using P4de instances, contact the SageMaker
/// Training service team through your account team.
///
///
///
public TrainingInstanceType InstanceType
{
get { return this._instanceType; }
set { this._instanceType = value; }
}
// Check to see if InstanceType property is set
internal bool IsSetInstanceType()
{
return this._instanceType != null;
}
///
/// Gets and sets the property KeepAlivePeriodInSeconds.
///
/// The duration of time in seconds to retain configured resources in a warm pool for
/// subsequent training jobs.
///
///
[AWSProperty(Min=0, Max=3600)]
public int KeepAlivePeriodInSeconds
{
get { return this._keepAlivePeriodInSeconds.GetValueOrDefault(); }
set { this._keepAlivePeriodInSeconds = value; }
}
// Check to see if KeepAlivePeriodInSeconds property is set
internal bool IsSetKeepAlivePeriodInSeconds()
{
return this._keepAlivePeriodInSeconds.HasValue;
}
///
/// Gets and sets the property VolumeKmsKeyId.
///
/// The Amazon Web Services KMS key that SageMaker uses to encrypt data on the storage
/// volume attached to the ML compute instance(s) that run the training job.
///
///
///
/// Certain Nitro-based instances include local storage, dependent on the instance type.
/// Local storage volumes are encrypted using a hardware module on the instance. You can't
/// request a VolumeKmsKeyId
when using an instance type with local storage.
///
///
///
/// For a list of instance types that support local instance storage, see Instance
/// Store Volumes.
///
///
///
/// For more information about local instance storage encryption, see SSD
/// Instance Store Volumes.
///
///
///
/// The VolumeKmsKeyId
can be in any of the following formats:
///
/// -
///
/// // KMS Key ID
///
///
///
///
"1234abcd-12ab-34cd-56ef-1234567890ab"
///
/// -
///
/// // Amazon Resource Name (ARN) of a KMS Key
///
///
///
///
"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
///
///
///
///
[AWSProperty(Max=2048)]
public string VolumeKmsKeyId
{
get { return this._volumeKmsKeyId; }
set { this._volumeKmsKeyId = value; }
}
// Check to see if VolumeKmsKeyId property is set
internal bool IsSetVolumeKmsKeyId()
{
return this._volumeKmsKeyId != null;
}
///
/// Gets and sets the property VolumeSizeInGB.
///
/// The size of the ML storage volume that you want to provision.
///
///
///
/// ML storage volumes store model artifacts and incremental states. Training algorithms
/// might also use the ML storage volume for scratch space. If you want to store the training
/// data in the ML storage volume, choose File
as the TrainingInputMode
/// in the algorithm specification.
///
///
///
/// When using an ML instance with NVMe
/// SSD volumes, SageMaker doesn't provision Amazon EBS General Purpose SSD (gp2)
/// storage. Available storage is fixed to the NVMe-type instance's storage capacity.
/// SageMaker configures storage paths for training datasets, checkpoints, model artifacts,
/// and outputs to use the entire capacity of the instance storage. For example, ML instance
/// families with the NVMe-type instance storage include ml.p4d
, ml.g4dn
,
/// and ml.g5
.
///
///
///
/// When using an ML instance with the EBS-only storage option and without instance storage,
/// you must define the size of EBS volume through VolumeSizeInGB
in the
/// ResourceConfig
API. For example, ML instance families that use EBS volumes
/// include ml.c5
and ml.p2
.
///
///
///
/// To look up instance types and their instance storage types and volumes, see Amazon
/// EC2 Instance Types.
///
///
///
/// To find the default local paths defined by the SageMaker training platform, see Amazon
/// SageMaker Training Storage Folders for Training Datasets, Checkpoints, Model Artifacts,
/// and Outputs.
///
///
[AWSProperty(Required=true, Min=1)]
public int VolumeSizeInGB
{
get { return this._volumeSizeInGB.GetValueOrDefault(); }
set { this._volumeSizeInGB = value; }
}
// Check to see if VolumeSizeInGB property is set
internal bool IsSetVolumeSizeInGB()
{
return this._volumeSizeInGB.HasValue;
}
}
}