
    Αi                     2    S  r S rS rS rS rSS jrS rg)	c                     gN    )mpppshardinghlVs         h/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/auto_tuner/cost_model.py
all_paramsr              c                     gr   r   )r   r   sbr	   r
   s         r   full_recompute_actsr      r   r   c                     gr   r   )r   r   r   r   r	   r
   as          r   all_actsr      r   r   c                     U S-  $ )Ni   @r   )ps    r   to_gbr      s    ;r   c                    US   nUS   n	US   n
US   nUS   nUS   nSn[        Xx-  U-  5      n[        X-  5      U-  nXn-  S:X  d   eXn-  nXNU	-  -  S:X  d   U S	X-   35       eSnUS:  a  X+U-  -  S:X  d   eSUS-
  X-  -  -   n[        [        XXX%5      5      nSnX+-  S:X  d   eU(       a  [        [        XUXU5      5      U-  nO[        [	        XXjX2U5      5      U-  nUS:  d   eUU-   nU$ )
z5Estimate the memory of model unset parallel strategy.sharding_degree	mp_degreemicro_batch_size	pp_degree
vpp_degreeuse_recomputer       z vs )intr   r   r   r   )total_cardsparallel_cfgr
   r	   r   r   r   gbsr   r   r   r   vppr    seplbss_sep	vpp_ratioparamsactspeak_mems                        r   get_memr.   #   sM   -.H	k	"B'(A	k	"B
|
$C 1M
C
cnq 
!C
ch-"
C7a<<HEb>Q41#T#( 44I
QwH~"""aBH--	:bh189FD6Q;;(a@AIMXbaA!45	A!8O8}HOr   c                     [        5       nSnU S-  S-   nX4:  a8  X-  S:X  a$  UR                  U5        UR                  X-  5        US-  nX4:  a  M8  [        U5      n[        X!S9$ )z"Get the divisor of a given number.r      r!   )reverse)setaddlistsorted)numr1   resultsimids        r   divisorr:   H   sh    eG	A
(Q,C
'7a<KKNKK!	Q	 '
 7mG'++r   c                 r   US   S   US   S   US   S   US   S   US   S   US   S   US   S	   UR                  S
S5      4u  p#pEpgp/ n
U  H  nUS   nUS   nUS   nUS   nUS   nUS   nUS   nX-  U-  U-  U:w  a  M6  X-  S:w  a  M@  X-  U-  S:w  a  MM  X-  U-  U-  S:w  a  M]  X?-  S:w  a  Mg  X?-  U-  S:w  a  Mt  US:w  a  US::  a  M  X\-  S:w  d  Xl-  S:w  d  XL-  S:w  a  M  U
R                  U5        M     / nU
 H'  n[        X+X4XVXx5      nUUS'   UR                  U5        M)     U(       d   eU$ )z Get not OOM parallel strategies.search_algoestimated_num_gpus	model_cfg
num_layershidden_sizenum_attention_heads
vocab_size
seq_lengthglobal_batch_sizeper_card_memoryP   r   r   r   r   r   	dp_degreer    r!   r   r0   memory_cost)getappendr.   )cfgs	tuner_cfgr#   r
   r	   r   r   r   r%   rE   pruned_cfgscfgr   r   mbsr   r&   dpr    
valid_cfgsmems                        r   get_not_oom_cfgsrS   V   s    	- !56+|,+}-+45+|,+|,+23',	84KA! K()$%,O,=2"k1>Q?R1$?b 3&!+6Q;7S=A!8a6Q;!&A+135 6 JkaA; !M#  :r   N)F)r   r   r   r   r.   r:   rS   r   r   r   <module>rT      s)    


"J,9r   