o
    i                     @   s"  d dl Z d dl mZ d dlmZ e jddZeddD ]OZeede d	d
dedede	de	de	f
ddZ
eede dd
dede	de	dededefddZ
eede dd
dede	de	de	def
ddZ
qeddD ]Zeede dd
deded e	d!e	de	de	fd"dZ
qqdS )#    N)Tensor)impltorchaoIMPL   	   _linear_8bit_act_
bit_weightMetaactivationspacked_weights
group_sizenkc                 C   s:   |   dksJ | j\}}||ksJ tj||| jddS N   metadtypedevicedimshapetorchemptyr   )r   r   r   r   r   mk_ r   I/home/ubuntu/.local/lib/python3.10/site-packages/torchao/csrc_meta_ops.py_   s   
r   _embedding_bitpacked_weight_qvalsnum_embeddingsembedding_dimweight_scalesweight_zerosindicesc                 C   s.   |  dksJ |jd }tj||tjddS Nr   r   r   r   r   r   r   r   float32)r"   r#   r$   r%   r&   r'   num_outr   r   r   r      s   	
_shared_embedding_c                 C   s.   |  dksJ |jd }tj||tjddS r(   r)   )r   r   r   r   r'   r+   r   r   r   r   *   s   
   _linear_groupwise_bit_weight_with_lutscale_group_sizelut_group_sizec                 C   s:   |   dksJ | j\}}||ksJ tj||| jddS r   r   )r   r   r0   r1   r   r   r   r   r   r   r   r   3   s   	
)r   r   torch.libraryr   libraryLibrarytorchao_librangeweight_nbitintr   r   r   r   r   <module>   sb   "