
    shw                    n   S SK Jr  S SKrS SKrS SKrS SKJrJr  S SKJrJ	r	  S SK
Jr  SSSSS	S
.rSr " S S\5      r " S S\5      r\" 5       (       at  S SKrS SKrS SKr\" \R(                  R*                  S5      (       a  S SKJr    S$S jrON\" \R*                  R*                  S5      (       a  S SKJr    S$S jrO  S$S jrO\R0                  " SSS/SS/S9rSr " S S\5      r " S S\5      r " S S\R8                  5      r " S  S!\R8                  5      r " S" S#\R8                  5      rg)%    )annotationsN)autoEnum)OptionalUnion)has_triton_packagei   i   i   i   )XYZR0_R1_@   c                  $    \ rS rSrSrSrSrSrSrg)ReductionHint   r             N)	__name__
__module____qualname____firstlineno__INNEROUTER
OUTER_TINYDEFAULT__static_attributes__r       q/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/torch/_inductor/runtime/hints.pyr   r      s    EEJGr   r   c                      \ rS rSrSrSrSrg)TileHint    r   r   r   N)r   r   r   r   SQUAREr   r   r   r   r    r"   r"       s    FGr   r"   AttrsDescriptorr%   c                    U US.n[         R                  " U[         R                  S.5      nUR                  S   S:X  d   eUR                  S   S:X  d   eU$ )N)tt.divisibilitytt.equal_to)arg_propertiesclsr(      r)   r   )r%   	from_dictr   property_values)divisible_by_16
equal_to_1kwargsress       r    AttrsDescriptorWrapperr3   /   sk     $3)F "++#)/2J2JKC &&'89R???&&}5:::Jr   c                "    U US.n[        S0 UD6$ )N)r/   r0   r   r&   )r/   r0   r1   s      r    r3   r3   E   s!     $3(F #,V,,r   c                :    U  Vs0 s H	  o"4SS//_M     sn$ s  snf )Nr(   r,   r   )r/   r0   xs      r    r3   r3   X   s+     >MM_D-r233_MMMs   r/   r0   r   )defaultsr#   c                  v    \ rS rSr\" 5       r\" 5       r\" 5       r\" 5       r\" 5       r	\" 5       r
\" 5       rSrg)HeuristicTypej   r   N)r   r   r   r   r   PERSISTENT_REDUCTION	POINTWISE	REDUCTION
SPLIT_SCANTEMPLATEUSER_AUTOTUNEFIXEDr   r   r   r    r9   r9   j   s4    6IIJvHFMFEr   r9   c                  0    \ rS rSrSr\R                  rSrg)AutotuneHintt   r   r   N)	r   r   r   r   ONE_ELEMENT_PER_THREADr   __str____repr__r   r   r   r    rC   rC   t   s     ||Hr   rC   c                      \ rS rSr% SrS\S'   S\S'   S\S'   S\S'   S	rS
\S'   S	rS
\S'   S	rS
\S'   S	r	S
\S'   \
\R                  " S	5      SS j5       5       rSrg	)DeviceProperties~   zOCopy device properties into a data structure not requiring torch to be importedstrtypeintindexmulti_processor_countccNOptional[int]majorregs_per_multiprocessormax_threads_per_multi_processor	warp_sizec                   SS K nSSKJn  UR                  nUR                  R
                  (       a  US:X  a  SnU" U5      nUR                  U5      n UR                  nU " UUR                  UUR                  U5      [        USS 5      [        US	S 5      [        US
S 5      [        USUS:w  a  S5      S9$ S 5      S9$ ! [         a     US:X  a  UR                  n N~US:X  a  Sn Ne f = f)Nr   )get_interface_for_devicecudahipxpumps   rR   rS   rT   rU   cpur#   )rL   rN   rO   rP   rR   rS   rT   rU   )torchtorch._dynamo.device_interfacerW   rL   versionrY   get_device_propertiesrO   AttributeErrorgpu_subslice_countrN   get_compute_capabilitygetattr)r+   devicer^   rW   device_typedevice_interfacepropsrO   s           r    createDeviceProperties.create   s
    	Kkk==!6K3F; 66v>		$)$?$?! ,,"766v>%$/$+E3Ld$S,38$- e[u8L"W
 	
 SWW
 	
  	e#(-(@(@%%()%	s   C   C*C*(C*r   )returnrI   )r   r   r   r   __doc____annotations__rR   rS   rT   rU   classmethod	functools	lru_cacherj   r   r   r   r    rI   rI   ~   si    Y
IJGE=-1]159#]9#I}# 
   
r   rI   c                      \ rS rSr% S\S'   S\S'   SrS\S'   SrS\S'   SrS	\S
'   SrS	\S'   SS jr	SS jr
SS jrSS jrSrg)HalideInputSpec   rK   ctypenameNzOptional[list[str]]shapestrideOptional[str]offsetalias_ofc                <    U R                   S;   a  gU R                   $ )N)half*	bfloat16*z	uint16_t*)ru   selfs    r    bindings_typeHalideInputSpec.bindings_type   s    :://zzr   c                    U R                   S:X  a  gU R                   S:X  a  gSU R                   R                  SS5       S3$ )	Nr}   z$halide_type_t(halide_type_float, 16)r~   z%halide_type_t(halide_type_bfloat, 16)zhalide_type_of<* z>())ru   replacer   s    r    halide_typeHalideInputSpec.halide_type   sA    :: 9::$: !3!3C!< =SAAr   c                    U R                   S L $ Nrw   r   s    r    	is_scalarHalideInputSpec.is_scalar   s    zzT!!r   c                    U R                   S L$ r   r   r   s    r    	is_bufferHalideInputSpec.is_buffer   s    zz%%r   r   )rl   rK   rl   bool)r   r   r   r   rn   rw   rx   rz   r{   r   r   r   r   r   r   r   r    rs   rs      sK    J
I!%E%"&F& FM "Hm"
B"&r   rs   c                  h    \ rS rSr% S\S'   S\S'   SrS\S'   SrS	\S
'   SrS\S'   SS jrSS jr	Sr
g)
HalideMeta   zlist[HalideInputSpec]argtypesrK   targetNry   	schedulerz$Optional[dict[str, Union[int, str]]]scheduler_flagsrQ   cuda_devicec                @   SU R                    3/nU R                  (       a  UR                  SU R                   35        U R                  (       aM  U R                  (       d   eU R                  R	                  5        H  u  p#UR                  SU SU 35        M     U$ )z-Command line args to pass to halide generatorztarget=zautoscheduler=zautoscheduler.=)r   r   appendr   items)r   argskvs       r    r   HalideMeta.args   s    $++'(>>KK.(89:>>!>,,224nQCq45 5r   c                    U R                   S L$ r   )r   r   s    r    is_cudaHalideMeta.is_cuda   s    t++r   r   )rl   z	list[str]r   )r   r   r   r   rn   r   r   r   r   r   r   r   r   r    r   r      s6    ##K#I}#<@O9@!%K%	,r   r   )NN) 
__future__r   collectionsrp   typingenumr   r   r   r   torch.utils._tritonr   TRITON_MAX_BLOCKTRITON_MAX_RSPLITr   r"   tritontriton.backends.compilertriton.compiler.compilerhasattrbackendscompilerr%   r3   
namedtuple_NUM_THREADS_PER_WARPr9   rC   
NamedTuplerI   rs   r   r   r   r    <module>r      sC   "     " 2 
		   D t  ##v''):;;< !	$ 
))+<	=	=< !	-( !	N )33	L)b  D 4 .
v(( .
b&f'' &6,"" ,r   