o
    TÃi  ã                   @   s@   d dl mZmZmZ d dlT G dd„ deƒZdd„ Zdd„ Zd	S )
é    )Úget_scalar_paramÚget_dict_paramÚDeepSpeedConfigObject)Ú*c                       s$   e Zd Z‡ fdd„Zdd„ Z‡  ZS )ÚDeepSpeedAutotuningConfigc                    sv   t t| ƒ ¡  d | _d | _d | _d | _d | _d | _d | _	d | _
d | _d | _|r2t| ¡ v r2|t }ni }|  |¡ d S ©N)Úsuperr   Ú__init__ÚenabledÚ
start_stepÚend_stepÚmetric_pathÚarg_mappingsÚmetricÚ
model_infoÚresults_dirÚexps_dirÚ	overwriteÚ
AUTOTUNINGÚkeysÚ_initialize)ÚselfÚ
param_dictÚautotuning_dict©Ú	__class__© úO/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/autotuning/config.pyr	      s   
z"DeepSpeedAutotuningConfig.__init__c                 C   sB  t |ttƒ| _t |ttƒ| _t |ttƒ| _	| j	sJ dƒ‚t |t
tƒ| _| js*J dƒ‚t |ttƒ| _t |ttƒ| _t |ttƒ| _t |ttƒ| _t |ttƒ| _t |ttƒ| _t |tt ƒ| _!t |t"t#ƒ| _$t%|t&t'ƒ| _(t)|ƒ| _*t |t+t,ƒ| _-t |t.t/ƒ| _0t%|t1t2ƒ| _3t%|t4t5ƒ| _6t%|t7t8ƒ| _9t%|t:t;ƒ| _<t%|t=t>ƒ| _?d S )Nzresults_dir cannot be emptyzexps_dir cannot be empty)@r   ÚAUTOTUNING_ENABLEDÚAUTOTUNING_ENABLED_DEFAULTr
   ÚAUTOTUNING_FASTÚAUTOTUNING_FAST_DEFAULTÚfastÚAUTOTUNING_RESULTS_DIRÚAUTOTUNING_RESULTS_DIR_DEFAULTr   ÚAUTOTUNING_EXPS_DIRÚAUTOTUNING_EXPS_DIR_DEFAULTr   ÚAUTOTUNING_OVERWRITEÚAUTOTUNING_OVERWRITE_DEFAULTr   ÚAUTOTUNING_START_PROFILE_STEPÚ%AUTOTUNING_START_PROFILE_STEP_DEFAULTÚstart_profile_stepÚAUTOTUNING_END_PROFILE_STEPÚ#AUTOTUNING_END_PROFILE_STEP_DEFAULTÚend_profile_stepÚAUTOTUNING_METRICÚAUTOTUNING_METRIC_DEFAULTr   ÚAUTOTUNING_METRIC_PATHÚAUTOTUNING_METRIC_PATH_DEFAULTr   ÚAUTOTUNING_TUNER_TYPEÚAUTOTUNING_TUNER_TYPE_DEFAULTÚ
tuner_typeÚAUTOTUNING_TUNER_EARLY_STOPPINGÚ'AUTOTUNING_TUNER_EARLY_STOPPING_DEFAULTÚtuner_early_stoppingÚAUTOTUNING_TUNER_NUM_TRIALSÚ#AUTOTUNING_TUNER_NUM_TRIALS_DEFAULTÚtuner_num_trialsr   ÚAUTOTUNING_ARG_MAPPINGSÚAUTOTUNING_ARG_MAPPINGS_DEFAULTr   Úget_model_info_configr   ÚAUTOTUNING_MODEL_INFO_PATHÚ"AUTOTUNING_MODEL_INFO_PATH_DEFAULTÚmodel_info_pathÚAUTOTUNING_MP_SIZEÚAUTOTUNING_MP_SIZE_DEFAULTÚmp_sizeÚAUTOTUNING_MAX_TRAIN_BATCH_SIZEÚ'AUTOTUNING_MAX_TRAIN_BATCH_SIZE_DEFAULTÚmax_train_batch_sizeÚAUTOTUNING_MIN_TRAIN_BATCH_SIZEÚ'AUTOTUNING_MIN_TRAIN_BATCH_SIZE_DEFAULTÚmin_train_batch_sizeÚ-AUTOTUNING_MAX_TRAIN_MICRO_BATCH_SIZE_PER_GPUÚ5AUTOTUNING_MAX_TRAIN_MICRO_BATCH_SIZE_PER_GPU_DEFAULTÚ"max_train_micro_batch_size_per_gpuÚ-AUTOTUNING_MIN_TRAIN_MICRO_BATCH_SIZE_PER_GPUÚ5AUTOTUNING_MIN_TRAIN_MICRO_BATCH_SIZE_PER_GPU_DEFAULTÚ"min_train_micro_batch_size_per_gpuÚ'AUTOTUNING_NUM_TUNING_MICRO_BATCH_SIZESÚ/AUTOTUNING_NUM_TUNING_MICRO_BATCH_SIZES_DEFAULTÚnum_tuning_micro_batch_sizes)r   r   r   r   r   r   !   sZ   ÿÿÿÿ
ÿÿÿþþ
ÿz%DeepSpeedAutotuningConfig._initialize)Ú__name__Ú
__module__Ú__qualname__r	   r   Ú__classcell__r   r   r   r   r   
   s    r   c                 C   sF   t | v r!| t  d ur!i }t ¡ D ]\}}t| t  ||ƒ||< q|S d S r   )Ú
MODEL_INFOÚMODEL_INFO_KEY_DEFAULT_DICTÚitemsr   )r   Úmodel_info_configÚkeyÚdefault_valuer   r   r   r>   X   s   r>   c                   C   s   t S r   )rY   r   r   r   r   Úget_default_model_info_configa   s   r^   N)Údeepspeed.runtime.config_utilsr   r   r   Údeepspeed.autotuning.constantsr   r>   r^   r   r   r   r   Ú<module>   s
   N	