Ë
    -¼ˆiÕ  ã                   ó`   — d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 dgZ
e G d„ d«      «       Zy)é    )Ú	dataclass)ÚListÚAny)Úvalidate_block_shape)ÚPaddedSharedLayoutÚSwizzledSharedLayoutÚTensorDescriptorc                   ó–   — e Zd ZU eed<   ee   ed<   ee   ed<   ee   ed<   eez  ed<   dZ	e
ed<   d„ Zed	edee   deez  fd
„«       Zy)r	   ÚbaseÚshapeÚstridesÚblock_shapeÚlayoutÚzeroÚpaddingc                 óx  — t        | j                  «      }|dk(  sJ d|› d«       ‚t        | j                  «      |k(  s J d|› dt        | j                  «      › «       ‚t        | j                  «      |k(  s J d|› dt        | j                  «      › «       ‚t	        | j                  «       | j                  d   d	k(  sJ d
«       ‚t        | j                  t        t        f«      sJ d«       ‚t        | j                  t        «      r | j                  j                  d	k(  sJ d«       ‚| j                  dk(  sJ d«       ‚y )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     úo/home/obispo/Crisostomo_bridge/mision_env/lib/python3.12/site-packages/triton/experimental/gluon/amd/gfx1250.pyÚ__post_init__zTensorDescriptor.__post_init__   s5  € Ü4—:‘:‹ˆàqŠyÐLÐ:¸4¸&ÀÐLÓLˆyÜ4—<‘<Ó  DÒ(Ð`¨I°d°VÐ;LÌSÐQU×Q]ÑQ]ÓM^ÐL_Ð*`Ó`Ð(Ü4×#Ñ#Ó$¨Ò,ð 	ZØ+¨D¨6Ð1EÄcÈ$Ï,É,ÓFWÐEXÐYó	ZÐ,ä˜T×-Ñ-Ô.Ø|‰|˜BÑ 1Ò$ÐIÐ&IÓIÐ$Ü˜$Ÿ+™+Ô(:Ô<PÐ'QÔRð 	QØPó	QÐRäd—k‘kÔ#7Ô8Ø—;‘;×(Ñ(¨AÒ-ÐdÐ/dÓdÐ-Ø|‰|˜vÒ%ÐIÐ'IÓIÑ%ó    Útensorc                 óP   — t        | | j                  | j                  «       ||«      S )a‚   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_tensorzTensorDescriptor.from_tensor!   s"   € ô   ¨¯©°f·m±m³oÀ{ÐTZÓ[Ð[r   N)Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__r   Úintr   r   r   Ústrr   Ústaticmethodr!   © r   r   r	   r	   	   sz   … à
ƒIØ‰9ÓØ#‰YÓØc‘ÓØÐ!5Ñ5Ó5Ø€GˆSÓòJð ð\˜Cð \¨d°3©ið \ÐASÐVjÑAjò \ó ñ\r   N)Údataclassesr   Útypingr   r   Útriton._utilsr   Ú+triton.experimental.gluon.language._layoutsr   r   Ú__all__r	   r)   r   r   ú<module>r/      s5   ðÝ !ß Ý .ß `àÐ
€ð ÷$\ð $\ó ñ$\r   