
    x-j$1                       d dl mZ d dlmZ d dlmZmZ erd dlmZ d dl	m
Z
  ee          Zd Zd Zd Zd	 Zd
ZdZ eedd            eedd            eedd            eedd            eedd            eedd            eedd            eedd            eedd           er G d ded          ZdZ eedd            eedg             eedg             eed d             eed!g             eed"d           er  G d# d$ed          Z G d% d&ed          Zd'Z eedd            eed(d)            eed*d+            eed,d-            eed.d/            eed0d1            eed2d3            eed4d5            eed6d            eed7g             eed8g             eed9g             eed:d            eed;d            eed<d            eed=d           er G d> d?ed          Zd@Z eedd            eedAdB            eedCdD            eedEd            eedFdB            eedGdB            eedHdB            eedIdB            eedJd            eedKdL            eed"d            eedMg             eedNd            eedOdP            eedQd            eedRd           er G dS dTed          ZdUZ eedd            eedVdB            eedWd           er G dX dYed          ZdZZ eedd            eed[d\            eed]dB            eed^dB            eed_d`            eedadB            eedbdB            eedcdB            eeddd            eededf            eedgdf            eedhg di            eedjdf            eedkd            eedld           er G dm dned          ZdoZ eedd            eedpd            eedqdD            eedrdD            eedsdtg            eedud            eedvd           er G dw dxed          Z dyZ! ee!dd            ee!dzdB            ee!d{dB            ee!d|d            ee!d}d           er G d~ ded          Z"dZ# ee#dd            ee#ddB           er G d ded          Z$dZ% ee%dd           er G d ded          Z&dZ' ee'dd            ee'dg            er G d ded          Z(dZ) ee)dd            ee)dd            ee)dd            ee)dd            ee)dd           er G d ded          Z*dZ+ ee+dd            ee+dd            ee+dd           er G d ded          Z,dZ- ee-dd           er G d ded          Z.dS dS )    )annotations)defaultdict)TYPE_CHECKING	TypedDict)Tensor)_DTypeLiteralc                    t           |          S N_g_default_config)categorys    j/var/www/html/banglarbhumi/venv/lib/python3.11/site-packages/paddle/distributed/auto_parallel/constants.pyget_category_default_configr      s    X&&    c                    |t           | <   d S r
   r   )r   default_values     r   set_category_default_configr       s    "/hr   c                (    t           |          |         S r
   r   )r   fields     r   get_field_default_configr   $   s    X&u--r   c                &    |t           |          |<   d S r
   r   )r   r   r   s      r   set_field_default_configr   (   s    )6h&&&r   	not_foundbase	auto_modesemigradient_scaleT"gradient_scale_using_allreduce_avgF	use_cachereturn_numpy	all_ranks
split_dataseedNreinitc                  j    e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   d
ed<   ded<   dS )_BaseConfigstrr   boolr   r   r   r    r!   r"   z
int | Noner#   r$   N__name__
__module____qualname____annotations__ r   r   r&   r&   >   sp         0000r   r&   )total	recomputeenablecheckpointsno_recompute_segmentssrrefined_ops_patternsenable_tuningc                  8    e Zd ZU ded<   ded<   ded<   ded<   dS )_RefinedOpsPatterns	list[str]main_opsintnumpre_opssuf_opsNr)   r.   r   r   r8   r8   W   s?         r   r8   c                  L    e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   ded<   dS )_RecomputeConfigr(   r1   zlist[Tensor]r2   z	list[int]r3   r;   r4   zlist[_RefinedOpsPatterns]r5   r6   Nr)   r.   r   r   r@   r@   ]   sT         !!!!((((7777r   r@   ampdtypefloat16levelo1init_loss_scalingg      @incr_every_n_stepsi  decr_every_n_nan_or_inf   
incr_ratiog       @
decr_ratiog?use_dynamic_loss_scalingcustom_white_listcustom_black_listcustom_black_varnamesuse_fp16_guarduse_bf16_guarduse_master_graduse_promotec                      e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   d	ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   dS )
_AMPConfigr(   r1   r   rB   r'   rD   floatrF   r;   rG   rH   rJ   rK   rL   r9   rM   rN   rO   rP   rQ   rR   rS   Nr)   r.   r   r   rU   rU   }   s         


    $$$$&&&&$$$$$$$$((((r   rU   shardingstage   degree   enable_overlapparam_comm_stream_numgrad_comm_stream_numparam_bucket_size_numelgrad_bucket_size_numelenable_hierarchical_commpartition_algorgreedy_eventuning_rangerelease_gradientscomm_buffer_size_MB   enable_tensor_fusionsave_unbalanced_paramc                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   dS )_ShardingConfigr(   r1   r;   rX   rZ   r\   r]   r^   r_   r`   ra   r'   rb   r6   zlist[int] | tuple[int, int]rd   Nr)   r.   r   r   rk   rk      s         


