o
    h                     @   sR   d dl Z d dlmZ d dlZd dlmZ d dlmZ dae j	dd Z
dd ZdS )	    N)Sequence)	custom_op)ContentStoreReaderc                 c   s2    t d u sJ t| dda zd V  W d a d S d a w )NF)cache)LOAD_TENSOR_READERr   )loc r   N/var/www/html/ai/venv/lib/python3.10/site-packages/torch/_prims/debug_prims.pyload_tensor_reader   s   r
   c                  C   sL   t ddtdtt dtt dtjdtjdtjfdd	} |  d
d }d S )Nzdebugprims::load_tensornamesizestridedtypedevicereturnc                S   s   d S )Nr   )r   r   r   r   r   r   r   r	   load_tensor   s   	z)register_debug_prims.<locals>.load_tensorc                 S   s   t d u rddlm} |||||S ddlm} t j| |d}t| |ks1J |  d| t| |ksDJ |  d| |j	|ksSJ |j	 d| |j
|kr^|||d}|S )Nr   )rand_strided)clone_input)r   z != )r   )r   torch._dynamo.testingr   torch._dynamo.utilsr   read_tensorlistr   r   r   r   )r   r   r   r   r   r   r   rr   r   r	   load_tensor_factory(   s   &&
z1register_debug_prims.<locals>.load_tensor_factory)	r   strr   inttorchr   r   Tensorimpl_factory)r   r   r   r   r	   register_debug_prims   s    
r   )
contextlibtypingr   r   torch._custom_op.implr   torch.utils._content_storer   r   contextmanagerr
   r   r   r   r   r	   <module>   s    
