
    ϑi3!                    f   S SK Jr  S SKrS SKrS SKJr  S SKJr  S SKJ	r	  S SK
Jr  S SKrS SKJr  S SKJr  S	S
KJ
r  S/rS r      S!S jr\	 " S S5      5       r " S S5      r\	 " S S5      5       r\S 5       rS rS rS rS"S jr  S"S jrS#S jrS#S jr S#S jr!S$S jr"S#S jr#S r$S  r%g)%    )annotationsN)OrderedDict)contextmanager)	dataclass)Callable)apy_to_axpr_json)	InputSpec   )typingcompilec                    [        U 5      n0 n[        U5       H&  n[        S U 5       5      n[        X/UQ70 UD6XF'   M(     [	        [        U5      5      $ )Nc              3  8   #    U  H  oR                   v   M     g 7fNdtype).0
input_specs     [/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/incubate/cc/compiler.py	<genexpr>compile.<locals>.<genexpr><   s     F+J''+   )_get_input_annotations_get_input_spec_liststuple_compileOverloadedFuncFuncOverloadCtx)funcargskwargsr   dtypes2funcinput_specsdtypess          r   r   r   8   sY    (.KK,[9F+FF&tJ4J6J : /+677    c           	        Uc   e[         R                  R                  [        R                  5       S3n[
        R                  " U5      " U5        U(       a   S5       e[         R                  " USS9  [        R                  R                  5       n	US;   d   e[        X45         [        R                  R                  U UU	SUS9n
U(       d  U
R                  5         OU
R                  5         U
R                  " USU
R!                  5       06u  pU
R!                  5       Ul        U(       a  UR$                  R&                  nOUR(                  R&                  nUsS S S 5        $ ! , (       d  f       g = f)Nz/apyzonly support inference nowT)exist_ok)CINNPCC)r   build_strategy
full_graphbackendis_train)ospathdirnamepaddle__file__r   PyToAxprmakedirsstaticBuildStrategy_ap_envsjit	to_staticevaltrainget_concrete_program_is_train_modetrainingtrain_programforward_programinfer_program)r   r"   r:   ap_pathap_workspace_dirbackend_devicetarget_frameworkcompile_engineap_root_pathr)   	static_fnconcrete_programpartial_program_layer_s                 r   r   r   A   s9    ggoofoo67t<Ll+L92229KK 40]]002N_,,,	'	,JJ((")" ) 
	 NNOO**'0'?'?'A 	0
 *3)A)A)C&%33CCA%33CCA$/ 
-	,	,s   &B6E&&
E4c                       \ rS rSr% S\S'   Srg)r   l   z"dict[list[paddle.dtype], Callable]r!    N__name__
__module____qualname____firstlineno____annotations____static_attributes__rM   r$   r   r   r   l   s    33r$   r   c                  *    \ rS rSrSS jrS rS rSrg)r   q   c                    Xl         g r   func_overload_ctx)selfrY   s     r   __init__OverloadedFunc.__init__r   s    !2r$   c                    [        S U 5       5      nU R                  R                  R                  US 5      nUc   U R	                  U5      5       eU" / UQS9$ )Nc              3  8   #    U  H  oR                   v   M     g 7fr   r   )r   tensors     r   r   *OverloadedFunc.__call__.<locals>.<genexpr>v   s     7$||$r   )inputs)r   rY   r!   getmismatched_debug_info)rZ   r   r#   r   s       r   __call__OverloadedFunc.__call__u   s[    7$77%%1155fdCC!;!;F!CC7T7##r$   c                    SR                  S [        U R                  R                  R	                  5       5       5       5      nSU SU 3$ )Nz; c              3  F   #    U  H  u  pUS    nSUS-    SU 3v   M     g7f)r   [r
   z] NrM   )r   idxpairr#   s       r   r   7OverloadedFunc.mismatched_debug_info.<locals>.<genexpr>|   s9      %
	  7	 ay6(#s   !zinput signature z# mismatched, valid signatures are: )join	enumeraterY   r!   items)rZ   r#   valid_signaturess      r   rc   $OverloadedFunc.mismatched_debug_info{   sS    99 %
&&&2288:%
 
 "&)LM]L^__r$   rX   N)rY   r   )rO   rP   rQ   rR   r[   rd   rc   rT   rM   r$   r   r   r   q   s    3$`r$   r   c                  *    \ rS rSr% S\S'   S\S'   Srg)InputSpecMakeCtx   zdict[str, int]name2dtype_num_candidatesname2dtype_candidate_idxrM   NrN   rM   r$   r   rr   rr      s    --,,r$   rr   c              #    #    [         R                  R                  [        R                  5       S3n[         R                  R                  [        R                  5       S3n[         R
                  R                  S5      n[         R
                  R                  S5      nU SU  SU SUb  UOS 3[         R
                  S'   U[         R
                  S'   [        R                  " S/5      n[        U5      nSUS'   [        R                  " U5        S v   Ub  U[         R
                  S'   O[         R
                  S	 Ub  U[         R
                  S'   O[         R
                  S	 [        R                  " U5        g 7f)	Nz/apy/sysz/apy/matmul_passAP_PATHAP_WORKSPACE_DIR: FLAGS_enable_apT)
r-   r.   r/   r0   r1   environrb   	get_flagsdict	set_flags)rA   rB   ap_sys_pathmatmul_pathold_ap_pathold_ap_workspace_dir	old_flagsflagss           r   r6   r6      s3    WW__V__56h?KWW__V__566FGK**..+K::>>*<=-q	;-q@W]_0`a JJy &6BJJ!"  "3!45IOE#E

U	 +

9JJy!')=

%&JJ)*
Ys   E=E?c                    [         R                  " U 5      nUR                   VVs/ s H  nUR                  U   nUPM     snn$ s  snnf r   )inspectgetfullargspecr   r   )r   full_arg_specarg_namepct_types       r   r   r      sO    **40M &***H&228<H 	*  s   Ac              #    #    [        U 5      n[        UR                  5      S:  d   eUR                  R                  5        Vs/ s H  o"S   PM	     nnUR                  R                  5        Vs/ s H  o"S   PM	     nn[	        U Vs/ s H  n[        U5      PM     sn5      nU H5  n[        U5       H  u  pU	UR                  X8   '   M     [        X5      v   M7     g s  snf s  snf s  snf 7fNr   r
   )	!_create_empty_input_spec_make_ctxlenrt   rn   _cartesian_productrangerm   ru   _get_input_specs)
r   ctxrj   dtype_var_namesdtype_num_candidatesnum_candidates dtype_candidate_idx_compositionsidx_compositionarg_idxcandidate_idxs
             r   r   r      s     
+K
8Cs,,-11199??AADQA    99??AADQA   (:5IJ5I>~	5IJ($ <&/&@"G (()AB 'A {00 < 	Ks+   AC1C"C11C'?C1
C,AC1c                T    [        [        5       [        5       5      n[        X5        U$ r   )rr   r   _init_empty_input_spec_make_ctx)r   r   s     r   r   r      s    
;=+-
8C#K5Jr$   c                ,    U  H  n[        X!5        M     g r   )3_init_input_spec_make_ctx_name2dtype_num_candidates)r   mut_ctxr   s      r   r   r      s    ;HN  r$   c                   [        U R                  [        R                  5      (       d   S[	        U R                  5       S35       eU R                  R
                  nX!R                  ;   a3  UR                  U   [        U R                  R                  5      :X  d   eg [        U R                  R                  5      UR                  U'   g )Nz)pct_type.dtype should be a DTypeVar, but z were given.)	
isinstancer   pctDTypeVartypenamert   r   
candidates)r   r   r   s      r   r   r      s     hnncll33 
3D4H3IV3 >>D000006#NN%%;
 
 	
 
 36hnn6O6O2P))$/r$   c                D    U  Vs/ s H  n[        X!5      PM     sn$ s  snf r   )_get_input_spec)r   r   r   s      r   r   r      s    ;FG;xOH*;GGGs   c                |    [        U [        R                  5      (       d   e[        [	        X5      [        X5      S9$ )N)shaper   )r   r   Tensorr	   _get_input_spec_shape_get_input_spec_dtype)r   r   s     r   r   r      s6    h

++++#H2#H2 r$   c                X    U R                    Vs/ s H  n[        U5      PM     sn$ s  snf r   )r   _get_input_spec_shape_dim)r   r   dim_vars      r   r   r      s$    >FnnMn7%g.nMMMs   'c                    [        U [        5      (       a  U $ [        U [        R                  5      (       d   e[        U R                  [        5      (       a  U R                  $ g r   )r   intr   DimVarname_or_value)r   s    r   r   r      sM    '3gszz****'''--$$$r$   c                    [        U R                  [        R                  5      (       d   eU R                  R                  nUR
                  U   nU R                  R                  U   $ r   )r   r   r   r   r   ru   r   )r   r   r   r   s       r   r   r      sQ    hnncll3333>>D006M>>$$]33r$   c                >    [        U 5      S:  d   e[        S/U 5      $ )Nr   rM   r   _cartesian_product_impl)
lst_of_lsts    r   r   r      s#    z?Q"B444r$   c                    [        U5      S:X  a  U $ U  VVs/ s H  o!S     H
  n/ UQUP7PM     M     n nn[        XSS  5      $ s  snnf r   r   )collect_lstr   xys       r   r   r     sQ    
:!$/GKqAA7Q777KKG";12?? Hs   A)Frz   z/tmp/paddle/apcudar0   r(   )r   rr   )r   rr   )r   z
pct.DimVar)&
__future__r   r   r-   collectionsr   
contextlibr   dataclassesr   r   r   r0   paddle.incubate.cc.toolsr   paddle.staticr	   rz   r   __all__r   r   r   r   rr   r6   r   r   r   r   r   r   r   r   r   r   r   r   rM   r$   r   <module>r      s    #  	 # % !   5 # +48 %(%V 4 4 4` `* - - -
    21(O
Q'QHN45
@r$   