""""!!!!$$$$####&&&&111111r   rk   gradient_mergek_stepsavgc                  .    e Zd ZU ded<   ded<   ded<   dS )_GradientMergeConfigr(   r1   r;   rm   rn   Nr)   r.   r   r   rp   rp      s+         					r   rp   pipelineschedule_mode1F1B	pp_degree
vpp_degreevpp_seg_method micro_batch_sizeaccumulate_stepsgeneration_batch_sizeenable_send_recv_overlapjob_schedule_profiler_startjob_schedule_profiler_stopprogram_runtimes)=   H   G   "      memory_limit_timessplit_backward auto_parallel_sync_shared_paramsc                      e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ded<   ded<   ded<   ded<   ded<   ded<   dS )_PipelineConfigr(   r1   r'   rr   r;   rt   ru   rv   rx   ry   rz   r{   r|   r~   r   r   Nr)   r.   r   r   r   r      s         """"&&&&((((''''......r   r   qatchannel_wise_abs_maxweight_bitsactivation_bitsnot_quant_pattern
skip_quantalgoonnx_formatc                  V    e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   ded<   dS )
_QATConfigr(   r1   r   r;   r   r   r9   r   z
str | Noner   r   Nr)   r.   r   r   r   r      sc         """"$$$$r   r   tuningprofile_start_stepprofile_end_steprun_after_tuningdebugc                  B    e Zd ZU ded<   ded<   ded<   ded<   ded<   dS )	_TuningConfigr(   r1   r;   r   r   r   r   Nr)   r.   r   r   r   r     sF         r   r   dataset
num_shardsc                  $    e Zd ZU ded<   ded<   dS )_DatasetConfigr(   r1   r;   r   Nr)   r.   r   r   r   r   "  s"         r   r   fused_linear_promotionc                      e Zd ZU ded<   dS )_FusedLinearPromotionConfigr(   r1   Nr)   r.   r   r   r   r   /           r   r   fused_passesfused_passes_listc                  $    e Zd ZU ded<   ded<   dS )_FusedPassesConfigr(   r1   r9   r   Nr)   r.   r   r   r   r   <  s'         $$$$$$r   r   dp_optimizationfuse_all_reduce_opsfuse_grad_size_in_MB    overlap_comm_caclgradient_sync_after_accumulatec                  B    e Zd ZU ded<   ded<   ded<   ded<   ded<   dS )	_DPOptimizationConfigr(   r1   r   r;   r   r   r   Nr)   r.   r   r   r   r   O  sK         !!!!!!!!,,,,,,r   r   mp_optimization!allreduce_matmul_grad_overlappingreplace_with_c_embedding#replace_with_parallel_cross_entropyc                      e Zd ZU ded<   dS )_MPOptimizationConfigr(   r   Nr)   r.   r   r   r   r   e  s         //////r   r   sp_optimizationc                      e Zd ZU ded<   dS )_SPOptimizationConfigr(   r1   Nr)   r.   r   r   r   r   q  r   r   r   )/
__future__r   collectionsr   typingr   r   paddler   paddle._typing.dtype_liker   dictr   r   r   r   r   	NOT_FOUNDBASEr&   	RECOMPUTEr8   r@   AMPrU   SHARDINGrk   GRADIENT_MERGErp   PIPELINEr   QATr   TUNINGr   DATASETr   FUSEDLINEARPROMOTIONr   FUSED_PASSESr   DP_OPTIMIZATIONr   MP_OPTIMIZATIONr   SP_OPTIMIZATIONr   r.   r   r   <module>r      sZ   # " " " " " # # # # # # + + + + + + + + 8777777  K%% ' ' '0 0 0. . .7 7 7 	
   {F 3 3 3  / 6 6 6  CU K K K  {D 1 1 1  ~t 4 4 4  {E 2 2 2  |T 2 2 2  vt , , ,  x / / / 	 	 	 	 	iu 	 	 	 	 	  He 4 4 4  M2 6 6 6  $;R @ @ @  D! , , ,  $:B ? ? ?  OU ; ; ;     iu        9E       h . . .  gy 1 1 1  gt , , ,  17 ; ; ;  2D 9 9 9  7 ; ; ;  lC 0 0 0  lC 0 0 0  8$ ? ? ?  12 6 6 6  12 6 6 6  5r : : :  . 6 6 6  . 6 6 6  / 7 7 7  mT 2 2 2     Ye    ,   8U 3 3 3  7A . . .  8Q / / /  #3U ; ; ;  #:A > > >  #91 = = =  #<a @ @ @  #;Q ? ? ?  #=u E E E  #4m D D D  ?E : : :  >2 6 6 6  #6 > > >  #8# > > >  #95 A A A  #:D A A A  22 2 2 2 2)5 2 2 2 2$ "  5 9 9 9  A 6 6 6   5 5 5     y       8U 3 3 3  ?F ; ; ;  ; 2 2 2  < 3 3 3  #3R 8 8 8  #5q 9 9 9  #5q 9 9 9  #:A > > >  #=u E E E  #@" E E E  #? D D D  #57J7J7J K K K  #7 < < <  #3U ; ; ;  #Eu M M M // / / / /)5 / / / /&   h . . .  4d ; ; ;  mQ / / /  / 3 3 3  1L> B B B  fd + + +  mT 2 2 2 	    Ye     
  5 1 1 1  !5q 9 9 9  !3Q 7 7 7  !3T : : :  % 0 0 0     	       (E 2 2 2  , 2 2 2     %     0   -x ? ? ?     iu       x 7 7 7  ':B ? ? ? %% % % % %Ye % % % % $  (E : : :  *? F F F  *@" E E E  *=t D D D  5u    -- - - - -	 - - - - $  8%    *De L L L  :E    00 0 0 0 0	 0 0 0 0 $  (D 9 9 9     	       r   