
    -`i{                        d dl Z d dlmZmZ d dlmZ d dlmZ d dlm	Z	m
Z
 d dlmZ dej        ded	efd
Zdej        de	d	efdZdeej                 de	d	ej        dz  fdZdeej                 de	d	ej        fdZdeej                 de	d	ej        dz  fdZdeej                 de	d	ej        fdZdej        ded	ej        dz  fdZdej        ded	ej        fdZde	e
z  dej        d	eej                 fdZdej        d	ej        fdZdS )    N)IterableIterator)fx)auto_functionalized)
OpOverloadOpOverloadPacket)Targetnodetargetreturnc                 H    t          | j        dk    o
| j        |k              S )Ncall_function)boolopr   )r
   r   s     m/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/vllm/compilation/fx_utils.pyis_funcr      s#    ?*Dt{f/DEEE    r   c                 N    t          | t                    o| j        d         |k    S Nr   r   r   args)r
   r   s     r   is_auto_funcr      s#    4,--D$)A,"2DDr   nodesc                 .    | D ]}|j         |k    r|c S d S )N)r   r   r   r
   s      r   find_specified_fn_mayber      s1      ;"KKK 4r   c                 J    t          | |          }|J d| d|              |S NzCould not find z
 in nodes )r   r   s      r   find_specified_fnr      s;    "5"--DDrDDUDDKr   c                 d    | D ],}t          |t                    r|j        d         |k    r|c S -d S r   r   r   s      r   find_auto_fn_mayber!   %   sC      4,-- 	$)A,"2D2DKKK4r   c                 J    t          | |          }|J d| d|              |S r   )r!   r   s      r   find_auto_fnr#   -   s;    eR((DDrDDUDDKr   idxc                 x    | j         D ]1}t          |t          j                  r|j        d         |k    r|c S 2d S N   )usersr   operatorgetitemr   )r
   r$   users      r   find_getitem_mayber,   5   sG    
  4)** 	ty|s/B/BKKK4r   c                 J    t          | |          }|J d| d|              |S )NzCould not find getitem z	 in node )r,   )r
   r$   rets      r   find_getitemr/   =   s6    
T3
'
'C??JcJJDJJ???Jr   graphc              #     K   t          | t                    r?|                                 D ](}t          | |          }t	          ||          E d {V  )d S t          | t
                    sJ |                    d|           E d {V  |                    dt                    D ]}|j        d         | k    r|V  d S )Nr   )r   r   r   )	
isinstancer   	overloadsgetattrfind_op_nodesr   
find_nodesr   r   )r   r0   overloadoverload_opns        r   r5   r5   E   s       "&''  	9 	9H!"h//K$[%8888888888b*%%%%%?2>>>>>>>>>9LMM  6!9??GGG r   c                 x    t          | j                  dk    sJ t          t          | j                            S r&   )lenr(   nextiter)r
   s    r   get_only_userr>   Z   s3    tz??aTZ  !!!r   )r)   collections.abcr   r   torchr   *torch._higher_order_ops.auto_functionalizer   
torch._opsr   r   torch.fx.noder	   Noder   r   r   r   r   r!   r#   intr,   r/   Graphr5   r>    r   r   <module>rH      st    . . . . . . . .       J J J J J J 3 3 3 3 3 3 3 3            F"' F6 Fd F F F FErw EJ E4 E E E E
8BG#4 * SW    Xbg. J 27    hrw/ Z BGdN    ) z bg    RW 3 27T>    rw S RW    %%.0hbg   *" "BG " " " " " "r   