
    !&h^G                    \   U d dl mZ d dlZd dlmZ d dlmZ d dlmZ d dl	m
Z
mZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZ d d	lmZ erd d
lmZ ej>                  dej@                  dejB                  dejD                  dejF                  dejH                  dejJ                  dejL                  dejN                  dejP                  dejR                  dejT                  diZ+ej>                  dej@                  dejB                  dejD                  dejF                  dejH                  dejJ                  dejL                  dejN                  dejP                  dejR                  dejT                  diZ,ej>                  dej@                  dejB                  dejD                  dejF                  dejH                  dejJ                  dejL                  dejN                  dejP                  dejR                  d ejT                  d!iZ-	 d4	 	 	 	 	 	 	 d5d"Z.d6d#Z/d7d$Z0d8d%Z1i a2d&e3d'<   	 	 	 	 	 	 	 	 d9d(Z4	 	 	 	 	 	 d:d)Z5	 	 	 	 	 	 d;d*Z6	 	 	 	 	 	 	 	 	 	 	 	 d<d+Z7	 	 	 	 	 	 	 	 	 	 	 	 d=d,Z8d>d-Z9	 	 	 	 	 	 	 	 	 	 	 	 	 	 d?d.Z: ed/0       G d1 d2             Z;	 d@	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dAd3Z<y)B    )annotationsN)	dataclass)TYPE_CHECKING)DispatcherSignature)CppSignatureCppSignatureGroup)method_with_native_function)ArgumentBackendIndexBaseTyBaseTypeDispatchKeyFunctionSchemaListTypeNativeFunctionNativeFunctionsGroupOperatorNameOptionalTypeType)mapMaybe)SequenceAtenTensorHandleint32_tint64_tdoublezconst char*AtenGeneratorHandle
at::Tensorboolzc10::SymIntzc10::Scalarzc10::string_viewzc10::DeviceIndexzc10::Layoutzc10::MemoryFormatzc10::ScalarTypezat::Generatorresolve_tensor_dispatch_flags zstatic_cast<c10::DeviceIndex>zstatic_cast<c10::Layout>zstatic_cast<c10::MemoryFormat>zstatic_cast<c10::ScalarType>z&*generator_handle_to_generator_pointerc                .   t        | t              r| j                  t        v r| j                  t        j
                  k(  r
|rd| dg}n/t        | j                     rt        | j                      d| dn|g}t        | j                     g|gt        | j                     g|fS | j                  t        j                  k(  rddg||dz   gdgd| d| d	gfS t        d
t        |              t        | t              rCt        | j                  |      \  }}}}d}g }	g }
|D ]  }||   dz   ||<   |j                  d      rM|	j                  d| d       |t!        d      d }|
j                  d| d||    d||dz       d       |dz  }m|dk(  r8|	j                  d       |
j                  d||    d||dz       d       |dz  }|dk(  r3|	j                  d| d       |
j                  d||    d       |dz  }|	j                  d| d       |
j                  d| d||    d       |dz  } |||	|
fS t        | t"              r't        | j                  |      \  }}}}t!        |      dk(  sJ dt        |       z          d|d    d|d<   |j                  d       |d   }|j                  |dz          |d   }g }|dk(  r1| j$                  J |j                  d | j$                   d| d       n_|dk(  r|s|j                  d!| d| d"       n?|d#k(  r|j                  d$| d%| d&| d| d'	       n|j                  d | d| d| d"       |D cg c]  }d| d
 }}||||fS t        d(t        |        d)      c c}w )*Nz!*tensor_handle_to_tensor_pointer()(r   _index_zc10::Devicez)c10::Device(static_cast<c10::DeviceType>(z!), static_cast<c10::DeviceIndex>(z	_index_))zTODO: add support for arg type r   *zc10::ArrayRef<z::std::optional<>zpointer_to_optional_list<z>(,       z::std::optional<c10::Device>zpointer_to_optional_device(r   zresolve_tensor_dispatch_flags(zpointer_to_optional<z'ListType with unsupported element type zconst r   _len_r   zpointer_to_list<z#resolve_tensor_list_dispatch_flags(z_len_)z::std::optional<at::Tensor>z
c10::List<z>(c10::ArrayRef<z%>(resolve_tensor_list_dispatch_flags(z_len_)))zArgument type z not supported!)
isinstancer   namebase_type_to_c_typer   Tensorbase_type_to_callsite_exprbase_type_to_aten_typeDeviceNotImplementedErrorreprr   convert_arg_type_and_nameelem
startswithappendlenr   size)typr-   is_writecallsite_exprc_typesnames
aten_typescallsite_exprsjnew_aten_typesnew_callsite_exprs	aten_type	base_type_atypets                   n/var/www/pru.catia.catastroantioquia-mas.com/valormas/lib/python3.12/site-packages/torchgen/gen_aoti_c_shim.pyr5   r5   N   s   
 #x 88**xx6==(X $ETF!!L M 2#((; 2#((;<AdV1E! %SXX./'12	  XX&I&ti'(?vEfgkflluv	  &(GS	{&STT	C	&5NHHd6
2
N # 	I c)GAJ##$45%%(81&EF%c*:&;bA	"))/	{"U1XJbqSTuVWX Qm+%%&DE"))1%(2eAEl^1M Ql*%%(81&EF")),J5QR8*TU*VWQ%%(81&EF"))*9+RazC Q7	< 	
 	
 
C	"(A#((D(Q%
A7|q W"KdSVi"WW  gaj\+
y!QxTG^$1F? 88'''!!$4SXXJba"HIl"8!!5dV2dV6J 33!!UG#3E7:_`d_eeghlgmmuv !!$4UG2dV2dV6"RS5?@qc+@
@	
 	
 tCykI
JJ As   %Nc                X    t        | |      D cg c]  \  }}|dz   |z    c}}S c c}}w )N )zip)typesr?   r;   r-   s       rJ   zip_type_and_namerO      s*    .1%.?@dC#I@@@s   &c                    g }g }g }| D ]e  }t        |j                  |j                  |j                        \  }}}}|j	                  |       |j	                  |       |j	                  |       g t        ||      |fS N)r5   typer-   r<   extendrO   )	flat_argumentsrN   	new_namesrA   arg	new_typesr?   rG   rD   s	            rJ   gen_argumentsrX      s    EIN 22KHHchh3
/	5!/ 	Y012 UI.>>    c           
     8   g }g }t        | j                        D ]  \  }}|j                  d|        t        |j                  t
              rL|j                  j                  t        v r0|j                  t        |j                  j                     dz          t        dt        |j                                dd}d}| j                  j                         }dD ]
  }||v sd} n g }	t        | j                        D ]  \  }}t        |      dk(  rd	nd
| d}
t        |j                  t
              sJ  ||j                  |
      }|r"|	j                  d||    d||    d| d       o|	j                  d||    d| d        t        ||      |	fS )Nretr%   z"TODO: add support for return type c                    | j                   t        j                  k(  rd| dS | j                   t        j                  k(  r| dS | j                   t        j                  k(  r| dS |S )Nznew_tensor_handle(std::move(z));z.expect_int()z.toDouble())r-   r   r/   SymIntScalar)r;   vals     rJ   convert_returnz#gen_returns.<locals>.convert_return   s`    88v}}$1#c::XX&U-((XX&U+&&JrY   F)#_scaled_dot_product_flash_attention'_scaled_dot_product_efficient_attention#_scaled_dot_product_cudnn_attention0_scaled_dot_product_fused_attention_overrideableconvolution_backwardTr)   
tmp_resultz	std::get<z>(tmp_result)zif (z) { *z = z; };)r;   r   r_   strreturnrh   )	enumeratereturnsr8   r,   rR   r   r-   r.   r3   r4   unambiguous_namer9   rO   )schemarN   r?   idxr[   r`   ret_pointer_can_be_nullrl   r-   rA   tmprvals               rJ   gen_returnsrr      s   EEfnn- Ss3%[!chh)chhmm?R.RLL,SXX]];cAB%4T#((^4DE  ${{335 	 ##&*#	 !#Nfnn- >S!%jAolYse=3Q#((H---chh,"!!DsF5:,c$t"TU!!AeCj\TF!"<=> UE*N::rY   z+dict[tuple[str, str, str], tuple[str, str]]declaration_definition_cachec                   | j                   j                         }|||ft        v rt        |||f   S | j                         r=t	        g | j
                  j                  | j
                  j                        \  }}g }net	        | j
                  j                        \  }}| j                   j                   j                  rg g fn
t        |       \  }}|j                  |       d| d| ddj                  |       d}|rdnd}	|rddj                  |      z   nd}
d| d	|	 | d
t        j                  dj                  |      d       dt        j                  |
d       d
}||ft        |||f<   ||fS )NzAOTITorchError aoti_torch_rG   r#   r(   r"   zauto tmp_result = r    
z< {
    AOTI_TORCH_CONVERT_EXCEPTION_TO_ERROR_CODE({
        z(
z            z
        );z        z
    });
}
)r-   rl   rs   	is_out_fnrX   	argumentsoutflat_non_outflat_allinplacerr   rS   jointextwrapindent)rm   devicebackend_call	func_nameargsrA   ret_assignmentsret_declarationsdeclarationrf   ret_assignments_str
definitions               rJ   gen_declaration_and_definitionr     s    ,,.I 	6<(,HH+Y,MNN  -Cf""CV%5%5%B%BC 
n &(,V-=-=-F-FGn ((00RHk&6I 	*/ 	$%.vha	{!DIIdOCTTUVK)8%bJ?N$?!;;TV 		\N #	>*N; < =??.
;
< =J 	G )V\!BC 
""rY   c                    t        j                  |j                        } t        j                  |dd      }| j
                  r'|j                  j                         r|j                  }n|j                  }|J |S )NF)methodfallback_binding)	r   from_schemafuncr   from_native_functionsymint
has_symintsymint_signature	signature)sigfcpp_sigscpp_sigs       rJ   *gen_static_dispatch_backend_call_signaturer   ;  sn     
)
)!&&
1C 55	%%H zzaff'')++$$NrY   c                    t        j                  | j                        }t        ||       }d|j                  j                          d|j                          S )Nzat::z::)r   r   r   r   dispatch_keylowerr-   )r   backend_indexr   r   s       rJ    gen_static_dispatch_backend_callr   K  sN     
)
)!&&
1C8a@G-,,2245R7GHHrY   c                   d }||   j                  |       s;| j                  6| j                  |v r(||   j                  || j                           r||   }|S |r|S |t        j                     j                  |       r|t        j                     }|S |t        j                     j                  |       r|t        j                     }|S |t        j
                     j                  |       r|t        j
                     }|S rQ   )
has_kernelstructured_delegater   CompositeExplicitAutograd&CompositeExplicitAutogradNonFunctionalCompositeImplicitAutogradr   func_group_mappingr   backend_indicesextend_aoti_c_shimr   s         rJ   get_backend_index_for_aotir   T  s    M|$//5  ,$$(::L)44t778
 (5( !   [BBCNNtT+K,Q,QRM  >>

*T
 ,BBM  [BBCNNtT+K,Q,QRMrY   c                ~    t        | ||||      }|d S d| j                   d|j                  j                          dS )Nz#include <ATen/ops/rG   z_dispatch.h>)r   	root_namer   r   r   s         rJ   get_header_for_aotir   z  s\     / ,ASM
   	 #4>>"2!M4N4N4T4T4V3WWcdrY   c                B   | j                   j                  j                  rP| j                   d| j                   j                  j                   d| j                   j                  j                   S | j                   d| j                   j                  j                   dS )N.z.default)r   r-   overload_name	namespace)r   s    rJ   get_fallback_op_namer     s~     99>>'' >>
!DIINN//0$))..2N2N1OP q!4!4 5X>rY   c                    t        | ||||      }|y | j                  }|j                         }t        | |      }		 |rt	        |||	      \  }
}d|
 dS t	        |||	      \  }}|S # t
        $ r Y y w xY w)NzAOTI_TORCH_EXPORT rg   )r   r   r   r   r   r3   )r   r   r   r   headerr   r   rm   r   r   r   rG   r   s                rJ   
gen_c_shimr     s     / ,ASM YYF!F3L
;NK (}A66:66<XMAz s   A& A& &	A21A2T)frozenc                  Z    e Zd ZU ded<   ded<   ded<   ded<   ded	<   e	 	 	 	 dd
       Zy)ShimGenerator(dict[OperatorName, NativeFunctionsGroup]r   r   r   dict[DispatchKey, BackendIndex]r   r   r   r   c                    t        || j                  | j                  | j                  | j                  | j
                        }|S rQ   )r   r   r   r   r   r   )selfr   results      rJ   __call__zShimGenerator.__call__  sC    
 ##  KK##
 rY   N)r   r   ri   
str | None)__name__
__module____qualname____annotations__r	   r    rY   rJ   r   r     sC    @@44L  
 !rY   r   c                    dj                  t        t        t        |||||      |                   }|j	                         }d}	|r	d|	 d| dS d|	 d|rdnd d| d	t        |       d
| d| S )Nru   z
// WARNING: THIS FILE IS AUTOGENERATED BY torchgen. DO NOT MODIFY BY HAND.
// See https://github.com/pytorch/pytorch/blob/7e86a7c0155295539996e0cf422883571126073e/torchgen/gen.py#L2424-L2436 for detailszl

#pragma once

#include <torch/csrc/inductor/aoti_torch/c/shim.h>

#ifdef __cplusplus
extern "C" {
#endif

z,

#ifdef __cplusplus
} // extern "C"
#endif
z5

#include <torch/csrc/inductor/aoti_torch/generated/zextend/r    c_shim_zf.h>
#include <torch/csrc/inductor/aoti_torch/utils.h>

#ifndef AT_PER_OPERATOR_HEADERS
#include <ATen/zFunctions.h>
#include <ATen/CompositeExplicitAutogradFunctions.h>
#include <ATen/CompositeExplicitAutogradNonFunctionalFunctions.h>
#include <ATen/CompositeImplicitAutogradFunctions.h>
#else
z/
#endif

using namespace torch::aot_inductor;

)r|   listr   r   r   rh   )
native_functionsr   r   r   r   r   includesbodyr   warnings
             rJ   gen_aoti_c_shimr     s     99& #& !		
D !FCG 	 

   	&	 
4ASIY[3\\cdjck l L!" #
 

 
 #
 	
rY   )F)r;   r   r-   rh   r<   r   ri   z1tuple[list[str], list[str], list[str], list[str]])rN   	list[str]r?   r   ri   r   )rT   zSequence[Argument]ri   tuple[list[str], list[str]])rm   r   ri   r   )rm   r   r   rh   r   rh   ri   ztuple[str, str])r   z"CppSignature | DispatcherSignaturer   r   ri   r   )r   r   r   r   ri   rh   )r   r   r   r   r   r   r   r   r   r   ri   zBackendIndex | None)r   r   r   r   r   r   r   r   r   r   ri   r   )r   r   ri   rh   )r   r   r   r   r   r   r   r   r   r   r   r   ri   r   )r    )r   zSequence[NativeFunction]r   r   r   r   r   r   r   r   r   r   r   rh   ri   rh   )=
__future__r   r}   dataclassesr   typingr   torchgen.api.typesr   torchgen.api.types.signaturesr   r   torchgen.contextr	   torchgen.modelr
   r   r   r   r   r   r   r   r   r   r   r   torchgen.utilsr   collections.abcr   r/   r   intr]   r^   floatrh   DeviceIndexLayoutMemoryFormat
ScalarType	Generatorr.   r1   r0   r5   rO   rX   rr   rs   r   r   r   r   r   r   r   r   r   r   r   rY   rJ   <module>r      s   "  !   2 I 8    $ ( MM%
KK
JJ	
MM9
MM8
LL(
JJ
	
MM9

y
+   MM<
KK
JJ	
MM=
MM=
LL(
JJ"
*
MM=
,
(
o   MM2
KK
JJ
MM2
MM2
LL"
JJ
7
MM-
9
5
> ( tK	tK
tK tK 7	tKnA
?"-;b MO I N)#)#$')#7:)#)#X	+  III 	I#
#@# # 5	#
 # #L
@  5	
  " 
 @    5	 
      F $  < A
.A
@A
 A
 5	A

 A
 A
 A
 	A
rY   