
    Αi                     J   S SK JrJr  S SKJr  SSKJrJrJ	r	  \	" S5       " S S\5      5       r
\	" S5       " S	 S
\5      5       r\	" S5       " S S\5      5       r\	" S5       " S S\5      5       r\	" S5       " S S\5      5       r\	" S5       " S S\5      5       r\	" S5       " S S\5      5       r\	" S5       " S S\5      5       r\	" S5       " S S\5      5       r\	" S 5       " S! S"\5      5       r\	" S#5       " S$ S%\5      5       rS& r\	" S'5       " S( S)\5      5       rg*)+    )_apply_passcore)Executor   )CPPPassWrapperPassTyperegister_passfuse_elewise_add_actc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseElementwiseAddActPass   c                 "   > [         TU ]  5         g Nsuper__init__self	__class__s    b/var/www/html/banglarbhumi/venv/lib/python3.13/site-packages/paddle/distributed/passes/cpp_pass.pyr   "FuseElementwiseAddActPass.__init__           c                     g)Nfuse_elewise_add_act_pass r   s    r   cpp_name"FuseElementwiseAddActPass.cpp_name   s    *r   c                 "    [         R                  $ r   r   
FUSION_OPTr   s    r   _typeFuseElementwiseAddActPass._type!       """r   r   
__name__
__module____qualname____firstlineno__r   propertyr   r#   __static_attributes____classcell__r   s   @r   r   r      s&     + +# #r   r   fuse_bn_actc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseBatchNormActPass%   c                 "   > [         TU ]  5         g r   r   r   s    r   r   FuseBatchNormActPass.__init__'   r   r   c                     g)Nfuse_bn_act_passr   r   s    r   r   FuseBatchNormActPass.cpp_name*   s    !r   c                 "    [         R                  $ r   r!   r   s    r   r#   FuseBatchNormActPass._type.   r%   r   r   r&   r.   s   @r   r1   r1   %   s&     " "# #r   r1   fuse_bn_add_actc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseBatchNormAddActPass2   c                 "   > [         TU ]  5         g r   r   r   s    r   r    FuseBatchNormAddActPass.__init__4   r   r   c                     g)Nfuse_bn_add_act_passr   r   s    r   r    FuseBatchNormAddActPass.cpp_name7       %r   c                 "    [         R                  $ r   r!   r   s    r   r#   FuseBatchNormAddActPass._type;   r%   r   r   r&   r.   s   @r   r<   r<   2   &     & &# #r   r<   fuse_relu_depthwise_convc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseReluDepthwiseConvPass?   c                 "   > [         TU ]  5         g r   r   r   s    r   r   "FuseReluDepthwiseConvPass.__init__A   r   r   c                     g)Nfuse_relu_depthwise_conv_passr   r   s    r   r   "FuseReluDepthwiseConvPass.cpp_nameD   s    .r   c                 "    [         R                  $ r   r!   r   s    r   r#   FuseReluDepthwiseConvPass._typeH   r%   r   r   r&   r.   s   @r   rI   rI   ?   s&     / /# #r   rI   fused_attentionc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FusedAttentionPassL   c                 "   > [         TU ]  5         g r   r   r   s    r   r   FusedAttentionPass.__init__N   r   r   c                     g)Nfused_attention_passr   r   s    r   r   FusedAttentionPass.cpp_nameQ   rC   r   c                 "    [         R                  $ r   r!   r   s    r   r#   FusedAttentionPass._typeU   r%   r   r   r&   r.   s   @r   rT   rT   L   rF   r   rT   fused_feedforwardc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FusedFeedforwardPassY   c                 "   > [         TU ]  5         g r   r   r   s    r   r   FusedFeedforwardPass.__init__[   r   r   c                     g)Nfused_feedforward_passr   r   s    r   r   FusedFeedforwardPass.cpp_name^   s    'r   c                 "    [         R                  $ r   r!   r   s    r   r#   FusedFeedforwardPass._typeb   r%   r   r   r&   r.   s   @r   r_   r_   Y   s&     ( (# #r   r_   fuse_gemm_epiloguec                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseGemmEpiloguePassf   c                 "   > [         TU ]  5         g r   r   r   s    r   r   FuseGemmEpiloguePass.__init__h   r   r   c                     g)Nfuse_gemm_epilogue_passr   r   s    r   r   FuseGemmEpiloguePass.cpp_namek   s    (r   c                 "    [         R                  $ r   r!   r   s    r   r#   FuseGemmEpiloguePass._typeo   r%   r   r   r&   r.   s   @r   rj   rj   f   s&     ) )# #r   rj   
fuse_adamwc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseAdamWPasss   c                 "   > [         TU ]  5         g r   r   r   s    r   r   FuseAdamWPass.__init__u   r   r   c                     g)Nfuse_adamw_op_passr   r   s    r   r   FuseAdamWPass.cpp_namex   s    #r   c                 "    [         R                  $ r   r!   r   s    r   r#   FuseAdamWPass._type|   r%   r   r   r&   r.   s   @r   ru   ru   s   s&     $ $# #r   ru   fuse_dot_product_attentionc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseDotProductAttentionPass   c                 "   > [         TU ]  5         g r   r   r   s    r   r   $FuseDotProductAttentionPass.__init__   r   r   c                     g)Nfuse_dot_product_attention_passr   r   s    r   r   $FuseDotProductAttentionPass.cpp_name   s    0r   c                 "    [         R                  $ r   r!   r   s    r   r#   !FuseDotProductAttentionPass._type   r%   r   r   r&   r.   s   @r   r   r      s&     1 1# #r   r   fuse_optimizerc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseOptimizerPass   c                 "   > [         TU ]  5         g r   r   r   s    r   r   FuseOptimizerPass.__init__   r   r   c                 
    / SQ$ )N)fuse_adam_op_passfuse_sgd_op_passfuse_momentum_op_passr   r   s    r   r   FuseOptimizerPass.cpp_name   s    
 	
r   c                 "    [         R                  $ r   r!   r   s    r   r#   FuseOptimizerPass._type   r%   r   r   r&   r.   s   @r   r   r      s&     
 
# #r   r   fuse_resunitc                   >   ^  \ rS rSrU 4S jr\S 5       rS rSrU =r	$ )FuseResUnitPass   c                 "   > [         TU ]  5         g r   r   r   s    r   r   FuseResUnitPass.__init__   r   r   c                     g)Nfuse_resunit_passr   r   s    r   r   FuseResUnitPass.cpp_name   s    "r   c                 "    [         R                  $ r   r!   r   s    r   r#   FuseResUnitPass._type   r%   r   r   r&   r.   s   @r   r   r      s&     # ## #r   r   c                 8   [         R                  " 5       U    nUR                  S5       Vs/ s H)  o3R                  5       (       d  M  UR                  5       PM+     nnUR	                  U5        SR                  U5      [         R                  " 5       U '   g s  snf )N;)r   globalssplitstripextendjoin)	flag_name	extra_opsvaluesvs       r   _set_cinn_op_flagr      sj    \\^I&F!'c!2@!2Aggiiaggi!2F@
MM) # 0DLLN9 As   BB
build_cinnc                   D   ^  \ rS rSrU 4S jr\S 5       rS rS rSr	U =r
$ )BuildCINNPass   c                 j   > [         TU ]  5         U R                  S/ 5        U R                  S/ 5        g )N	allow_opsdeny_ops)r   r   set_attrr   s    r   r   BuildCINNPass.__init__   s*    k2&j"%r   c                     g)Nbuild_cinn_passr   r   s    r   r   BuildCINNPass.cpp_name   s     r   c                 "    [         R                  $ r   )r   CALC_OPTr   s    r   r#   BuildCINNPass._type   s       r   c                    S[         R                  " 5       ;   d   S5       e[         R                  " 5       S   n[         R                  " 5       S   n [        SU R                  S5      5        [        SU R                  S5      5        U R                  S/ 5      nU R                  S/ 5      nU R                  SS	5      nU(       a0  [        R
                  " XU/ 5      n	[        R                  " XS
5      n	O[        R                  " XS
5      n	[        U	UU R                  0 U R                  5        [        R                  " U	5      n	[         R                  " U	R                  5      n	UR                  U	5        U[         R                  " 5       S'   U[         R                  " 5       S'   g ! U[         R                  " 5       S'   U[         R                  " 5       S'   f = f)NFLAGS_allow_cinn_opsz.PaddlePaddle is not compiled with CINN supportFLAGS_deny_cinn_opsr   r   feed
fetch_listprune_programTfetch)r   r   r   get_attrr   _prune_program_add_fetch_ops_apply_cpp_passr   cpp_attr_types_remove_fetch_opsProgramDescdesc_rebuild_from_desc)
r   main_programstartup_programcontextold_allow_opsold_deny_opsr   r   r   tmp_main_programs
             r   _apply_single_impl BuildCINNPass._apply_single_impl   s   %7 	
<	
7 '=>||~&;<(	A&k(B 3T]]:5NO==,D|R8J MM/4@M#+#:#: 
B$  $,#:#:$'$ 
 $,#:#: g$   ##  (99:JK#//0@0E0EF++,<= 6CDLLN124@DLLN01 6CDLLN124@DLLN01s   D$F' '2Gr   )r'   r(   r)   r*   r   r+   r   r#   r   r,   r-   r.   s   @r   r   r      s-    &
 ! !!.A .Ar   r   N)paddle.frameworkr   r   r   paddle.staticr   	pass_baser   r   r	   r   r1   r<   rI   rT   r_   rj   ru   r   r   r   r   r   r   r   r   <module>r      s   # > > %&	# 	# '	# }	#> 	# 	#  !	#n 	# "	# )*	# 	# +	#  !	# 	# "	# "#	#> 	# $	# #$	#> 	# %	# |	#N 	# 	# +,	#. 	# -	#  # # !#: ~	#n 	# 	#1 |;AN ;A ;Ar   