
    Αi                     Z    S SK Jr  S SKrS SKrS SKJrJr  S SKJr  S SK	J
r
  SSKJr  S rg)	    )
MethodTypeN)_C_ops_legacy_C_ops)fleet)core   )ParallelModec                     S n[         R                   nUR                  R                  5       [        R                  La  [        X5      U l        U $ )Nc                 X   U R                   (       d  g / n/ n/ n/ n[        USS 5      (       Ga:  [        UR                  S   [        5      (       Ga  UR                   GH  nUS    H  nS n[        US5      (       a  UR                  b  UR                  nOUR                  b  UR                  nUc  MN  UR                  U5        UR                  [        R                  R                  R                  [        R                  4;   a  UR                  U5        M  UR                  [        R                   4;   a  UR                  U5        M  UR                  U5        M     GM     GO["        R"                  R$                  n	U	R&                  S   R(                  n
U
(       a  [        US5      (       d   e[        US5      (       d   eUR*                  (       a  SUl        UR,                   H  nUR/                  5         M     [        US	5      (       d   eUR0                  nOUR2                  nU H  nS n[        US5      (       a  UR                  b  UR                  nOUR                  b  UR                  nUc  MN  UR                  U5        UR                  [        R                  R                  R                  [        R                  4;   a  UR                  U5        M  UR                  [        R                   4;   a  UR                  U5        M  UR                  U5        M     [        R4                  " [6        R8                  " S/5      R;                  [6        R<                  5      5      n[        R4                  " [6        R8                  " S/5      R;                  [6        R<                  5      5      n[        R4                  " [6        R8                  " S/5      R;                  [6        R<                  5      5      nU R>                  U l         [C        U5      (       aI  [D        RF                  " UU RH                  UU5        [J        RL                  " U R@                  U5      U l         [C        U5      (       aI  [D        RF                  " UU RH                  UU5        [J        RL                  " U R@                  U5      U l         [C        U5      (       aI  [D        RF                  " UU RH                  UU5        [J        RL                  " U R@                  U5      U l         U R@                  RO                  S
5      U l         [        RP                  RS                  U R@                  [        RP                  RT                  RV                  S S9  U R@                  RO                  S5      U l         g )N_param_groupsr   params	main_gradsharding_configs_comm_buffers_sharding_enableF_local_parameter_listint32)opgroupbool),_enablegetattr
isinstancer   dicthasattrr   gradappenddtyper   VarDescVarTypeFP16paddlefloat16bfloat16r   _user_defined_strategyhybrid_configscomm_overlapr   r   scale_gradsr   _parameter_list	to_tensornparrayastypebool__temp_found_inf_value_false
_found_inflenr   check_finite_and_unscale_scaler   
bitwise_orcastdistributed
all_reduceReduceOpMAX)self	optimizerparam_gradsparam_grads_bf16param_grads_fp16param_grads_fp32r   paramtgt_gradstrategysharding_stage_1_overlapbuffer
parameterstemp_found_inf_fp16temp_found_inf_bf16temp_found_inf_fp32s                   _/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/fleet/scaler.pyunscale_method*distributed_scaler.<locals>.unscale_method   su   ||9ot44##A&:
 :
 #00"8_E#H{33!OO7#(??/#(::+#**84#>> LL0055"NN.  -33H=%^^"OO0  -33H=,33H=+ - 10 {{99H'/'>'>"(l % ( y/::::y*<====--16I.'55F&&( 6 y*ABBBB&<<
&66
#5+..5??3N$HZZ+$zzH'&&x0~~,,11*  )//9!,  )//9(//9% $( %..rxx}/C/CBHH/MN$..rxx}/C/CBHH/MN$..rxx}/C/CBHH/MN::  22  #	 %//!4DO   22  #	 %//!4DO   22  #	 %//!4DO //..w7
 	%%OO 2 2 ; ; ? ?t 	& 	
 //..v6    )r   _hcgget_parallel_moder	   DATA_PARALLELr   _unscale)scalerrJ   	fleet_envs      rI   distributed_scalerrS      s@    w7t I~~'')1K1KK$^<MrL   )typesr   numpyr+   r"   r   r   paddle.distributedr   paddle.frameworkr   base.topologyr	   rS    rL   rI   <module>rZ      s"       ( $ ! 'rL   