
    ΑiI                         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J	r	J
r
Jr  \ R                  " S5      r " S S\5      r " S	 S
\5      r " S S\5      r " S S\5      r " S S\5      rg)    N)ABCabstractmethod   _PRUNE_HISTORY_FUNC)gbs_search_allload_configs_from_csv
search_allsearch_by_dp_estimation
auto_tunerc                   0    \ rS rSrS r\S 5       rS rSrg)
SearchAlgo   c                     Xl         / U l        g N)	tuner_cfgpruned_cfgs)selfr   s     d/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/auto_tuner/search.py__init__SearchAlgo.__init__    s    "    c                     g r    )r   history_cfgss     r   search_onceSearchAlgo.search_once$   s    r   c                 B    [          H  nU" XX45      nU(       d  M    g   g)NTFr   )r   r   cur_cfgr   r   funcresults          r   pruneSearchAlgo.prune(   s%    'D)lHFv ( r   )r   r   N)	__name__
__module____qualname____firstlineno__r   r   r   r"   __static_attributes__r   r   r   r   r      s       r   r   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )
GridSearch0   c                    > [         TU ]  U5        SU l        [        U5      U l        U R
                  R                  SS5      nS U l        U(       a  SSKJ	n  U R                  R                  US9  S U l        g )Nr   need_baselineFr   )memory_sortkey)superr   idxr
   	all_tasksr   getbaselineutilsr.   sortprevious_cfg)r   r   r-   r.   	__class__s       r   r   GridSearch.__init__1   sc    ##I.**?EB*NNK0 r   c                    S nSnU(       Ga
  US   R                  SS5      S:  a  U R                  c  U R                  R                  SS5      (       a  SSKJn  US   U l        [        U R                  U R                  [        U R                  5       US9U R                  U R                  S & U R                  R                  S	S5      (       aG  SS
KJ	n  U" U R                  U R                  S  U R                  5      U R                  U R                  S & U(       d  U R                  [        U R                  5      :  av  U R                  U R                     nU =R                  S-  sl        U R                  U R                  X!U R                  5      (       + nU R                  R                  U5        Og U(       d  M  U$ )NFtimer   r-   r   )performance_sortr/   schedule_prior)sort_by_special)r4   r5   r   r6   r>   sortedr3   r2   lenr@   r"   r   append)r   r   new_cfgstopr>   r@   s         r   r   GridSearch.search_once=   sh   B##FB/!3==(T^^-?-?#U. . 8$0$4DM17txx#dnn2EF,2DNN488:. ~~))*:EBB:5D NN488:66txxz2 xx#dnn--..2A::NNG4;K;K    ''0 $ r   )r3   r5   r2   r8   r$   r%   r&   r'   r   r   r(   __classcell__r9   s   @r   r*   r*   0   s    
!   r   r*   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )DpEstimationSearch`   c                    > [         TU ]  U5        SU l        US   S   S/:w  a  [        R	                  S5        S/US   S'   [        U5      U l        [        U R                  5      S:  d   S5       eg )Nr   
candidates	dp_degreer   zUdp_degree should be [1] in dp estimation search mode. Modify it to [1] automatically.z.Unable to perform single dp estimation search.)r1   r   r2   loggerwarningr   r3   rB   r   r   r9   s     r   r   DpEstimationSearch.__init__a   sz    #\";/A36NNg 563Il#K00;4>>"Q& 	
<	
&r   c                    S nSnU(       d}  U R                   [        U R                  5      :  aP  U R                  U R                      nU =R                   S-  sl         U R                  U R                  X!5      (       + nOg U(       d  M}  U$ )NFr   )r2   rB   r3   r"   r   )r   r   rD   rE   s       r   r   DpEstimationSearch.search_oncen   sk    xx#dnn--..2A::dnngLL $ r   r3   r2   rG   rI   s   @r   rK   rK   `   s    

 
r   rK   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )	GBSSearch{   c                 R   > [         TU ]  U5        SU l        [        U5      U l        g )Nr   )r1   r   r2   r   r3   rR   s     r   r   GBSSearch.__init__|   s#    #'	2r   c                 \   S nSnU(       d  U R                   [        U R                  5      :  as  U R                  U R                      nU =R                   S-  sl         UR                  SS 5      nX@R                  S   S'   U R                  U R                  X!5      (       + nOg U(       d  M  U$ )NFr   global_batch_size	model_cfg)r2   rB   r3   r4   r   r"   )r   r   rD   rE   glbs        r   r   GBSSearch.search_once   s    xx#dnn--..2Akk"5t<CF{+,?@::dnngLL $ r   rV   rG   rI   s   @r   rX   rX   {   s    3
 r   rX   c                   .   ^  \ rS rSrU 4S jrS rSrU =r$ )CustomizeSearch   c                    > [         TU ]  U5        SU l        UR                  SS 5      U l        [
        R                  R                  U R                  5      (       d   S5       e[        U R                  5      U l	        g )Nr   configs_csvz6configs_csv file is necessary in CustomizeSearch mode.)
r1   r   r2   r4   re   ospathexistsr	   r3   rR   s     r   r   CustomizeSearch.__init__   sg    #$===ww~~d..// 	
D	
/ /t/?/?@r   c                 b    U R                   U R                     nU =R                  S-  sl        U$ )Nr   rV   )r   r   rD   s      r   r   CustomizeSearch.search_once   s&    ..*Ar   )r3   re   r2   rG   rI   s   @r   rb   rb      s    A r   rb   )loggingrf   abcr   r   r"   r   r6   r   r	   r
   r   	getLoggerrP   r   r*   rK   rX   rb   r   r   r   <module>ro      sl      	 # &  
		<	( "- -` 6
 *j r   