L iEtddlmZddlZddlmZddlmZddlmcm Z ddl m Z ddl m Z mZmZddlmZddlmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#dd l$m%Z%erdd l&m'Z'd d gZ(d dgZ)gdZ*dgZ+ ddZ,ddZ-ddZ.ddZ/ d dZ0ddZ1 d!dZ2 d"dZ3d#dZ4d$dZ5ed%dZ6ed%dZ7y)&) annotationsN) defaultdict) TYPE_CHECKING) translate)BindingDispatcherSignatureExpr)with_native_function) AnnotationArgument BackendIndexBackendMetadataBaseOperatorNameBaseTyBaseTypeDEFAULT_KERNEL_NAMESPACEDeviceCheckType DispatchKeyFunctionSchemaNativeFunctionNativeFunctionsGroup OperatorNameReturn SchemaKindVariant) concatMap)Sequencez'adaptive_avg_pool3d_backward.grad_inputz _slow_conv2d_backward.grad_input_cummax_helper_cummin_helper)$ _assert_asyncz_assert_async.msg_assert_tensor_metadata_cslt_sparse_mm_search_assert_scalar_dimI_dimV_has_same_storage_numel_linalg_check_errors_local_scalar_dense%_nested_tensor_from_mask_left_aligned_nnz_use_cudnn_ctc_lossz_use_cudnn_ctc_loss.Tensor#_validate_compressed_sparse_indicesallclose dense_dimequal is_coalesced is_pinned is_same_size is_set_toq_per_channel_axisq_scale q_zero_pointqscheme record_stream sparse_dimsym_constrain_rangesym_constrain_range_for_size_nested_tensor_storage_offsets'_chunk_grad_outputs_efficient_attention_fused_sdp_choice_print _sink_tokens_nested_get_ragged_idx polygamma_ctt}|D]Z}||jj}|jj |vsJ|||jj <\|SN)rdictfunc signaturekind)native_functionspre_grouped_native_functionsfds i/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torchgen/native_function_generation.pypre_group_native_functionsrNnsm D! ()9)9); <vv{{}A%%%!&&++- ('c|sdS|dS)Nout_out) overload_names rM&get_expected_out_variant_overload_namerU|s%5Am_D+AArOc :|jtjk(sJ|jjJt |j jjt|j j|jjjtd|jjjjd|jjjj g|j"S)NrQnametypedefault annotationrX argumentsreturns)rHrinplacer]self_argrrXremove_inplace with_overloadrUrTremove_self_annotation with_out_argsr argumentrYr[r^)rFs rMself_to_out_signaturerfs 99;*,, ,, , >> " " .. .  YY % % ' 5 5 24993J3J K ..779GG0099>> #~~66??JJ      rOcL|jtjk(sJt|\}}t |j j t|j j|jjj|t|SNr\) rHr functionalgenerate_out_args_from_schemarrXrbrUrTr]rGrdtuplerF new_returns new_out_argss rMfunctional_to_out_signatureros 99;*// // / =d CK  YY $ $ 24993J3J K ..**,::  k" rOc ftd|jDrJ|jDcgc]}|jjs|!}}t |dkDsJt d|j j}tjDcgc] }||vs| }}td|jD}g}g}t|jD]\} }|jjrtt |jdk(rdnd| |jdtj|| d} |j| |st!d| j| j" } |j| |j|||fScc}wcc}w) Nc3hK|]*}|jduxr|jj,ywrD)r[is_write.0rs rM z0generate_out_args_from_schema..s0?@ D :Q\\%:%::02rcJ|jgS|jjSrD)r[ alias_set)as rMz/generate_out_args_from_schema..s ,"!,,2H2HrOc3hK|]*}|jttjk(,ywrD)rYrrTensorrss rMrvz0generate_out_args_from_schema..s"WQqvv&--)@@WrwrQ!rW)rXrYr[)anyr^rYis_tensor_likelenrr]flat_allstringascii_lowercaseall enumerater r parseappendrr[) rFrutensorlike_retsused_annotationsxvalid_annotationsall_rets_are_tensorsrnrminew_outnew_rets rMrjrjs DHLL #',,JQ!&&2G2G2IqJOJ  ! ## # H %+$:$:XqaGW>WXXW$,,WW#%L!#K$,,'"1 66 "!$,,/14UCs)VV%++/@/C.DA,FG G    (#!GLLW=O=O""7+   q !#"$  $$EKYsF) F) F. F.cL|jtjk(sJt|\}}t |j j jt|j j|jj|t|Srh) rHrmutablerjrrXrarbrUrTr]rdrkrls rMmutable_to_out_signaturers 99;*,, ,, ,!>d CK  YY % % ' 5 5 24993J3J K ....|<k"  rOc ddlm}|tjk(r|jj tjk7sJ|jj djtt|jjjjd|jjjj|jj tjk(|jjj}n|tjk(r|jj tj k(rt#|j}n|jj tjk(rt%|j}nW|jj tjk(rt'|j}nt)dt)d |j tjk(r|jj+n|j|}|jj-r|d z }t.j0|jt3|dt4 ii}d ht7|j8hd zz}t;d&id|d|j<dt>j@hdddddddddgdidddddddddddtBjDd|jFdt7d|jHd dd!dd"dd#dd$|d%|jJ|fS)'Nr)cppT)keep_return_namesF)baser_ dunder_methodfunctional_overload)rXrTz^We only bother generating out= functions from either inplace or mutable or functional variantszDWe currently only generate either functional or out= NativeFunctions_symint)kernel structured cpp_namespace generated> view_copypt2_compliant_tagnondeterministic_seededrF!use_const_ref_for_mutable_tensorsvariantsrstructured_delegatestructured_inherits precomputedautogenufunc_inner_loopmanual_kernel_registrationmanual_cpp_binding python_modulecategory_override device_guard device_checkloccpp_no_default_args is_abstract&has_composite_implicit_autograd_kernel4has_composite_implicit_autograd_nested_tensor_kernel&has_composite_explicit_autograd_kernel5has_composite_explicit_autograd_non_functional_kerneltags namespacerS)& torchgen.apirrrirFrHrG with_namerrrXrrrrTrQr_rfrroAssertionErrorunambiguous_name has_symintrCompositeExplicitAutogradrrsetrrrrfunctionrNoCheckrrr)rKkrrF kernel_namebackend_metadatars rMgenerate_functionrs4!J ! !!vv{{} 5 5555vv$7AA %))..!"#&&++"2"2"@"@() 9K9K(K  ffkk77    jnn  66;;=J.. .(0D VV[[]j00 0+AFF3D VV[[]j33 3.qvv6D p  R   99;*.. ( ""$ XXd^  vvy -- II" 60  =3 NN D   ./.Q.Q &&'    !%  !%     (-  %  #  )00! "# $!$% & ' (49) *BG+ ,48- .CH/ 45 6kk7 : = rOclt|}|jD]}tj|v}tj|v}tj |v}tj |v}td|jD}|s|s|s|sutd|jD} td|jD} td|jD} | s| s| r|s|rt|jdk(rjt|tj jjtvr2tdt|tj jf|r8t|tjjjtvr|r|tj n<|r|tjn'|r|tj n|tj} | jj!tjk(xs&td| jj"D} td| j$D}| xr| xr|}|sn| slt| jjt&vrGt| jjt(vr"td t| jd |rWt+| tj \}}||tj <t-j.|||j1||r9|s|s?t+| tj\}}||tj<t-j.|||j1|y) Nc38K|]}d|jvyw)coreN)r)rtvariants rMrvz1add_generated_native_functions..sGf ,Gsc34K|]}|jywrD)rrtrKs rMrvz1add_generated_native_functions..sFaQ11Fc3K|]>}|jxr,t|jjjdk7@yw)set_N) is_view_opstrrFrXrs rMrvz1add_generated_native_functions..s9EF @QVV[[%5%5!6&!@@sAAc34K|]}|jywrD)rrs rMrvz1add_generated_native_functions..s)=>88)rr~zEFound an out= operator that we could not find any other variants of: c3PK|]}|jj ywrD)rYrrss rMrvz1add_generated_native_functions..s$M,-%%'Ms$&c36K|]}dt|vyw)rQN)r)rtop_names rMrvz1add_generated_native_functions..sQgES\1QszBFound an operator that we could not generate an out= variant for: z. This type of operators don't have tensor-like return, making it difficult to generate a proper out= variant. If out= variant is not needed, please add the function name into FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANT list.)rNvaluesrrir_rrQrrrrrFrX&OUT_OPS_THAT_DONT_GET_GROUPED_PROPERLYr*INPLACE_OPS_THAT_DONT_GET_GROUPED_PROPERLYrHr^r*MUTABLE_OPS_THAT_CANNOT_GET_AN_OUT_VARIANT-FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANTrr grow_indexr)rsindicesrJrLhas_functional has_inplace has_mutablehas_outis_core are_manual has_view_opsare_composite_implicitbase_fn base_fn_valid needs_outgets_out_variantfnmetadatas rMadd_generated_native_functionsrsH$>b#A ) 0 0 2q#..!3 ((A-  ((A- ..A%GAHHJGG +NF188:FFJJK((*L&))BC((*)& "\-CG3qxxz?a/*..)..334AB)_`cdefpftftdudzdz`{_|} *,,-22778=>*$$%z))*z~~&z,,- "$LL--/:3E3EEM181E1EMJMQQQI#*{J}J = ))*EFGLL--.HI)^_bcjcoco_p^qrru 0*..I H$&*..!'': " "w2B0*:O:OP H+-*''('': " cqrOct|t|k(sJt|dk(ryt|dk(r d|ddSdtj|jddj |dS) Nrr~zreturn ;(, );)r dispatcher returns_typecpp_typejoin)retsnamess rM return_strrsy t9E "" " 4yA~ Taq !$$006??AB!DIIeDTCUUWXXrOc|j}g}t|jdkD}t|D]$\}}| |j |r d|d|dn|&|S)Nr~ std::get<>())aliased_return_namesrr^rr)rFout_var aliased_retsnon_aliased_namesis_out_var_a_tuplerrus rMgather_nonaliased_inner_retsrss,,.LT\\*Q.,'1 9  $ $/A)A3b +w  rOc d|jjvry|j%d|jjvr |j}nY|j%d|jjvr |j}n(t t |jj t|jj }t|j }g}g}g}ttj|jj tj|j D]\}}|j|jjr|jd|jd|jd|jt|jdtj ||j|j|jd|jtj"|dj%t'||j)D cgc]} | j*c} } d } t-|j j.d kDrd| d nd } t1|j | } t3|jj j.| |z}d j%|}d |j5|j|j6j j9rdnd zd|d| d|j jj;d| d|d Scc} w)Nrzauto z_clone = clone_arg(r_clone)binds)exprrYroutputrz = r rrXz {  z at::_ops::::call();  } )rirr_rrrrFrzipr jit_argumentsr[rrrrXr argument_typererrr]rrr^rrdefnrQrr)gtarget_fsig target_sigcontextclone_mutable_inputscloned_return_namesa_curra_tgteexprsout_name maybe_assigninner_return_namesret_strclone_mutable_inputs_strs rMgen_composite_functional_kernelr"s!,,+++yyAIINN!B99  ;aiinn#D99S!2!2344 all// 0C$X]]3J$&G  !2!23  /8     'E,<,<,E,E ' ' }$7 }BG  NN"KK=/#11& L  & &&++f'= > NN:..v6 7#8$ IIy*:N:N:P'QR!qvvR SEH,/ 0E0E,F,JU8*C(PRL5hmmXN !!#58K#KG $yy)=>sxxz!%%***?*?*AYrJKLM. 8==-->>@AP )   Ss6Mcd|jjvryt|jj}t|jj}dj t |j|jDcgc]}|jc}}g}d}t|jjjjD]n\}}t|jjjdk(r|nd|d|d} |jd|jd| d |jd| d pg} t|jjjD]a\}} | | j| t|jjjdk(r|nd|d|d} | j| cd j |} d |j|jjjj!|jjj#rd nd zd|d|jjjj!d|d| dt%|jjj| d Scc}w)Nrr tmp_outputr~rrrz resize_out_helper(z); copy_arg(rrrrr z { auto z = at::_ops::r r r r )rQrrrFrirrr]rrrr^rrXrrrrr) rrrrr copy_outsrrout_argfunctional_return_namerret_name copy_outs_strs rMgen_composite_out_kernelr*Ts!%%**$ aeejj )C$Q\\%6%67J II"3==?J4H4H4JKLAL EIH 4 4 8 89  71<<$$,,-2 QCr(1-  \\N"%;$<= LL>232 9   D!!@!@!BC 0 8   KK !q||((001Q6 2hZq1 # KK. / 0IIi(Mquuzz//1!%%**BWBWBYY_abcdezq||0055FFHIQVPWX/ aeejj  $'()  G Ms K)rIzSequence[NativeFunction]returnz6dict[FunctionSchema, dict[SchemaKind, NativeFunction]])rT str | Noner+r)rFrr+r)rFrr+z#tuple[list[Return], list[Argument]])rKrrrr+zMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]])rzlist[NativeFunction]rz6dict[DispatchKey, dict[OperatorName, BackendMetadata]]r+None)rztuple[Return, ...]r list[str]r+r)rFrrrr+r.)rrr+r,)8 __future__rr collectionsrtypingrtorchgen.api.dispatcherapirtorchgen.api.translatertorchgen.api.typesrrr torchgen.contextr torchgen.modelr r r rrrrrrrrrrrrrrtorchgen.utilsrcollections.abcrrrrrrNrUrfrorjrrrrrr"r*rSrOrMr:s=" # ,,,AA1&%(.' *& .*%1-Z .* (. (; (BB*+% +%(+%fFcc$cRc\yy Cy yxY 99|66rO