ó
    !Eñi[  ã                   óÜ  • S SK Jr  S SKJrJr  S SKJrJrJr  S SK	J
r
  S SKrS SKJr  S SKJr  S SKJr  \(       a  S S	KJr  S S
KJr  S SKJr  S/rS\S\
S   4S jrS\S\
S   4S jrSS jrS S jrS!S\S\\   S-  S\4S jjr  S"S\\RB                     S\\"\RF                  -     S\S\$\$\RB                        4S jjr%\" S\S9r& S"S\&S\\"\RF                  -     S\S\$\&   4S jjr'g)#é    )ÚOrderedDict)ÚIteratorÚSequence)ÚcastÚTYPE_CHECKINGÚTypeVar)ÚTypeIsN)Ú_get_device_index)ÚModule)Úcomm)ÚScriptMethod)ÚScriptModule)ÚEnabledProxyÚ	replicateÚmoduleÚreturnr   c                 óH   • SS K n[        XR                  R                  5      $ ©Nr   )Ú	torch.jitÚ
isinstanceÚjitr   ©r   Útorchs     ÚX/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/nn/parallel/replicate.pyÚ_is_script_moduler      s   € Ûä�fŸi™i×4Ñ4Ó5Ð5ó    r   c                 óH   • SS K n[        XR                  R                  5      $ r   )r   r   Ú_Cr   r   s     r   Ú_is_script_methodr      s   € Ûä�fŸh™h×3Ñ3Ó4Ð4r   c                  ó>   • SS K n U R                  R                  5       $ r   )r   r   r   ©r   s    r   Ú_init_script_moduler"   !   s   € Ûà�9‰9×!Ñ!Ó#Ð#r   c                  óJ   • SS K n U R                  R                  R                  $ r   )Útorch.jit._stater   Ú_stateÚ_enabledr!   s    r   Ú_is_jit_enabledr'   '   s   € Ûà�9‰9×Ñ×$Ñ$Ð$r   Úmemoc                 ón  • S[         S[        [            4S jn[        5       (       d  gUc
  [        5       nUR	                  U 5        [        U 5      (       a/  UR                  U" U 5      5        [        S U" U 5       5       5      $ U R                  5        H  nX1;   a  M
  [        X15      (       a  M    g   g)Nr   r   c                 ó<   • U R                  5       n[        U5        U$ ©N)ÚmodulesÚnext)r   Úgens     r   Údescendant_modulesÚ0_replicatable_module.<locals>.descendant_modules6   s   € Ø�n‰nÓˆÜˆSŒ	Øˆ
r   Tc              3   ó8   #   • U  H  n[        U5      v •  M     g 7fr+   )r   )Ú.0Ú
descendants     r   Ú	<genexpr>Ú'_replicatable_module.<locals>.<genexpr>D   s   é € ð 
Ú<V¨jÔ˜j×)Ð)Ò<Vùs   ‚F)
r   r   r'   ÚsetÚaddr   ÚupdateÚallÚchildrenÚ_replicatable_module)r   r(   r/   Úchilds       r   r;   r;   4   s®   € ð¤6ð ¬h´vÑ.>ô ô
 ×ÑØØ�|Ü‹uˆð 	‡H�HˆVÔÜ˜× Ñ Ø�‰Ñ& vÓ.Ô/Üñ 
Ù<NÈvÔ<Vó
ó 
ð 	
ð —‘Ö"ˆð ‹=ÙÜ# E×0Ó0Ùñ #ð r   ÚtensorsÚdevicesÚdetachc                 óV  • SSK Jn  [        U 5      S:X  a  / $ U(       a¨  U  Vs/ s HC  n[        U[        R
                  R                  5      (       + =(       a    UR                  5       PME     nn[        R                  " X5      nU H:  n[        U5       H(  u  p‰U	(       d  M  [        R                  " Xx   5      Xx'   M*     M<     U$ UR                  " U/U Q76 n
[        S[        U
5      [        U 5      5       Vs/ s H  n[        X¨U[        U 5      -    5      PM     sn$ s  snf s  snf )Nr   )Ú	Broadcast)Útorch.nn.parallel._functionsrA   Úlenr   r   ÚnnÚUninitializedParameterÚ
is_complexr   Úbroadcast_coalescedÚ	enumerateÚview_as_complexÚapplyÚrangeÚlist)r=   r>   r?   rA   ÚtÚcomplex_maskÚoutputsÚdevice_outputsÚirF   Útensor_copiess              r   Ú_broadcast_coalesced_reshaperS   S   s  € õ
 7ä
ˆ7ƒ|�qÓØˆ	æñ ó
â�ô ˜1œeŸh™h×=Ñ=Ó>Ô>×QÀ1Ç<Á<Ã>ÒQÙð 	ð 
ô
 ×*Ò*¨7Ó<ˆã%ˆNÜ!*¨<Ö!8‘�ß�:Ü(-×(=Ò(=¸nÑ>OÓ(P�NÓ%ó "9ñ &ð
 ˆà!Ÿš¨Ð:°'Ò:ˆô ˜1œc -Ó0´#°g³,Ô?ó
â?�ô � 1¤s¨7£|Ñ#3Ð4Ö5Ù?ñ
ð 	
ùò
ùò
s   £A
D!Ã;#D&ÚT)ÚboundÚnetworkc           	      óè  • [        U 5      (       d  [        S5      eU(       d  / $ U Vs/ s H  n[        US5      PM     nn[        U5      n[	        U R                  5       5      n[        U5       VVs0 s H  u  pgXv_M	     nnn[        XQU5      n	[	        U R                  5       5      n
/ n/ nU
 H?  nUR                  (       a  U(       d  UR                  U5        M.  UR                  U5        MA     [        U5       VVs0 s H  u  pmXÖ_M	     nnn[        U5       VVs0 s H  u  pmXÖ_M	     nnn[        X±US9n[        XÁSS9n[	        U R                  5       5      nU Vs/ s H  n/ PM     nn0 n[        U5       HP  u  nnUUU'   [        U5       H6  nUR                  5       n[        5       Ul        UU   R                  U5        M8     MR     [        U5       GHÃ  u  nnUR                   R#                  5        Hf  u  nnUc+  [        U5       H  nUU   U   nS UR                   U'   M     M4  UU   n[        U5       H  nUU   U   n[%        UUUU   U   5        M      Mh     UR&                  R#                  5        Hv  u  nnUc+  [        U5       H  nUU   U   nS UR&                  U'   M     M4  X‡   n[        U5       H/  nUU   U   nU	U   U   n[%        UUU5        UUR                  U'   M1     Mx     UR(                  R#                  5        H†  u  nnUc+  [        U5       H  nUU   U   nS UR(                  U'   M     M4  UR                  (       a  U(       d  UnXí   n OUnXý   n [        U5       H  nUU   U   n[%        UUUU   U    5        M      Mˆ     GMÆ     [        U5       Vs/ s H  n[+        [,        UU   S   5      PM     sn$ s  snf s  snnf s  snnf s  snnf s  snf s  snf )NzJCannot replicate network where python modules are children of ScriptModuleT)r?   r   )r;   ÚRuntimeErrorr
   rC   rL   Ú
parametersrH   rS   ÚbuffersÚrequires_gradÚappendr,   rK   Ú_replicate_for_data_parallelr   Ú_former_parametersÚ_modulesÚitemsÚsetattrÚ_parametersÚ_buffersr   rT   )!rV   r>   r?   ÚxÚnum_replicasÚparamsÚidxÚparamÚparam_indicesÚparam_copiesrZ   Ú
buffers_rgÚbuffers_not_rgÚbufÚbuffer_indices_rgÚbuffer_indices_not_rgÚbuffer_copies_rgÚbuffer_copies_not_rgr,   Ú_Úmodule_copiesÚmodule_indicesrQ   r   ÚjÚreplicaÚkeyr<   Ú
module_idxÚ	param_idxÚ
param_copyÚbuffer_copiesÚ
buffer_idxs!                                    r   r   r   v   s  € ô
   ×(Ñ(ÜØXó
ð 	
ö Øˆ	á3:Ó;²7¨aÔ   DÖ)±7€GÐ;Ü�w“<€Lä�'×$Ñ$Ó&Ó'€FÜ2;¸FÔ2CÔDÒ2C¡J C�U’ZÑ2C€MÑDÜ/°ÀÓH€Lä�7—?‘?Ó$Ó%€GØ%'€JØ)+€NÛˆØ××¦VØ×Ñ˜cÖ"à×!Ñ! #Ö&ñ	 ô 3<¸JÔ2GÔHÒ2G¡h c˜šÑ2GÐÑHÜ6?ÀÔ6OÔPÒ6O©(¨#˜SšXÑ6OÐÑPä3°JÐPVÑWÐÜ7Ø¨ñÐô �7—?‘?Ó$Ó%€GÙ5<Ó(=²W°«±W€MÐ(=Ø(*€Nä˜wÖ'‰	ˆˆ6Ø!"ˆ�vÑÜ�|Ö$ˆAØ×9Ñ9Ó;ˆGô *5«ˆGÔ&à˜!Ñ×#Ñ# GÖ,ó %ñ (ô ˜w×'‰	ˆˆ6Ø Ÿ/™/×/Ñ/Ö1‰JˆC�Ø‰}Ü˜|Ö,�AØ+¨AÑ.¨qÑ1�GØ,0�G×$Ñ$ SÓ)ó -ð ,¨EÑ2�
Ü˜|Ö,�AØ+¨AÑ.¨qÑ1�GÜ˜G S¨-¸Ñ*:¸:Ñ*FÖGó -ñ 2ð !×,Ñ,×2Ñ2Ö4‰JˆC�Ø‰}Ü˜|Ö,�AØ+¨AÑ.¨qÑ1�GØ/3�G×'Ñ'¨Ó,ó -ð *Ñ0�	Ü˜|Ö,�AØ+¨AÑ.¨qÑ1�GØ!-¨a¡°Ñ!;�Jô ˜G S¨*Ô5à6@�G×.Ñ.¨sÓ3ó -ñ 5ð Ÿ™×-Ñ-Ö/‰HˆC�Ø‰{Ü˜|Ö,�AØ+¨AÑ.¨qÑ1�GØ,0�G×$Ñ$ SÓ)ó -ð ×$×$®VØ$4�MØ!2Ñ!7‘Jà$8�MØ!6Ñ!;�JÜ˜|Ö,�AØ+¨AÑ.¨qÑ1�GÜ˜G S¨-¸Ñ*:¸:Ñ*FÖGó -ô 0ñ5 (ôT 38¸Ô2EÓFÒ2E¨QŒD”�M !Ñ$ QÑ'Ö(Ñ2EÑFÐFùòg <ùó Eùó IùÛPùò )>ùòt Gs#   ©OÁ3OÄ OÄO$Å!O*Î0 O/)r   r   )r   r   r+   )F)(Úcollectionsr   Úcollections.abcr   r   Útypingr   r   r   Útyping_extensionsr	   r   Útorch._utilsr
   Útorch.nn.modulesr   Útorch.nn.parallelr   Útorch._Cr   r   r   r$   r   Ú__all__r   Úobjectr   r"   r'   r6   Úboolr;   ÚTensorÚintÚdevicerL   rS   rT   r   © r   r   Ú<module>rŒ      sA  ðÝ #ß .ß /Ñ /Ý $ã Ý *Ý #Ý "ö Ý%Ý&Ý-ð ˆ-€ð6˜fð 6¨°Ñ)?ô 6ð5˜fð 5¨°Ñ)?ô 5ô$ô%ñ ð ¨s°6©{¸TÑ/Að ÈTõ ðD ñ
Ø�e—l‘lÑ#ð
à�c˜EŸL™LÑ(Ñ)ð
ð ð
ð 
ˆ$ˆu�|‰|Ñ
Ñõ	
ñ@ ˆC�vÑ€ð ñ`GØð`Gà�c˜EŸL™LÑ(Ñ)ð`Gð ð`Gð 
ˆ!�Wö	`Gr   