
    Ph                         d dl mZmZ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	eeef   d
edefdZdeeeef      d
edeeef   fdZdeeeef      defdZy)    )DictListUnionN   )config)instance_descriptor)V   )SizeArg	TensorArgarg
size_dtypereturnc                B   ddl m} t        | t              r| j                  t
        j                  k(  rd}n;| j                  t
        j                  k(  rd}n|j                  | j                        }t        j                  j                  | j                        r|j                  d      }|dv ry|S |S t        | t              rB| j                  yt        | j                  t               ry|d	k(  ry
|dk(  ryt#        d|       t#        dt%        |        d|        )Nr   )JITFunctionz*fp8e4nvz*fp8e5*)fp16bf16fp32z*i8ztl.int32i32ztl.int64i64zunhandled size_dtype 
unhandled : )triton.runtime.jitr   
isinstancer   dtypetorchfloat8_e4m3fnfloat8_e5m2_type_ofr	   graphis_unspec_argbufferlstripr   exprfloatNotImplementedErrortype)r   r   r   tyenew_tyes        oC:\Users\daisl\Desktop\realtime-object-detection\venv\Lib\site-packages\torch/_inductor/codegen/triton_utils.pysignature_ofr,      s    .#y! 99+++CYY%+++C&&syy1C77  ,jjoG**J#w88 %(#:%%(=j\&JKK

49+Ru=
>>    	signaturec          	      b    t        |       D ci c]  \  }}|t        ||       c}}S c c}}w )N)r   )	enumerater,   )r.   r   ir   s       r+   signature_to_metar2   0   s=     CLIBVBV3<
33BV  s   +argsc                     dt         t        t        f   dt        dt        dt        fdt
        j                  j                  rt        fdt        |       D              }nd}t        fdt        |       D              }t        |dd|      S )	Nx	alignmentinclude_tensorr   c                    t        | t              rD| j                  sy|r4t        j                  j
                  j                  | j                         S yt        | t              rx| j                  j                  d      ry| j                  yt        | j                  t              ryt        j                  j                  j                  | j                  |      S t        dt!        |        d|        )z
        Roughly follow triton code here:
        https://github.com/openai/triton/blob/5282ed890d453e10b9ee30076ef89115dd197761/python/triton/runtime/jit.py#L208-L222
        Fload_seed_offsetr   r   )r   r   check_alignmentr	   r!   	scheduleris_unaligned_bufferr#   r   name
startswithr%   r&   sizevarsstatically_known_multiple_ofr'   r(   )r5   r6   r7   s      r+   
is_alignedzconfig_of.<locals>.is_aligned9   s     a#$$77,,@@JJJa! vv  !34vv~!&&%(77##@@SS!JtAwir!"=>>r-   c              3   >   K   | ]  \  }} |d d      r|  yw)   Tr6   r7   N .0r1   r   rA   s      r+   	<genexpr>zconfig_of.<locals>.<genexpr>T   s)       
)3#DA )   rE   c              3   >   K   | ]  \  }} |d d      r|  yw)   FrD   NrE   rF   s      r+   rH   zconfig_of.<locals>.<genexpr>[   s)      %FAscQu= 	
%rI   )r   r   r   intboolr   tritondivisible_by_16tupler0   r   )r3   rO   divisible_by_8rA   s      @r+   	config_ofrR   8   s    ?G#$?14?FJ?	?4 }}$$  
#D/ 
 
  o N
 BGGr-   )typingr   r   r   r    r   utilsr   virtualizedr	   commonr   r   strr,   rL   r2   rR   rE   r-   r+   <module>rY      s    $ $   '  &"?eIw./ "? "? "?JE)W,-.?B	#s(^(HDy'123 (H8K (Hr-   