
    Ji                     `    S SK Jr  S SKJrJr  S SKJr  S SKJrJ	r	  S/r
\ " S S5      5       rg)    )	dataclass)ListAny)validate_block_shape)PaddedSharedLayoutSwizzledSharedLayoutTensorDescriptorc                       \ rS rSr% \\S'   \\   \S'   \\   \S'   \\   \S'   \\	-  \S'   Sr
\\S'   S	 r\S
\S\\   S\\	-  4S j5       rSrg)r	   	   baseshapestridesblock_shapelayoutzeropaddingc                    [        U R                  5      nUS:X  d   SU S35       e[        U R                  5      U:X  d    SU S[        U R                  5       35       e[        U R                  5      U:X  d    SU S[        U R                  5       35       e[	        U R                  5        U R                  S   S	:X  d   S
5       e[        U R                  [        [        45      (       d   S5       e[        U R                  [        5      (       a!  U R                  R                  S	:X  d   S5       eU R                  S:X  d   S5       eg )N   zExpected 2 dimensions but got z dimensionsz	Expected z strides but got zExpected block_shape to have z dimensions but got    z!Last dimension must be contiguouszBExpected layout to be a PaddedSharedLayout or SwizzledSharedLayoutz3Expected max_phase to be 1 for SwizzledSharedLayoutr   z Only 'zero' padding is supported)lenr   r   r   r   
isinstancer   r   r   	max_phaser   )selfndims     g/var/www/html/dynamic-report/venv/lib/python3.13/site-packages/triton/experimental/gluon/amd/gfx1250.py__post_init__TensorDescriptor.__post_init__   s;   4::qyL:4&LLy4<< D(`IdV;LSQUQ]Q]M^L_*``(4##$, 	Z+D61Ec$,,FWEXY	Z,T--.||B1$I&II$$++(:<P'QRR 	QP	QRdkk#788;;((A-d/dd-||v%I'II%    tensorc                 L    [        X R                  U R                  5       X5      $ )aI  Create a TensorDescriptor object from a tensor.

Args:
    tensor (torch.Tensor): The input tensor.
    block_shape (List[int]): The block shape of the tensor.
    layout (PaddedSharedLayout | SwizzledSharedLayout): The layout of the tensor in shared memory.

Returns:
    tensor_descriptor: the created TensorDescriptor object

)r	   r   stride)r    r   r   s      r   from_tensorTensorDescriptor.from_tensor!   s      fmmo{[[r    N)__name__
__module____qualname____firstlineno__r   __annotations__r   intr   r   r   strr   staticmethodr#   __static_attributes__r%   r   r   r	   r	   	   sz    
I9#Yc!555GSJ \C \d3i \ASVjAj \ \r   N)dataclassesr   typingr   r   triton._utilsr   +triton.experimental.gluon.language._layoutsr   r   __all__r	   r%   r   r   <module>r4      s5    !  . `
 $\ $\ $\r   