
    h                     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\\   S\4S	 j5       rS
rg)r
   	   baseshapestridesblock_shapelayoutc                    [        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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 NVMMASharedLayout)lenr   r   r   r   data_ptrr   r   dtyper   
isinstancer   r	   )selfrank	dtype_str
elem_bytesstrides        _/var/www/html/shao/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    tensorc                 P    [        U U R                  U R                  5       UU5      $ )N)r
   r   r    )r%   r   r   s      r!   from_tensorTensorDescriptor.from_tensor    s(    LLMMO
 	
r$    N)__name__
__module____qualname____firstlineno__r   __annotations__r   intr	   r"   staticmethodr'   __static_attributes__r)   r$   r!   r
   r
   	   s_    
I9#Yc^ 
C 
d3i 
AR 
 
r$   N)dataclassesr   typingr   r   triton._utilsr   r   r   +triton.experimental.gluon.language._layoutsr	   __all__r
   r)   r$   r!   <module>r7      s5    !  Z Z I
 
 
 
r$   