
    iJ                        d Z ddl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mZmZmZmZmZmZmZmZ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&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^m_Z_m`Z`maZambZbmcZcmdZdmeZemfZfmgZgmhZhmiZimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZsmtZtmuZu ddlmvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZmZmZmZmZmZmZmZ ddlmZmZmZmZmZmZmZmZmZmZ ddlmZ g d	Zd
 ZdS )zisort:skip_file   )math)extra)argmaxargminbitonic_mergecdivcumprodcumsumflip
interleavemaxminravel	reduce_orsigmoidsoftmaxsortsum	swizzle2dtopkxor_sumzeros
zeros_like)[PropagateNanTRITON_MAX_TENSOR_NUMELload_tensor_descriptorstore_tensor_descriptormake_tensor_descriptortensor_descriptortensor_descriptor_typeaddadvancearangeassociative_scanassume
atomic_add
atomic_and
atomic_cas
atomic_max
atomic_min	atomic_oratomic_xchg
atomic_xorbfloat16
block_type	broadcastbroadcast_tocatcastclamp	conditionconst	constexprconstexpr_typedebug_barrierdevice_assertdevice_printdot
dot_scaleddtypeexpand_dimsfloat16float32float64float8e4b15
float8e4nv
float8e4b8float8e5float8e5b16fullgather	histograminline_asm_elementwiseint1int16int32int64int8joinloadmake_block_ptrmap_elementwisemax_constancymax_contiguousmaximumminimummulmultiple_ofnum_programspermutepi32_tpointer_type
program_idrangereducereshapeslicesplitstatic_assertstatic_printstatic_rangestoresubtensortranstuple
tuple_typeuint16uint32uint64uint8viewvoidwhere)umulhiexpexp2fmaloglog2cosrsqrtsinsqrtsqrt_rnabsfdivdiv_rnerffloorceil)
pair_uniform_to_normalphiloxphilox_implrandrand4xrandint	randint4xrandnrandn4xuint_to_uniform_float)target_info)r   r   r   r   r   r   r   r!   r"   r#   r   r   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r   r/   r0   r1   r2   r3   r   r   r4   r5   r6   r7   r8   r{   r	   r
   r9   r:   r;   r   r<   r=   r>   r   rv   rw   r?   r   r   r   r@   rA   rB   rC   rD   rE   rF   rG   r   rx   rH   rI   rJ   rK   r   rL   rM   rN   rO   rP   rQ   rR   ry   rz   rS   rT   r   r   rU   rV   rW   r   rX   rY   rZ   r[   r   r\   r   r   r]   r^   r_   r   r   r   r   r   r   r`   r   ra   r   rb   r|   rc   r   r}   r   r   rd   r~   r   re   rf   rg   rh   ri   r   r   r   rj   r   rk   rl   rn   ro   rp   rq   r   ru   rr   rs   rt   r   r   r   c                 4   ddl m} t          | |          rDt          |           j                            dd           }t          fd| D             |          S | d         dk    rE| dd          } d}| d         dk    r| dd          } d	}t          |           }t          ||
          S | 	                    d          r| 
                    d          d                             d          }|
                    dd          \  }}|
                    dd          \  }	}d |	                    d          
                    d          D             }	|                    d          }
t          |
          }t          |d           }t          |	          }t          t          g|z            }t          t          g|z            }t!          ||	          }|rbddlm}m}m} ddlm} ddlm} t1          |
t3          |||                    }
t          |
|          r |||||
          S  |||||
          S t-          |||          S | 	                    d          rt5                    S i dt6          dt8          dt:          dt<          dt>          dt@          dtB          dtD          dtF          dtH          d tJ          d!tL          d"t          d#t          d$tH          d%tN          d&tP          tR          tT          tH          d'}||          S )(N    )rl   _fieldsc                 0    g | ]}t          |          S  )	str_to_ty).0xcs     K/var/www/icac/venv/lib/python3.11/site-packages/triton/language/__init__.py
<listcomp>zstr_to_ty.<locals>.<listcomp>  s!    999q9Q??999    *r   FkT)
element_tyr6   
tensordesc<>[)maxsplit]c                 P    g | ]#}t          |                                          $S r   )intstrip)r   ss     r   r   zstr_to_ty.<locals>.<listcomp>.  s&    RRR!s17799~~RRRr   ,)NVMMASharedLayoutPaddedSharedLayoutSwizzledSharedLayout)r    r7   fp8e4nvfp8e4b8fp8e5fp8e5b16fp8e4b15fp16bf16fp32fp64i1i8i16i32i64u1u8u16)u32u64B)+builtinsrl   
isinstancetype__dict__getrm   r   r^   
startswithrd   rstriplstriplenrN   rO   r/   +triton.experimental.gluon.language._layoutsr   r   r   4triton.experimental.gluon.language.nvidia.hopper.tmar    2triton.experimental.gluon.language.amd.gfx1250.tdmevaldictr8   rD   rE   rF   rG   rC   r@   r.   rA   rB   rL   rP   rM   rq   rn   ro   rp   )namer   rl   fieldsr6   tyinnerr>   restblock_shapelayoutis_gluonndim
shape_typestride_typeblockr   r   r   nvidia_tensor_descriptor_typeamd_tensor_descriptor_typetyss    `                    r   r   r     s   $ Cd$((D999999D9996BBBAw#~~ABBx7c>>8DEtQr7777|$$ F

3"))#..kk#k22t JJsQJ77TRR{/A/A#/F/F/L/LS/Q/QRRRS!!v;;%&&;$//
 5'D.225+.. 	Z E  E  E  E  E  E'8M_*>@ @ @A AF &"344 Z44UJU[\\\11%[RXYYY%eZEEE{## !a   :: 	 	K	
 	K 	 	 	 	 	d 	d 	u 	u 	u 	d  	e!" 	v#$ )  C, t9r   N)__doc__ r   r   standardr   r   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   corer   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   r   r   r   r   r   r   r   randomr   r   r   r   r   r   r   r   r   r   r   __all__r   r   r   r   <module>r      s                                                             .\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \z                                                                  M M M`D D D D Dr   