o
    h	                     @   s>   d dl mZ d dlmZmZ d dlmZ eG dd dZdS )    )	dataclass)ListAny)validate_block_shapec                   @   s\   e Zd ZU eed< ee ed< ee ed< ee ed< dd Zededee fdd	Z	d
S )TensorDescriptorbaseshapestridesblock_shapec                 C   s   t | j}t | j|ksJ d|  t | j|ks!J d|  |dks)J d|dks1J dt| j}|j d|j }|dvrP| j d dksPJ d	t	| j | jj
j}| jd d
 D ]}|| d dksoJ dqa| jd
 dks{J dd S )Nzrank mismatch: r   zrank must not be zero   zrank cannot be more than 5.)ztorch.FakeTensorztorch.FunctionalTensor   zbase must be 16-byte alignedzstrides must be 16-byte aligned   z!Last dimension must be contiguous)lenr   r	   r
   typer   
__module____name__Zdata_ptrr   Zdtypeitemsize)selfZrankty	type_nameZ
elem_bytesstride r   d/home/www/facesmatcher.com/frenv_anti/lib/python3.10/site-packages/triton/tools/tensor_descriptor.py__post_init__   s   



zTensorDescriptor.__post_init__tensorc                 C   s   t | | j|  |S )N)r   r   r   )r   r
   r   r   r   from_tensor   s   zTensorDescriptor.from_tensorN)
r   r   __qualname__r   __annotations__r   intr   staticmethodr   r   r   r   r   r      s   
 r   N)dataclassesr   typingr   r   Ztriton._utilsr   r   r   r   r   r   <module>   s
    