o
    Ti                     @   s   d dl mZ d dlmZ d dlmZmZ d dlmZ d dl	m
Z
mZ G dd deeZG dd	 d	e
ZG d
d de
ZG dd deeZdS )    )Enum)Path)Fieldmodel_validator)Optional)DeepSpeedConfigModelpp_intc                   @   s   e Zd ZdZdZdZdZdS )OffloadDeviceEnumz  Enum for valid offload devices nonecpunvmeN)__name__
__module____qualname____doc__r
   r   r    r   r   Y/home/ubuntu/.local/lib/python3.10/site-packages/deepspeed/runtime/zero/offload_config.pyr	      s
    r	   c                   @   s   e Zd ZU dZdZeed< 	 dZee	 ed< 	 e
dddZeed	< 	 e
ed
ddZeed< 	 e
edddZeed< 	 dZeed< dS )DeepSpeedZeroOffloadParamConfigz= Set options for parameter offload. Valid only with stage 3. r
   deviceN	nvme_path   r   gebuffer_countg    חAbuffer_sizeg    eA
max_in_cpuF
pin_memory)r   r   r   r   r   r	   __annotations__r   r   r   r   r   intr   r   r   r   boolr   r   r   r   r      s   
 r   c                   @   s   e Zd ZU dZdZeed< 	 dZee	 ed< 	 e
dddZeed	< 	 d
Zeed< 	 d
Zeed< 	 d
Zeed< 	 d
Zeed< 	 e
ddddZeed< 	 edddd ZdS )#DeepSpeedZeroOffloadOptimizerConfigzB Set options for optimizer offload. Valid with stage 1, 2, and 3. r
   r   Nr      r   r   r   Fr   pipeline_readpipeline_write	fast_initg      ?g        )r   leratioafter)modec                 C   s   | j p| j}|| jd< | S )Npipeline)r"   r#   __dict__)selfr)   r   r   r   set_pipeline`   s   
z0DeepSpeedZeroOffloadOptimizerConfig.set_pipeline)r   r   r   r   r   r	   r   r   r   r   r   r   r   r   r   r"   r#   r$   r&   floatr   r,   r   r   r   r   r    4   s(   
 r    c                   @   s$   e Zd ZdZdZdZdZdZdZdS )OffloadStateTypeEnumz  Enum for internal buffer types optim_states	hp_params	lp_paramslp_gradscontiguous_grad_bufferN)	r   r   r   r   r/   r0   r1   r2   r3   r   r   r   r   r.   g   s    r.   N)enumr   pathlibr   pydanticr   r   typingr   deepspeed.runtime.config_utilsr   r   strr	   r   r    r.   r   r   r   r   <module>   s   3