§
    Ÿ²Åj–
  ã                   óJ  — d dl Z d dlmZ d dlmZmZmZ d dlZd dlmZ  e j	        e
¦  «        Zd„ Zd„ Z G d„ de¦  «        Zd	„ Zd
eeej                 eej        df         f         deeej                 eej        df         f         fd„Ze G d„ d¦  «        ¦   «         ZdS )é    N)Ú	dataclass)ÚListÚTupleÚUnion)Úfxc                 óZ   ‡— g Šˆfd„}t           j                             | |¦  «        }|‰fS )z\
    Flatten the args into a list form and detach the tensors from computational graph.
    c                 óì   •— t          | t          j        ¦  «        rC|                      ¦   «                              | j        ¦  «        }‰                     |¦  «         |S ‰                     | ¦  «         | S ©N)Ú
isinstanceÚtorchÚTensorÚdetachÚrequires_grad_Úrequires_gradÚappend)ÚaÚvalÚflat_detached_argss     €úTC:\Projects\Historical\venv\Lib\site-packages\torch/distributed/pipelining/_utils.pyÚextract_tensor_argsz0flatten_args_detach.<locals>.extract_tensor_args   sf   ø€ å�a�œÑ&Ô&ð 	Ø—(’(‘*”*×+Ò+¨A¬OÑ<Ô<ˆCØ×%Ò% cÑ*Ô*Ð*ØˆJà×%Ò% aÑ(Ô(Ð(ØˆHó    ©r   ÚnodeÚmap_aggregate)Úargsr   Únew_argsr   s      @r   Úflatten_args_detachr      sQ   ø€ ð Ððð ð ð ð õ Œw×$Ò$ØØñô €Hð
 Ð'Ð'Ð'r   c                 óV   ‡— g Šˆfd„}t           j                             | |¦  «         ‰S )z,
    Flatten the args into a list form.
    c                 ó2   •— ‰                      | ¦  «         | S r
   )r   )r   Ú	flat_argss    €r   r   z)flatten_args.<locals>.extract_tensor_args,   s   ø€ à×Ò˜ÑÔÐØˆr   r   )r   r   r    s     @r   Úflatten_argsr!   &   sM   ø€ ð €Iðð ð ð ð õ
 „G×ÒØØñô ð ð
 Ðr   c                   ó   — e Zd ZdZdS )ÚPipeliningShapeErrorz5Shape mismatch between configured and runtime values.N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© r   r   r#   r#   9   s   € € € € € Ø?Ð?Ð?Ð?r   r#   c                 ó”  — |j         |j         k    s!t          | › d|j         › d|j         › �¦  «        ‚|j        |j        k    s!t          | › d|j        › d|j        › �¦  «        ‚|                     ¦   «         |                     ¦   «         k    s;t          | › d|                     ¦   «         › d|                     ¦   «         › �¦  «        ‚d S )Nz  has a shape mismatch: expected z actual z  has a dtype mismatch: expected z! has a stride mismatch: expected )Úshaper#   ÚdtypeÚstride)ÚdescÚexpectedÚgivens      r   Úvalidate_tensor_metadatar0   =   sé   € ØŒ>˜Uœ[Ò(Ð(Ý"ØÐZÐZ°X´^ÐZÐZÈUÌ[ÐZÐZñ
ô 
ð 	
ð Œ>˜Uœ[Ò(Ð(Ý"ØÐZÐZ°X´^ÐZÐZÈUÌ[ÐZÐZñ
ô 
ð 	
ð �?Š?ÑÔ §¢¡¤Ò.Ð.Ý"ØÐaÐa°h·o²oÑ6GÔ6GÐaÐaÐQV×Q]ÒQ]ÑQ_ÔQ_ÐaÐañ
ô 
ð 	
ð /Ð.r   Úexpected_tensors.Úactual_tensorsc           	      ó,  — t          |¦  «        t          |¦  «        k    r2t          | › dt          |¦  «        › dt          |¦  «        › d�¦  «        ‚t          t          |¦  «        ¦  «        D ]$}t          | › d|› �||         ||         ¦  «         Œ%d S )Nz: Number of values (z") does not match expected number (ú)z: value )Úlenr#   Úranger0   )r-   r1   r2   Úis       r   Úvalidate_tensors_metadatar8   L   sÃ   € õ
 ÐÑÔ¥ NÑ 3Ô 3Ò3Ð3Ý"ØÐxÐx­¨^Ñ)<Ô)<ÐxÐxÕ`cÐdtÑ`uÔ`uÐxÐxÐxñ
ô 
ð 	
õ •3Ð'Ñ(Ô(Ñ)Ô)ð 
ð 
ˆÝ ØÐ Ð ˜QÐ Ð Ð"2°1Ô"5°~ÀaÔ7Hñ	
ô 	
ð 	
ð 	
ð
ð 
r   c                   ó<   — e Zd ZU dZej        ed<   eed<   eed<   dS )ÚPipeInfoz>
    Captures information for a pipeline (`Pipe` object).
    ÚgraphÚ
num_stagesÚhas_loss_and_backwardN)	r$   r%   r&   r'   r   ÚGraphÚ__annotations__ÚintÚboolr(   r   r   r:   r:   [   s>   € € € € € € ðð ð Œ8€O€O�OØ€O€O�OØÐÐÑÐÐr   r:   )ÚloggingÚdataclassesr   Útypingr   r   r   r   r   Ú	getLoggerr$   Úloggerr   r!   ÚRuntimeErrorr#   r0   r   r8   r:   r(   r   r   ú<module>rH      sl  ðð €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %Ð %à €€€Ø Ð Ð Ð Ð Ð ð 
ˆÔ	˜8Ñ	$Ô	$€ð(ð (ð (ð0ð ð ð&@ð @ð @ð @ð @˜<ñ @ô @ð @ð
ð 
ð 
ð
à˜D ¤Ô.°°e´lÀCÐ6GÔ0HÐHÔIð
ð ˜$˜uœ|Ô,¨e°E´LÀ#Ð4EÔ.FÐFÔGð
ð 
ð 
ð 
ð ð ð  ð  ð  ð  ñ  ô  ñ „ð ð  ð  r   