o
    c۷i                  
   @   s   d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZdej	_
ejejejejejejejejejd	Zdd Zdd Zd	d
 Zdd ZedkrPe  dS dS )    N)FakeTensorModeT)	ztorch.float16ztorch.bfloat16ztorch.float32ztorch.float64ztorch.int32ztorch.int64z
torch.int8ztorch.uint8z
torch.boolc                 C   s.   | d }| d }t | d  }tj|||ddS )Nshapestridedtypecuda)r   device)
_dtype_maptorchempty_strided)metar   r   r    r   K/home/ubuntu/vllm_env/lib/python3.10/site-packages/quack/_compile_worker.py_make_fake_tensor    s   r   c                 C   sJ   |  d}t|dk rdS td|d }|dkrdS |  |}t|S )z<Read a length-prefixed pickled message. Returns None on EOF.   N<Ir   )readlenstructunpackpickleloads)streamheaderlengthdatar   r   r   _recv'   s   


r   c                 C   s6   t |}| tdt| | | |   dS )z(Write a length-prefixed pickled message.r   N)r   dumpswriter   packr   flush)r   msgr   r   r   r   _send3   s   

r!   c                  C   sd  t jj} t jj}t|d i }	 t| }|d u rd S |d }|d }||f}||vrFt|}|}|dD ]}	t	||	}q6t	|d|||< || }
|d }|d }|d	 }t
 P g }|D ]}t|trqd
|v rq|t| q^|| q^z|
|i || t|d W n ty } zt|d|  W Y d }~nd }~ww W d    n1 sw   Y  q)NREADYT	fn_modulefn_qualname.fntensor_metakwargsconfig_kwargsr   OKzERR:)sysstdinbufferstdoutr!   r   	importlibimport_modulesplitgetattrr   
isinstancedictappendr   	Exception)r,   r.   fn_cachepayloadr#   r$   fn_keymodobjpartr&   r'   r(   r)   	fake_argsr   er   r   r   main;   sJ   

r?   __main__)r/   r   r   r+   r	   torch._subclasses.fake_tensorr   quack.cache_utilsquackcache_utilsCOMPILE_ONLYfloat16bfloat16float32float64int32int64int8uint8boolr   r   r   r!   r?   __name__r   r   r   r   <module>   s2   *
