+
    "Ý³jÞ  ã                   ój   € ^ RI Ht ^ RIt^ RIHt ^ RIHt ^ RIH	t	H
t
 ^ RIHt R	R R lltR R ltR# )
é    )ÚListN)ÚFloat8LinearConfigÚScalingType)Ú(precompute_float8_dynamic_scale_for_fsdpc                ó  € V ^8„  d   QhR\         P                  R\        P                  P                  R\         P                  R\        P                  P                  R\        P
                  R\        R\        R\        /# )	é   Ú	ref_modelÚ	ref_optimÚ
fsdp_modelÚ
fsdp_optimÚ	local_inpÚconfigÚ
precomputeÚcompile_transformer_block)ÚnnÚModuleÚtorchÚoptimÚ	OptimizerÚTensorr   Úbool)Úformats   "Úe/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torchao/testing/training/fsdp2_utils.pyÚ__annotate__r      sz   € ÷ ,
ñ ,
ä�y‰yð,
ô �{‰{×$Ñ$ð,
ô —	‘	ð	,
ô
 —‘×%Ñ%ð,
ô �|‰|ð,
ô ð,
ô ð,
ô  $ñ,
ó    c	                 ó  € \        VP                  4       VP                  4       4       FG  w  ršV P                  V	P                  V
P                  R V	P                   RV
P                   2R7       KI  	  \	        ^
4       EF}  p. pW3W433 EF3  w  rÞVP                  V^,          ^ 8H  R7       VP                  V! V4      P                  4       4       VR,          P                  4        WÑJ dz   VP                  4        Fe  pVP                  '       g   K  \        P                  ! VP                  4       VP                  P                  \        P                  ! 4       4       Kg  	  VP                  4        WÓJ g   Kó  V'       g   Ký  VP                  P                   \"        P$                  J g   EK(  \'        V4       EK6  	  V P                  V^ ,          V^,          RV RV^ ,           RV^,           2R7       EK€  	  R# )	zref_param.requires_grad: z, fsdp_param.requires_grad: ©Úmsg©Úset_to_noneúiter: ú, loss-ref: ú, loss-fp8: Néÿÿÿÿ)ÚzipÚ
parametersÚassertEqualÚrequires_gradÚrangeÚ	zero_gradÚappendÚsumÚbackwardÚdistÚ
all_reduceÚgradÚdiv_Úget_world_sizeÚstepÚcast_config_weightÚscaling_typer   ÚDYNAMICr   )Útest_clsr	   r
   r   r   r   r   r   r   Ú	ref_paramÚ
fsdp_paramÚiter_idxÚlossesÚmodelr   Úparams   &&&&&&&&&       r   Úcheck_parity_no_mpr>      s¥  € ô "% Y×%9Ñ%9Ó%;¸Z×=RÑ=RÓ=TÖ!UÑˆ	Ø×ÑØ×#Ñ#Ø×$Ñ$Ø+¨I×,CÑ,CÐ+DÐD`Ðak×ayÑayÐ`zÐ{ð 	ö 	
ñ "Vô ˜"—IˆØ%'ˆØ'Ð3°jÐ5MÔN‰LˆEØ�O‰O¨°A­¸Ñ):ˆOÔ<Ø�M‰M™% 	Ó*×.Ñ.Ó0Ô1Ø�2�J×ÑÔ!ØÓ!Ø"×-Ñ-Ö/�EØ×*×*Ò*ÜŸš¨¯
©
Ô3ØŸ
™
Ÿ™¬×(;Ò(;Ó(=Ö>ñ 0ð
 �J‰JŒLàÕ#ß‘JØ×-Ñ-×:Ñ:¼k×>QÑ>QÖQä8¸×?ñ! Oð$ 	×ÑØ�1�IØ�1�IØ˜˜
 ,¨v°a­y¨k¸ÀfÈQÅiÀ[ÐQð 	÷ 	
ó) r   c                ó   € V ^8„  d   QhR\         P                  R\         P                  R\        P                  P                  R\         P                  R\        P                  P                  R\        P
                  /# )r   r	   Úref_model_bf16r
   r   r   r   )r   r   r   r   r   r   )r   s   "r   r   r   B   sj   € ÷ #
ñ #
ä�y‰yð#
ô —I‘Ið#
ô �{‰{×$Ñ$ð	#
ô
 —	‘	ð#
ô —‘×%Ñ%ð#
ô �|‰|ñ#
r   c                 óŠ  € \        ^
4       EF²  p. pW#3WE33 EFh  w  ršV
P                  V^,          ^ 8H  R7       VP                  V	! V4      P                  4       4       VR,          P	                  4        W’J d¦   \        VP                  4       VP                  4       4       Fy  w  r¼\        P                  ! VP                  4       VP                  P                  \        P                  ! 4       4       VP                  P                  4       Vn	        RVn	        K{  	  V
P                  4        \        VP                  4       VP                  4       4       F$  w  rËVP                  4       P                  V4       K&  	  EKk  	  V P!                  V^ ,          V^,          RV RV^ ,           RV^,           2R7       EKµ  	  R# )é
   r   Nr!   r"   r#   r   r$   )r)   r*   r+   r,   r-   r%   r&   r.   r/   r0   r1   r2   Úfloatr3   ÚdetachÚcopy_r'   )r7   r	   r@   r
   r   r   r   r:   r;   r<   r   Ú
param_bf16Ú
param_fp32s   &&&&&&&      r   Úcheck_parity_bf16_mprH   B   sy  € ô ˜"—IˆØ%'ˆàÐ'ØÐ$ô
‰LˆEð �O‰O¨°A­¸Ñ):ˆOÔ<Ø�M‰M™% 	Ó*×.Ñ.Ó0Ô1Ø�2�J×ÑÔ!ØÓ&Ü.1Ø"×-Ñ-Ó/°×1EÑ1EÓ1Gö/Ñ*�Jô —O’O J§O¡OÔ4Ø—O‘O×(Ñ(¬×)<Ò)<Ó)>Ô?Ø&0§o¡o×&;Ñ&;Ó&=�J”OØ&*�J–Oñ/ð �J‰JŒLÜ*-Ø×$Ñ$Ó&¨×(AÑ(AÓ(Cö+Ñ&�
ð ×!Ñ!Ó#×)Ñ)¨*Ö5ô+ñ!
ð( 	×ÑØ�1�IØ�1�IØ˜˜
 ,¨v°a­y¨k¸ÀfÈQÅiÀ[ÐQð 	÷ 	
ó- r   )FF)Útypingr   r   Útorch.distributedÚdistributedr.   Útorch.nnr   Útorchao.float8.configr   r   Útorchao.float8.fsdp_utilsr   r>   rH   © r   r   Ú<module>rP      s)   ðõ ã Ý  Ý ÷õ O÷,
÷^#
r   