o
    H&i                     @   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   CC:\wamp64\www\opt\env\Lib\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   Ztorch._dynamo.testingr   Ztorch._dynamo.utilsr   Z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   ZTensorZimpl_factory)r   r   r   r   r	   register_debug_prims   s    
r   )
contextlibtypingr   r   Ztorch._custom_op.implr   Ztorch.utils._content_storer   r   contextmanagerr
   r   r   r   r   r	   <module>   s    
