
    Pi                        U d dl mZmZ d dlZd dlZd dlmZ ej        j	        Z	i Z
eeef         ed<   d Z ee	j        j        e	j        j        g          dd            Z ee	j        j        g          dd            Z ee	j        j        g          dd            Z ee	j        j        g          dd	            Z ee	j        j        g          dd
            Z ee	j        j        g          dd            ZdS )    )AnyDictN)SwizzleTensorSWIZZLE_OPS_TABLEc                       fd}|S )z)Register aten ops to the swizzle op tablec                 &    D ]}| t           |<   | S N)r   )funcopaten_opss     o/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torchao/swizzle/swizzle_ops.py	decoratorzimplements.<locals>.decorator   s%     	) 	)B$(b!!     )r   r   s   ` r   
implementsr      s$        
 r   c                 \   |d         }|d         }t          j        |          rt          j        |          r|j        dk    r|j        dk    r}d}d}t          |t                    r|                                }d}t          |t                    r|                                }d}t          j                            ||||          }n`t          |t                    r|	                                n|}t          |t                    r|	                                n|} | ||fi |}|S )Nr         FT)
torchis_floating_pointndim
isinstancer   	as_tensortorchaoops
swizzle_mm	unswizzle)aten_opargskwargsaba_is_swizzledb_is_swizzled
tensor_outs           r   r   r      s"   QAQA 	""-#A&&- FaKKFaKKa'' 	!A Ma'' 	!A M[++Aq-OO

'=99@AKKMMMq'=99@AKKMMMqWQ,,V,,
r   c                     |d         }|d         }t          |t                    r|                                n|}t          |t                    r|                                n|} | ||fi |S )Nr   r   r   r   r   )r   r   r    r!   r"   s        r   swizzle_bmmr(   7   sn    QAQA#A}55<1A#A}55<1A71a""6"""r   c                    |d         }|d         }|d         }t          |t                    r|                                n|}t          |t                    r|                                n|} | ||||dd          fi |S )Nr   r   r      r'   )r   r   r    biasr!   r"   s         r   swizzle_addmmr,   A   s    7DQAQA#A}55<1A#A}55<1A74AtABBx226222r   c                    |d         }|d         }|d         }|d         }t          |          dk    rd n|d         }t          |          dk    rd n|d         }t          |          dk    rd n|d         }	d}
d}t          |t                    r|                                }d	}
t          |t                    r|                                }d	}t	          j        j        |||
||||||	f	i |S )
Nr   r   r   r*            FT)lenr   r   r   r   r   swizzle_scaled_mm)r   r   r    r!   r"   scale_ascale_br+   scale_result	out_dtyper#   r$   s               r   r2   r2   K   s
   QAQA1gG1gGt99>>44tAwDt99>>44tAwLD		QDGIMM!]## KKMM!]## KKMM;(		    r   c                     |d         }|d         }t          |          dk    r,|d         dk    r |d         dk    r|                                S  | |                                |          S )Nr   r   r   )r1   shallow_transposer   )r   r   r    tensordimss        r   swizzle_permuter;   k   sk    !WF7D
4yyA~~$q'Q,,47a<<'')))76##%%t,,,r   c                 :    |d         }|                                 S )Nr   )r8   )r   r   r    r9   s       r   swizzle_numpy_Tr=   t   s    !WF##%%%r   r	   )typingr   r   r   torchao.opsr   torchao.swizzle.swizzle_tensorr   r   atenr   __annotations__r   mmdefaultmatmulr   bmmr(   addmmr,   
_scaled_mmr2   permuter;   numpy_Tr=   r   r   r   <module>rK      s                 8 8 8 8 8 8y~$& 4S> & & &   TW_dk1233   434 TX# # #  # TZ !!3 3 3 "!3 T_$%&&   '&> T\!"##- - - $#- T\!"##& & & $#& & &r   