
    3jA                     N    S SK Jr  S SKJrJr  S SKJrJr  \ " S S5      5       rg)    )	dataclass)ListAny)validate_block_shapecanonicalize_dtypec                       \ rS rSr% \\S'   \\   \S'   \\   \S'   \\   \S'   Sr\	\S'   Sr
\\S	'   S
 r\SS\S\\   4S jj5       rSrg)TensorDescriptor   baseshapestridesblock_shapezeropaddingFround_f32_to_tf32c                    [        U R                  5      n[        U R                  5      U:X  d
   SU  35       e[        U R                  5      U:X  d
   SU  35       eUS:  d   S5       eUS::  d   S5       e[	        U R
                  5      nUR                  S;  a(  U R
                  R                  5       S-  S:X  d   S5       e[        U R                  5        U R
                  R                  R                  nU R                  S S	  H  nXC-  S-  S:X  a  M   S
5       e   U R                   H  nUS:  a  M   S5       e   U R                  S	   S:X  d   S5       eU R                  S:X  d  U R                  S:X  d   S5       eU R                  S:X  a,  U R
                  R                  R                  (       d   S5       eU R                  (       a-  [        U R
                  R                  5      nUS:X  d   S5       eg g )Nzrank mismatch: r   zrank must not be zero   zrank cannot be more than 5)
FakeTensorFunctionalTensor   zbase must be 16-byte alignedzstrides must be 16-byte alignedzshape must be positive   z!Last dimension must be contiguousr   nanzIllegal value for paddingzAPadding option `nan` is only supported for floating point tensorsfp32z7round_f32_to_tf32 is only supported for float32 tensors)lenr   r   r   typer   __name__data_ptrr   dtypeitemsizer   is_floating_pointr   r   )selfrankty
elem_bytesstride	shape_dim
dtype_names          X/home/wildlama/miniconda3/lib/python3.13/site-packages/triton/tools/tensor_descriptor.py__post_init__TensorDescriptor.__post_init__   s   4::4<< D(BOD6*BB(4##$,Fv.FF,ax000xqy666y$))_;;@@99%%'",1Q3QQ1T--.YY__--
ll3B'F'2-2U4UU2 (Iq=:"::= $||B1$I&II$||v%)>[@[[><<5 99??44y6yy4!!+DIIOO<J'b)bb' "    tensorc                 N    [        X R                  U R                  5       XU5      $ )N)r	   r   r&   )r-   r   r   r   s       r)   from_tensorTensorDescriptor.from_tensor&   s    fmmo{]noor,    N)r   F)r   
__module____qualname____firstlineno__r   __annotations__r   intr   strr   boolr*   staticmethodr/   __static_attributes__r1   r,   r)   r	   r	      sj    
I9#YcGS#t#c. pC pd3i p pr,   r	   N)	dataclassesr   typingr   r   triton._utilsr   r   r	   r1   r,   r)   <module>r>      s*    !  B !p !p !pr,   