
    Ji                     d    S SK Jr  S SKJrJr  S SKJrJrJr  S SK	J
r
  S/r\ " S S5      5       rg)    )	dataclass)ListAny)validate_block_shapecanonicalize_dtypeget_primitive_bitwidth)NVMMASharedLayoutTensorDescriptorc                       \ rS rSr% \\S'   \\   \S'   \\   \S'   \\   \S'   \\S'   Sr	\
\S'   S	 r\SS
\S\\   S\4S jj5       rSrg)r
   	   baseshapestridesblock_shapelayoutzeropaddingc                    [        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                  R                  5       S-  S:X  d   S5       e[        U R                  5        [        U R                  R                  5      n[        U5      S-  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                  [        5      (       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g g )Nzrank mismatch: r   zrank must not be zero   zrank cannot be more than 5   zbase must be 16-byte aligned   zstrides must be 16-byte alignedzshape must be positive   z!Last dimension must be contiguousz Layout must be NVMMASharedLayoutr   nanzIllegal value for paddingzAPadding option `nan` is only supported for floating point tensors)lenr   r   r   r   data_ptrr   r   dtyper   
isinstancer   r	   r   is_floating_point)selfrank	dtype_str
elem_bytesstride	shape_dims         i/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/triton/experimental/gluon/nvidia/hopper.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yy!!#b(A-M/MM-T--.&tyy7	+I6!;
ll3B'F'2-2U4UU2 (Iq=:"::= $||B1$I&II$$++'899];]]9||v%)>[@[[><<5 99??44y6yy4 !    tensorc                 R    [        U U R                  U R                  5       UUU5      $ )N)r
   r   r$   )r*   r   r   r   s       r&   from_tensorTensorDescriptor.from_tensor&   s+    LLMMO
 	
r)    N)r   )__name__
__module____qualname____firstlineno__r   __annotations__r   intr	   r   strr'   staticmethodr,   __static_attributes__r.   r)   r&   r
   r
   	   si    
I9#YcGSz( 
C 
d3i 
AR 
 
r)   N)dataclassesr   typingr   r   triton._utilsr   r   r   +triton.experimental.gluon.language._layoutsr	   __all__r
   r.   r)   r&   <module>r=      s5    !  Z Z I
 %
 %
 %
r)   