o
    ÁÙ¾i9  ã                   @   sø   d dl Z de jdededede jf
dd„Zde jd	e jded
ede jf
dd„Zde jd	e jded
ede jf
dd„Zde jde jde jde jde jded
ededede jfdd„Zde jde jde jdeded
edede jfdd„Zdedefdd„Z	dS )é    NÚweightÚ
quant_typeÚMÚNÚdtypec                 C   s0   |dkr|dksJ dƒ‚t jjj | ||||¡S )Nr   z6GGUF weight Input shape must be of positive dimensions)ÚtorchÚopsÚ
sgl_kernelÚggml_dequantizeÚdefault)r   r   r   r   r   © r   úP/home/ubuntu/.local/lib/python3.10/site-packages/sgl_kernel/quantization/gguf.pyr
      s   r
   ÚxÚrowÚreturnc                 C   ó   t jjj | |||¡S ©N)r   r   r	   Úggml_mul_mat_vec_a8r   ©r   r   r   r   r   r   r   r      ó   r   c                 C   r   r   )r   r   r	   Úggml_mul_mat_a8r   r   r   r   r   r      r   r   ÚinputÚsorted_token_idsÚ
expert_idsÚnum_token_post_paddedÚtypeÚtopkÚtokensc	           	      C   s    t jjj | ||||||||¡	S r   )r   r   r	   Úggml_moe_a8r   )	r   r   r   r   r   r   r   r   r   r   r   r   r      s   
÷r   Útopk_idsÚtop_kc              	   C   s   t jjj | ||||||¡S r   )r   r   r	   Úggml_moe_a8_vecr   )r   r   r   r    r   r   r   r   r   r   r!   /   s   
	ÿr!   c                 C   s   t jjj | ¡S r   )r   r   r	   Úggml_moe_get_block_sizer   )r   r   r   r   r"   =   s   r"   )
r   ÚTensorÚintr   r
   r   r   r   r!   r"   r   r   r   r   Ú<module>   s’    ÿÿÿÿ
ÿÿÿÿÿ
þÿÿÿÿ
þÿþýüûúùø	÷

öÿþýüûúù
ø