~L i|UddlZddlZddlZddlZddlZddlZddlZddlmZddl m Z ddl m Z m Z mZmZmZmZmZmZddlmZmZmZddlZddlmcmZddlmZddlmZ m!Z!ddl"m#Z#m$Z$dd l%m&Z&erdd l'm(Z(ed e Z)ed d Z*e+edxr e+edZ,ejZdZ.GddZ/de/de!fdZ0iZ1e2e3dfe4d<e!jje!jle!jne!jpe!jre!jte!jvgZ<Gdde/ejzZ>dZ?dZ@dZAdZBGddZCeCaDdAd ZEd!ZFd"ZGd#ZHd$ZId%ZJd&ZKeLaMeLd'e4d(<d)ZNd*ZOd+ZPGd,d'e/ee*e)fZQGd-d.eQe*e)fZRd/ZSd0ejd1eUfd2ZVGd3d4ee*e)fZWdeWe*e)fd5e*jd6e*jd1e)fd7ZZGd8d9ejZ\d:Z]d;Z^Gd<d=ejZ_Gd>d?ejZ`e`Zae`e4d@<y)BN)Iterator)cached_property)AnyCallableClassVarfinalGenericOptional TYPE_CHECKINGUnion) Concatenate ParamSpecTypeVar)_utils_internal)_dispatch_is_included_in_alias DispatchKey)dispatch_functorch TransformType)TorchDispatchMode)BaseFunctionalizeAPI_T)default_P.getdlopenflagssetdlopenflagsc#Ktsdytj}tj|tj z dtj|y#tj|wxYww)z Context manager to set the RTLD_GLOBAL dynamic linker flag while we open a shared library to load custom operators. N)_SET_GLOBAL_FLAGSsysrrctypes RTLD_GLOBAL) old_flagss P/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/torch/_ops.py dl_open_guardr#+s\  ""$Iy6#5#556&  9%9%sAA= A# A=#A::A=ceZdZdZdZdZdZdZdee e e e je efdeeeefgeeefffdZd eed efefdeed efeffd Zd Zy ) OperatorBasez Base class for OpOverload (which represents C++ ATen operators) and HigherOrderOperator (which represents Python-only operators that are unrepresentable in TorchScript). c<i|_i|_i|_i|_yN)_dispatch_cache py_kernelspython_key_tablefunctorch_tableselfs r"__init__zOperatorBase.__init__Bs1$  BD   "ctr'NotImplementedErrorr-argskwargss r"__call__zOperatorBase.__call__n!!r/c||jvSr')r))r-ks r"has_kernel_for_dispatch_keyz(OperatorBase.has_kernel_for_dispatch_keyqsDOO##r/c|jD]5}tjj|r#|j |s5yy)NTF)r)torch_C_dispatch_is_alias_keyhas)r-ksr9s r"has_kernel_for_any_dispatch_keyz,OperatorBase.has_kernel_for_any_dispatch_keyts9 A882215"&&) r/r9returncddtttfdtttfffd }|S)NfnrBcbtjrettsttj r;j vsJ|j <jj|Sttr!jvsJ|j<|SttsJtjk7sJdjvrtddj!|j<jj|S)Nz>Please register a mode for the DispatchKey.Python key instead.z%Trying to override a python impl for z on operator )inspectisclass issubclassrr<Tensorr*r(clear isinstancerr+rPythonr) RuntimeErrorname)rDr9r-s r"innerz#OperatorBase.py_impl..innersq!1/0Jq%,,4O 5 5555+-%%a($$**, !]+ 4 4444*,$$Q' a- -- *** P *DOO#";A3mDIIK=Y"$DOOA   & & (Ir/)rrr)r-r9rOs`` r"py_implzOperatorBase.py_implzs/ hr2v& 8BF+; 8 r/rDrcddlmm}mmdt j dt jdtffd }dt|dt j dt jdtffd }dt j dt jdtffd }|jtj||j|||jtj|S) Nr)CppFunctionalizeAPIFunctionalTensorModeFunctorchFunctionalizeAPIPythonFunctionalizeAPIr4r5rBc&g|i|Sr')r4r5rRrDs r"functionalize_dk_fnz?OperatorBase.py_functionalize_impl..functionalize_dk_fns)+=d=f= =r/modec(|g|i|Sr'rW)rYr4r5rUrDs r"functionalize_dispatch_mode_fnzJOperatorBase.py_functionalize_impl..functionalize_dispatch_mode_fns ,T2DTDVD Dr/c(|g|i|Sr'rW) interpreterr4r5rTrDs r"functionalize_functorch_fnzFOperatorBase.py_functionalize_impl..functionalize_functorch_fns / <NtNvN Nr/)#torch._subclasses.functional_tensorrRrSrTrUrr4r5rr rPr Functionalizer) r-rDrSrXr[r^rRrTrUs ` @@@r"py_functionalize_implz"OperatorBase.py_functionalize_impls   >rww >")) > > E/0 E9; ELNII E  E  O " O3599 O  O 0 [../0CD* )*+IJ1 ]0012LM r/ctr'r1r,s r"rNzOperatorBase.namer7r/N)__name__ __module__ __qualname____doc__r.r6r:rAr typerr<rIrrrrrrPr rarNrWr/r"r%r%<s *"X"$ %  " #      % 8BF#$hr2v&66 7%d;'=r'ABBFG +4b892= >>"r/r%opr9c|j|r|Stj}|tjk(s t ||r|j|r|Stj }|tjk(s t ||r|j|r|S|j tjj|xs|jtj }tj}|tjk7r!t ||r|j|r|s|Stj}|tjk(s t ||r\|j|rK|tjk(r4|j tjjr td|s|Stj}t ||r|j|r|Stj }t ||r|j|r|Stjj#|r|St%d|d|)Nzambiguous autogradother kernelzcould not find kernel for  at dispatch key )r:r&CompositeExplicitAutogradNonFunctional Undefinedis_included_in_aliasCompositeExplicitAutogradrAr<r=*_dispatch_get_backend_keyset_from_autograd%CompositeImplicitAutogradNestedTensorCompositeImplicitAutograd AutogradOther _dispatch_autogradother_backendsrMAutogradFuncTorchBatchedDecomposition_dispatch_has_backend_fallbackr2)rhr9candhas_backend_kernels r" resolve_keyrys %%a(  = =D [ " ""&:1d&C ( ( .  0 0D [ " ""&:1d&C ( ( . ;; ;;A>O ' ' (M(M N  < OPQsS TTr/HigherOrderOperator_higher_order_opsceZdZddfd Zdeeeeeje e fde e e e fge e e ffffd Zde e e fde e e ffdZed Zedefd Zd Zd Zej0d ZdZdZdZxZS)rzF) cacheablec0t|t|tur t d||_||_|t|<d|_d|_ ||_ tjj|_tD]}|j!|y)NzODirect instantiation of HigherOrderOperator is not allowed. Please subclass it. higher_ordertorch.ops.higher_order)superr.rgrzrM_namercr{_nsrd _cacheabler<r=_dispatch_keyset_fullnon_fallthrough_keys2_HIGHER_ORDER_OP_DEFAULT_FALLTHROUGH_DISPATCH_KEYS fallthrough)r-rNr} dispatch_key __class__s r"r.zHigherOrderOperator.__init__s  :, ,a   "&$!2#$)HH$B$B$D!N +L   \ * +r/r9rBct|tr;|jj|s |jj ||_t ||Sr')rKrrr?addrrPr-r9rs r"rPzHigherOrderOperator.py_impl4sJ a %d.G.G.K.KA.N(,(A(A(E(Ea(HD %wq!!r/rDcdtjdtjdtffd }j t j |S)Nr4r5rBctjr+tjtjdg||r0tj j 5|i|cdddSddlm}|rKj|i|}td|jDrtdjd|i|S#1swYjxYw)Nc|j Sr') requires_grad)ts r"zRHigherOrderOperator.py_autograd_impl..maybe_run_autograd..Hs aoo-r/r)_has_gen_schemac34K|]}|jywr')is_write.0args r" zSHigherOrderOperator.py_autograd_impl..maybe_run_autograd..Rs@s||@szThe z HigherOrderOperator does not currently support training with in-place input or buffer mutations If you require this feature, please submit an issue to PyTorch. Alternatively, consider creating your own custom autograd.Function. )r<is_grad_enabledpytree tree_all_onlyrIr=_AutoDispatchBelowAutogradtorch._higher_order_ops.utilsr gen_schemaany argumentsrMrN)r4r5rschemarDr-s r"maybe_run_autogradz@HigherOrderOperator.py_autograd_impl..maybe_run_autogradEs((*f.B.B -$/ XX88:10011 Ft$($9&9@v/?/?@@&tyy{m,__t&v& &11s CC)rr4r5rrPrrt)r-rDrs`` r"py_autograd_implz$HigherOrderOperator.py_autograd_implAsF 'bgg ' 'r '. + [))*+=> r/c|jSr')rr,s r" namespacezHigherOrderOperator.namespace` xxr/cddlm}|jxss|jd|jt j jjvxs2t||xr$t jjjS)Nr)AutogradFunctionApply.) "torch._functorch.autograd_functionrrrdrcr< _inductorconfig!unsafe_marked_cacheable_functionsrK _functorch.autograd_cache_allow_custom_autograd_functions)r-rs r"r}zHigherOrderOperator.cacheabledsuL OO //"!DMM?3%%GGH 4!67[$$++ZZ  r/cD|jj||_yr')rremove)r-rs r"rzHigherOrderOperator.fallthroughrs$($=$=$D$D\$R!r/cddlm}||jvr)|j|}t|trJ||i|S|tj k(r t |||S|tjk(rqgdfd}g||jD]0}||t|ttfs"|D] }|| 2t} ddlm } |} | t| |jvr5|jt| } | 5} | | g|i|}dddnc| jr%| 5} | j|g||cdddSt!d|j"d| d| d | d |j"d | d t$ur|S| D]}t|}|jt&j(j*k(r6|t&j,j.j0urMt&j,j.j2}|j|} | |j4g|i|}|cS||jvr|j|} | |i|}nt!d |j"d|d|t$us|cSt7d|j"d| d| Dcgc]}t|j8c}d|j"d| d t&j(j;|}|tj<k(rddlm } t?dkDrt&j(jAtjsktC} | Jdt| |jvs Jd| d|jt| } | |5} | | g|i|cdddStE||}||jFvrt!d|j"d|d|d|tj<k7r|jF||j|<|jF|}t|trJ||i|S#1swYxYw#1swYxYwcc}w#1swYxYw)Nr_get_current_dispatch_modec^tjj|jdS)NrL)r<r=_dispatch_keysr?)tensors r"has_python_keyz4HigherOrderOperator.dispatch..has_python_keys"xx..v6::8DDr/cpt|tjr|rj|yyyr')rKr<rIappend)rroverloaded_args_lists r"check_overloadedz6HigherOrderOperator.dispatch..check_overloadeds/c5<<0^C5H(//46I0r/)_pop_mode_temporarilyz5There was no rule registered for HigherOrderOperator z and mode z .Hint: set zc's supports_higher_order_operators to True. This causes all higher order operators to pass through zk's __torch_dispatch__, so handle them accordingly by adding support for HigerOrderOperators (in this case, z) in zC.__torch_dispatch__ or returning NotImplemented when not supported.z%There was no rule registered for HOP z and subclass z. We recommend filing an issue.zHigherOrderOperator 'z' is not supported for the given input types. This typically happens when using custom tensor types or dispatch modes that don't have implementations for this operation. Current mode: z Input types: z$ To fix this, can add support for 'z' in z's __torch_dispatch__ zIIllegal invocation of dispatch on DispatchKey.PreDispatch without a mode.zCurrent active mode z not registeredz.could not find kernel for HigherOrderOperator rjz (resolved from ))$torch.utils._python_dispatchrr(rKrFuncTorchDynamicLayerFrontModerrLvalueslisttuplerrgr*supports_higher_order_operators__torch_dispatch__r2rNotImplementedr<r=_disabled_torch_dispatch_impl _subclasses fake_tensor FakeTensorFakeTensorMode fake_mode TypeErrorrc_to_functionality_key PreDispatch&_len_torch_dispatch_stack_pre_dispatch&_dispatch_tls_is_dispatch_key_excluded'_get_current_dispatch_mode_pre_dispatchryr))r-rr4r5rkernelrraoverloaded_argsr curr_modehandlerrYresult subclass_typefunctionality_key final_keyrrs @@r"dispatchzHigherOrderOperator.dispatchwsK 4// /)),7F!&+6 664*6* * ;EE E%dD&9 9 ;-- -$&  E 510 0 , %cD%=1 ,(+, , $$89O K24I$ ?d&;&;;"33DODG.0@D")!?!?!?@@ !@@24X#,#?#?b$PV#WXX2STXT^T^S__ijsitu))2 4WW`VabVVZV`V`Uab ){+L M/!M' " $S !44xx==>!E$5$5$A$A$L$LL$)$5$5$A$A$P$PM"33MBG$S]]DTDVDF!M D$9$99"33MBG%d5f5F-? |>ZgYhi89/!M= "B' |4!"+ , ;J Kaa!1!1 KLM559ZZLi[Pg i "HH::<H  7 7 7 J 781<hhEE""DE  ,_,I$*?*??*9+_E?//Y@*+<=:"49$9&9:: l3  DOO +%@ M##,+-=l^1N  ;22 2151KD  .+fk222t&v&&U@@ XXl!L.::s* QQ /Q-, Q2Q Q*2Q;c$fd}|S)Nct}tjj|r$tjj|giSt j }j|jgiSr') _to_flat_tupler< overrideshas_torch_functionhandle_torch_function_compute_keysetrrhighestPriorityTypeId) flat_argsdispatch_key_setr4r5r-s r"wrapperz-HigherOrderOperator.__call__..wrapper s&tV4I11)<<<)&*.4 /tVT=V=VW  4== 668;?CI r/rW)r-r4r5rs``` r"r6zHigherOrderOperator.__call__ s yr/c4td|jd)NzHigherOrderOperator z does not implement a gen_schema. This is OK as long as the hop is functional. e.g. it should not mutate its inputs and there are no input, output aliasing via views or direct referencing.)r2rr3s r"rzHigherOrderOperator.gen_schema&s$!"4::,// 0  r/c$|jSr')rNr,s r"__str__zHigherOrderOperator.__str__.s))+r/c|jSr'rr,s r"rNzHigherOrderOperator.name1 zzr/)rcrdrer.r rgrr<rIrrrrrrPrpropertyrrboolr}rrabcabstractmethodr6rrrN __classcell__rs@r"rzrzs +0+8 "  " #       " 8BF#$hr2v&66 7 " RV  "b& >   4     S Q'f   6  r/c,tj|i|Sr')rarg_tree_leavesr4r5s r"rr5s  ! !4 26 22r/c2t||}t||Sr') _get_tensors key_extractor)r4r5rtensorss r"rr9s4(G "6 77r/ct||}|Dcgc]}t|tjs|!}}t |Scc}wr')rrKr<rIr)r4r5flat_allr tensor_argss r"rr>s?dF+H&F*Q *E1FKF  Gs AActjj}|D]$}|tjj|z}&|tjj z }||z}|Sr')r<r=_dispatch_tls_local_include_setr_dispatch_tls_local_exclude_set)rkey_maskkey_setrs r"rrFsbhh668G<EHH33F;;<@@BBG G Nr/c$eZdZdZdZdZdZy)_ModeStackStateForPreDispatchc$ddg|_d|_yr')*_ModeStackStateForPreDispatch__infra_modes_schema_check_moder,s r"r.z&_ModeStackStateForPreDispatch.__init__]s"D\"&r/cV|t|jksJ||j|<yr'lenr)r-indexrYs r"setz!_ModeStackStateForPreDispatch.setas+s4--....$(5!r/cT|t|jksJ|j|Sr'r )r-r s r"getz!_ModeStackStateForPreDispatch.getes,s4--....!!%((r/ct|jDcgc]}|| c}t|jduzScc}wr')r rintr )r-is r"countz#_ModeStackStateForPreDispatch.countisBt11C!Q]ACDs  # #4 /H   Cs??N)rcrdrer.rrrrWr/r"rr\s')) r/rcZtLtjjjtjjj fvsJ|rJfd}|}t }|dk(r.tjjtjd|S)Nctjjjk(r-j d}t j dd|Stjjjk(r-j d}t j dd|St j}dt _|SNr) r<r=_TorchDispatchModeKeyPROXYr!mode_stack_state_for_pre_dispatchr FUNCTIONALr ) current_modecurrent_mode_stack_pre_dispatchmode_keys r" _unset_modez,unset_mode_pre_dispatch.._unset_mode{s uxx55;; ;:>>qAL - / 3 3At <  77BB B:>>qAL - / 3 3At < <>QQLEI - / B r/rF) rr<r=rrrr'_dispatch_tls_set_dispatch_key_includedrr)r schema_checkr rnew_pre_dispatch_lenrs` @r"unset_mode_pre_dispatchr$rs&G&I#  x &&,, &&11,    =LAC q  889P9PRWX r/c<ddlm}ddlm}ddlm}t ||||fsJt}t ||r4tj}|dkDr td|t_ n{t ||r8tjd}|Jtjd|n7tjd}|Jtjd||dk(r/tjjt j"dyy)Nr)rS)SchemaCheckMode)ProxyTorchDispatchModezYSchemaCheckMode for pre-dispatch must be used exclusively, found other modes on the stackrT)r_rS#torch._subclasses.schema_check_moder&"torch.fx.experimental.proxy_tensorr'rKrrr AssertionErrorrrr<r=r!rr)rYrSr&r'previous_mode_stack_lenrs r"_set_mode_pre_dispatchr,sHCI  "    EF$(8:MM "Q & k BF)+> D. /8:>>qA ###)+//488:>>qA ###)+//48 !# 889P9PRVW$r/cvt}t}|dk(r td|j t ddS|j d-t t jjjS|j d-t t jjjSy)NrzTrying to pop empty mode stackT)r"r) rrr*r r$rr<r=rrr) mode_stackpre_dispatch_lens r"_pop_mode_from_pre_dispatchr0s24J=?1=>>$$0&t$??~~a$&uxx'E'E'P'PQQ~~a$&uxx'E'E'K'KLL%r/c2tjSr')rrrWr/r"rrs , . 4 4 66r/cL|tjjjtjjjfvsJ|tjjjk(rt j dSt j dSr)r<r=rrrrr)rs r"_get_dispatch_mode_pre_dispatchr3s  &&,, &&11  588117770266q990266q99r/c`tjtjStj}|dk(rtjdS|dk(rKtjdtjdStjdSy)Nrr)rr rr) stack_lens r"rrs(*==I02EEE57==? >46::1= = >56::1=I2377: 78<P>P=QR (33&11  JJ!#'"3"3u}}7J7J"J'' =A||#<<00<<00)r_rbrPr,s r"__repr__zOpOverload.__repr__Cs.!$//!2!DLL>tOaOaNbbeffr/r4r5c&|j|i|Sr'rJr3s r"r6zOpOverload.__call__Hstxx(((r/keysetcB|jj|g|i|Sr')reredispatch_boxed)r-ror4r5s r" redispatchzOpOverload.redispatchMs%-t||,,VEdEfEEr/c,t|jSr'hashrJr,s r"__hash__zOpOverload.__hash__RDHH~r/cdjg|jjjd|jS)Nz{}.{}.{}rI)formatrLrNrTrPr,s r"rzOpOverload.__str__Vs8 z  T$,,"3"3"9"9$"?TASASTTr/r9ct||xs.tjj |j |Sr')rr:r<r=%_dispatch_has_kernel_for_dispatch_keyrNrs r"r:z&OpOverload.has_kernel_for_dispatch_keyYs9w2  L XX ; ;DIIK K Lr/r@ctjj|j|xst||Sr')r<r=)_dispatch_has_kernel_for_any_dispatch_keyrNrrA)r-r@rs r"rAz*OpOverload.has_kernel_for_any_dispatch_key^s7xxAA IIK 9 W 4R 8 9r/c|jSr')r_r,s r"rzOpOverload.namespacecs r/ctj}||jvxs.tjj |j |Sr')rrqr)r<r=r{rN)r-dks r"_can_decomposezOpOverload._can_decomposegs?  2 2T__$ (V(V IIK)  r/ctj}||jvr|j||i|Stjj |j |r|j|g|i|StSr') rrqr)r<r=r{rNrKr)r-r4r5rs r" decomposezOpOverload.decomposemsq  2 2  '4??2&77 7 XX ; ;DIIK L4;;r3D3F3 3! !r/keyc<|jj|dyr')r(pop)r-rs r"_uncache_dispatchzOpOverload._uncache_dispatchs   d+r/cjvs Jdtjk(rtts(j sj<t Sdtjdtjdtffd }|j<t |Stjj}|tjk(rjt}|dkDr[tjj!tjs.dtjdtjdtffd }|St#}tjk7}tj$k(rEddlmcm}|j,r0|j/|}|r|j<t |Sj0j3||}|r|j<t |S)N r4r5rBc0ddlm}t|}|Jd|jvrt t r`t jjj5}t jjj|g|i|cdddSjg|i|St jjj5}j||g|i|cdddS#1swYTxYw#1swYyxYw)NrrzDIllegal invocation of dispatch on DispatchKey.Python without a mode.) rrrgr*rKTorchBindOpOverloadr<utils_python_dispatchr_libraryhandle_dispatch_moderK)r4r5rrrYrr-s r"rz)OpOverload._get_dispatch..handlersS!!;!=>  ,Z,D$9$99!$(;<!KK88NNPTX#(>>#7#7#L#L $d$-1$5;$ +t{{3@@@@[[11GGIST;400;DR4R6RSSSSs'.DD D  Drctjd}|5}tjjj |g|i|cdddS#1swYyxYw)Nc3`Kt} |t|y#t|wxYwwr')r0r,)top_modes r"(_temporarily_pop_modes_from_pre_dispatchz[OpOverload._get_dispatch..handler.._temporarily_pop_modes_from_pre_dispatchs)#>#@="*N28<28.handlersh..=/=BCy$~~33HH%t .2 6< s .AA )r(rrLrKrr*r=rr4r5rr<r=rrrrryr`torch._dispatch.python _dispatchpythonCROSSREF_FUNCTIONALIZEmake_crossref_functionalizer)r) r-rrrcurr_stack_lenr cache_result pydispatchrs `` r" _get_dispatchzOpOverload._get_dispatchs$...?4&#?. +$$ $d$78AVAV,/$$S)d#  Srww S")) S S0)0D  % $ N!HH::3?  7 7 7CEN"GG&& 277 bii B &c* k555 +++ + 7 700$@@yQ07D((-!$' OO   9 5 ()D  % $ r/c|jSr'rr,s r"rNzOpOverload.namerr/c|jSr')rMr,s r"rCzOpOverload.overloadpackets###r/c|jSr'rnr,s r"rhz OpOverload.oprr/c|jSr')rNr,s r"rFzOpOverload.tagss zzr/r'),rcrdrerrrr rr<r=FunctionSchemarrr.rstrr_rb_DispatchOperatorHandlererirlr4r5r6DispatchKeySetrrrvrrr:rArrrrrr rrNrCrhrFrrs@r"r9r9s7*=**= RV *= KO4b89 *= '' *= 3i *= *=X._may_use_fallthrough_instead_of_fallback ssxx==diik3OxxPPIIK 4??*L??3'5==+K+KK r/)rrt AutogradCPU AutogradCUDAADInplaceOrView BackendSelectPythonTLSSnapshotPythonDispatcher)r-_DEFAULT_FALLTHROUGH_KEYSrrs` r"_fallthrough_keysz%TorchBindOpOverload._fallthrough_keyss   # #  $ $  ' '  % %  ) )  ( (% ! + 1 7<    s=Bc#Kddlm}m}m} ||vr|||jd||vr||=yy#||vr||=wwxYww)Nr) _EffectType_register_effectful_op SIDE_EFFECTS)torch._higher_order_ops.effectsrrrORDERED)r-rrrs r"%_register_as_effectful_op_temporarilyz9TorchBindOpOverload._register_as_effectful_op_temporarilysZ   '<'&t[-@-@A |# &$t|# &$s ?2 ? <?r4r5ct||r>|j5|j|jg|i|cdddS|j|i|S#1swYxYwr')_must_dispatch_in_pythonr_dispatch_in_pythonrrJr3s r"r6zTorchBindOpOverload.__call__,sx #D& 1;;= /t//**,/37=  txx(((   s $AA&fallthrough_keysc tjj}|D]}|j|}t |||}|j }||j vr|j|n|j |}t|tr]tjj|j|r|j||gzg|i|Std|d|d|dt|tsJ||i|S)Nz Torchbind op z4 received a FakeScriptObject input when dispatching z. but no python implementation is found. Please file an issue on this when you encounter this error. This error can happen when you export or compile the model. It can still happen even if a C++ implementation for zz. has been registered. That's because FakeScriptObject purely lives in python and cannot work with a C++ implementation.)r<r=rrrrr(rrKrrrNrrMr) r-rr4r5rrrrrs r"rz'TorchBindOpOverload._dispatch_in_python>sF %xx==?# DC#7#>#>s#C  D+49MN'==? 4#7#77   | ,%%l3  g{ +xxHH \0t//$ ~5 v%YZaYbcIJVW. / '8,,,'''r/N)rcrdrerrrrrrrr4r5rr6rrWr/r"rrs 4 #4 < ' '"))BII)")$'( $[ 1'(:<'''(MOYY'( '(r/rc4tjd||fS)Nc^t|tjjjSr')rKr<rfake_class_registryFakeScriptObject)objs r"rz*_must_dispatch_in_python..js J 33DD r/)rtree_anyrs r"rrhs! ??  v  r/rrBc:td|jDS)Nc3dK|](}t|jtj*ywr')rKrgr< ClassTypers r"rz)_has_script_object_arg..rsQz#((EOO4Qs.0)rr)rs r"_has_script_object_argrqs Q@P@PQ QQr/c eZdZUdZeeed<dededeee fde eddf d Z dd Z d Z d Zd ZedZedZdedeee ffdZdeefdZdej.dej0de fdZdZy)rD torch.ops__file__qualified_op_nameop_namerhoverload_namesrBNc||_||_||_||_g|_t d|j jD|_y)Nc32K|]}t|ywr')r)rrs r"rz,OpOverloadPacket.__init__..s. /5 "6 *. s) _qualified_op_namercrJ_overload_names_dirr_schemasr_has_torchbind_op_overload)r-rrrhrs r"r.zOpOverloadPacket.__init__zsP#4 -! *-. 9=9M9M9O. + 'r/c|Sr'rWrgs r"rizOpOverloadPacket.__deepcopy__rjr/cRdj|jjdS)NzrIryrrTr,s r"rlzOpOverloadPacket.__repr__s,6/66  $ $ * *4 0  r/c,t|jSr'rtr,s r"rvzOpOverloadPacket.__hash__rwr/cRdj|jjdS)Nz{}.{}rIrr,s r"rzOpOverloadPacket.__str__s$w~~t66<CD=>s# ,- ! r/c,t|jSr'rr,s r"rz_OpNamespace.__iter__Crr/rc|dvrtd|d|jd|j}|d|}|jdz|z} t||\}}|td|jd|d ||_t ||||}|jdz|z|_t ||||jj||S#t$r"}td|jd|d|d}~wwxYw) N) __origin____self__zInvalid attribute 'z' for '_OpNamespace' 'rrIrz'_OpNamespace' 'z' object has no attribute ') rrNrd _get_packetrMrDrrr) r-rnamespace_namer module_namerhrropoverloadpackets r"rz_OpNamespace.__getattr__Fs> 0 0 %gY.DTYYKqQ  -.b :oo+n<  !,-> !L Bz$&tyyk1LWIUVW$ + wN '+oo&;n&L# g/0 !! !"499+-H QRS  s-C C6C11C6) rcrdrerfrrr.rrrDrrrs@r"rr'sF(H"S"T" (3-" 3" +;" r/rctjj|\}}|1tjjj ||||_||fSr')r<r=_jit_get_operationjit _builtins_register_builtinrd)qualname op_modulerhrs r"r r ksN44X>B ~  --b(;! ~ r/ct|j|jj\}}|J||_||_yr')r rrJrdr)packetrhrs r"_refresh_packetrus<$V%>%> @U@UVB >>FJ+Fr/cFeZdZdZdfd ZdeefdZdedefdZ xZ S)_HigherOrderNamespacerrBc2t|dg|_y)Nr)rr.rr-rs r"r.z_HigherOrderNamespace.__init__s 12! r/c,t|jSr'rr,s r"rz_HigherOrderNamespace.__iter__rr/rNctj|d}|td|dt||||jj ||S)NzJ'_HigherOrderNamespace' 'torch.ops.higher_order' object has no attribute 'r)r{rrrrr)r-rNrhs r"rz!_HigherOrderNamespace.__getattr__sZ  " "4 . : \]a\bbcd  dB  r/)rBN) rcrdrerr.rrrrzrrrs@r"rr|s1H"(3-  (; r/rcPeZdZdZfdZdedefdZdeefdZ dZ dZ xZ S) _Opsz_ops.pycnt|dt|_t |_g|_y)Nr)rr.rloaded_librariesrrrrs r"r.z _Ops.__init__s, % #13 r/rNrBclt|}t||||jj||Sr')rrrr)r-rNrs r"rz_Ops.__getattr__s0 & dI& r/c,t|jSr'rr,s r"rz _Ops.__iter__rr/c.tj|y)a{ Imports a Python module that has torch.library registrations. Generally, to extend PyTorch with custom operators, a user will create a Python module whose import triggers registration of the custom operators via a torch.ops.load_library call or a call to one or more torch.library.* APIs. It is unexpected for Python modules to have side effects, so some linters and formatters will complain. Use this API to import Python modules that contain these torch.library side effects. Args: module (str): The name of the Python module to import N) importlib import_module)r-modules r"r)z_Ops.import_modules" 'r/ctj|}t5 tj| ddd|jj|y#t $r}t d||d}~wwxYw#1swYExYw)a  Loads a shared library from the given path into the current process. The library being loaded may run global initialization code to register custom operators with the PyTorch JIT runtime. This allows dynamically loading custom operators. For this, you should compile your operator and the static registration code into a shared library object, and then call ``torch.ops.load_library('path/to/libcustom.so')`` to load the shared object. After the library is loaded, it is added to the ``torch.ops.loaded_libraries`` attribute, a set that may be inspected for the paths of all libraries loaded using this function. Args: path (str): A path to a shared library to load. zCould not load this library: N) rresolve_library_pathr#rCDLL ExceptionOSErrorr$r)r-pathrs r" load_libraryz_Ops.load_librarys$33D9 _ M M D!  M !!$' M =dVDE1L M  M Ms(A<A A9%A44A99A<<B) rcrdrerr.rrrrrr)r1rrs@r"r"r"s:H  (3-(&(r/r"ops)F)brrrr(rFrtypescollections.abcr functoolsrtypingrrrrr r r r typing_extensionsr rrr<torch.utils._pytreer_pytreerrtorch._Crrmrtorch._functorch.pyfunctorchrrrrr_rrrhasattrrrr#r%ryr{dictrrUrrrr AutocastCPU AutocastCUDA AutocastXPUrABCrzrrrrrr8r$r,r0rr3rrrr:r=r?rAr9rrrrrrDr4r5r ModuleTyperr rrr"r2rWr/r"rCs   $%   >= $$!XJ:H T3tS!C!12UwsDT7U  & & P"P"h2UL2U[2Uj7942238  !!62`,`F 38 ,  &&C%D"!H$XN M7:  . !$ C %  nwr2vnnj(*RV,j(ZR5#7#7RDR tEwr2vtEr% R % )+% <>II% % nA 5##A H,E,,,A(5  A(J FTr/