
    Αi
                     >    S SK r S SKJr  S SKJr  S r " S S5      rg)    N)
MethodTypec                     U  GHo  u  p4U? UR                  UU/5        UR                  nUR                  UR                  R	                  5       ;   a%  UR                  UR                     nUR                  nUR
                  R	                  5        H  nUR
                  U   U   nUR                  5       (       a  M,  UR                  n	SU;  a  UR                  n
OK[        [        UR                  R                  5      5       Vs/ s H  n[        R                  " 5       PM     n
n[        R                  " UUR                  U
S9UR
                  U   U'   U	UR
                  U   U   l        M     GMr     S n[        X5      Ul        g s  snf )Nbeta)mesh
placementsc                 \    [        U[        5      (       d  US   nU H  u  p4S Ul        M     g )Nparams)
isinstancelist	main_grad)selfblockparameters_and_gradsp_s        l/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/auto_parallel/fully_shard.py_finish_update_impl/shard_accumulators.<locals>._finish_update_impl6   s.    .55#7#A (DAAK )    )_need_shard_auto_create_accumulatorsname_master_weightskeys_accumulatorsis_distr   rangelenprocess_meshshapedist	Replicateshard_tensorr   _finish_update)r   	optimizertarget_blockparamr   target_namemaster_weightkeyaccumulatororigin_accumulator_namer   r   s               r   shard_accumulatorsr-      sy   ("&&G	
 jj::227799%55ejjAM',,K**//1C#11#6{CK""$$&1&6&6#S "--
 #3u'9'9'?'?#@AA NN$A   9=8I8I''%9I##C(5 - ##C() 2 )@  **=II's   Fc                       \ rS rSrS rSrg)FullyShardAuto?   c                 *   Xl         [        R                  " SU5      U l        U R                   R	                  5        H@  nSUl        U R                  R                  U5        U R                  R                  U5        MB     S[        R                  S'   g )Nr   T1skip_sharding3_output_reshard)
modelr!   ShardingStage3	_shard_fn
parametersr   _shard_parameter_register_hook_for_param_gradosenviron)r   r4   r   r'   s       r   __init__FullyShardAuto.__init__@   so    
,,Q5ZZ**,E%)E"NN++E2NN88? - 7:

23r   )r6   r4   N)__name__
__module____qualname____firstlineno__r<   __static_attributes__ r   r   r/   r/   ?   s    :r   r/   )r:   typesr   paddle.distributeddistributedr!   r-   r/   rC   r   r   <module>rG      s!    
  !'JT	: 	:r   