
    9i%                     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                 Z   [        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                  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 aligned   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strides        g/var/www/html/land-doc-ocr/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 (||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(   