§
    �ŠtjT  ã                   ó$   — d dl Z d„ Zd„ Z	 dd„ZdS )é    Nc                 ó†  — |                       ¦   «         dk    r%t          d|                       ¦   «         › d�¦  «        ‚| j        d         dz  dk    rt          d| j        d         › �¦  «        ‚| j        t          j        k    rt          d| j        › �¦  «        ‚| d d …dd d…f         dz  d	z  | d d …dd d…f         dz  z  S )
Né   úweight must be 2D, got ÚDé   r   z"weight.shape[1] must be even, got úweight.dtype must be int8, got é   é   )ÚdimÚAssertionErrorÚshapeÚdtypeÚtorchÚint8©Úweights    úg/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/quantization/_quantized_conversions.pyÚpack_int4_to_int8r      sÐ   € Ø‡z‚z�|„|�qÒÐÝÐF°v·z²z±|´|ÐFÐFÐFÑGÔGÐGØ„|�A„˜Ñ˜aÒÐÝÐSÀ&Ä,ÈqÄ/ÐSÐSÑTÔTÐTØ„|•u”zÒ!Ð!ÝÐM¸v¼|ÐMÐMÑNÔNÐNØ�A�A�A�q�t˜!�t�GŒ_˜sÑ" qÑ(¨V°A°A°A°q°t¸!°t°G¬_¸sÑ-BÑCÐCó    c                 óp  — |                       ¦   «         dk    r%t          d|                       ¦   «         › d�¦  «        ‚| j        t          j        k    rt          d| j        › �¦  «        ‚t          j        | dz  | dz	  dz  fd¬¦  «                             | j        d         d| j        d	         z  ¦  «        S )
Nr   r   r   r   r	   r
   )r   r   r   )r   r   r   r   r   ÚstackÚviewr   r   s    r   Úunpack_int8_to_int4r      s®   € Ø‡z‚z�|„|�qÒÐÝÐF°v·z²z±|´|ÐFÐFÐFÑGÔGÐGØ„|•u”zÒ!Ð!ÝÐM¸v¼|ÐMÐMÑNÔNÐNÝŒ;˜ ™ v°¡{°cÑ&9Ð:ÀÐBÑBÔB×GÒGØŒ�QŒ˜˜Vœ\¨!œ_Ñ,ñô ð r   Fc                 ó°  — |                       ¦   «         dk    r%t          d|                       ¦   «         › d�¦  «        ‚| j        t          j        k    rt          d| j        › �¦  «        ‚|t          j        k    r"|t          j        k    rt          d|› �¦  «        ‚| j        j        dk    rt          d| j        j        › �¦  «        ‚| j        }|sg|t          j        k    r| j        }nQ|t          j        k    r>t          t          |                      t          j        ¦  «        ¦  «        j        ¦  «        }n| }|j        \  }}|t          j        k    rdnd	}||z  d
k    rt          d|› d|› �¦  «        ‚|d	z  d
k    rt          d|› �¦  «        ‚|t          j        k    rut          j        g d¢|¬¦  «        t          j        d
|dz  |¬¦  «                             dd¦  «        dz                       |dz  d¦  «        z                        d¦  «        }ntt          j        g d¢|¬¦  «        t          j        d
|dz  |¬¦  «                             dd¦  «        dz                       |dz  d¦  «        z                        d¦  «        }|                     d||¦  «        }|t          j        k    rdnd}	d|	z  }
t          j        d
||	z  |¬¦  «        |dz  |	z  z                       dd¦  «                             d|dz  |	z  ¦  «                             d¦  «        }t          j        d
|dz  |
z  |¬¦  «        |	|
z  z                       dd¦  «                             d|
¦  «                             d¦  «                             |¦  «        }t          j        d
|	|¬¦  «        |
z                       dd¦  «                             d|dz  ¦  «                             d¦  «                             ||	z  ¦  «        }t          j        d
|
|¬¦  «                             |dz  |z  |
z  ¦  «        }||z   |z   |z   }|                     d¦  «                             t          j        ¦  «        }t          j        |¦  «        }|                     d
||¦  «         |                     | j        ¦  «        }|                     d¦  «        }t          j        |¦  «        }|t          j        k    r|                     t          j        ¦  «        dz                        |j        ¦  «        }|d
d d…         |d
d d…<   |dd d…         |dd d…<   |dd d…         |dd d…<   |dd d…         |dd d…<   n¡|t          j        k    r‘|dz  dz   dz  }|dd d…         dz  |d
d d…         z  }|dz	  dz  dz   dz  }|dd d…         dz  |d
d d…         z  }|d
d d…         |d
d d…<   |dd d…         |dd d…<   |d
d d…         |dd d…<   |dd d…         |dd d…<   |t          j        k    r
|dz  }|dz  }|                     ||¦  «                             t          j        ¦  «        S )Nr   r   r   r   z%dtypeq must be int8 or quint4x2, got Úcudazweight must be on CUDA, got é    é@   r   znrows must be divisible by z, got z#ncols must be divisible by 64, got )r   r
   é   é   r   é   é	   é   r   é   é
   é   é   é   é   r	   )Údeviceé   éÿÿÿÿr   )r   r   r
   r    r   r!   r   r"   r   r&   r#   r'   r$   r(   r%   r	   r
   é€   r&   r	   r   )r   r   r   r   r   Úquint4x2r)   ÚtypeÚTr   r   r   r   ÚtensorÚarangeÚreshapeÚexpandÚ
index_copyÚrepeatÚint32Ú
zeros_likeÚscatter_Ú
empty_likeÚtoÚintÚuint8)r   ÚdtypeqÚ	transposer)   ÚoutpÚncolsÚnrowsÚdivisorÚcols_permutedÚmagic0Úmagic1Útmp0Útmp1Útmp2Útmp3Úoutp_offsetsÚtmps                    r   Ú8quantized_weight_reorder_for_mixed_dtypes_linear_cutlassrL   "   sm  € ð ‡z‚z�|„|�qÒÐÝÐF°v·z²z±|´|ÐFÐFÐFÑGÔGÐGØ„|•u”zÒ!Ð!ÝÐM¸v¼|ÐMÐMÑNÔNÐNØ•”ÒÐ ­%¬.Ò 8Ð 8ÝÐMÀVÐMÐMÑNÔNÐNØ„}Ô˜VÒ#Ð#ÝÐP¸F¼MÔ<NÐPÐPÑQÔQÐQàŒ]€Fð ð Ø•U”ZÒÐØ”8ˆDˆDØ•u”~Ò%Ð%Ý$Õ%8¸¿ºÅUÄZÑ9PÔ9PÑ%QÔ%QÔ%SÑTÔTˆDøàˆà”:�L€Eˆ5Ø�eœnÒ,Ð,ˆbˆb°"€GØˆw�˜!ÒÐÝÐQ¸7ÐQÐQÈ%ÐQÐQÑRÔRÐRØˆr�z�Q‚€ÝÐJÀ5ÐJÐJÑKÔKÐKð •”ÒÐåŒLØFÐFÐFØðñ ô õ Œ|˜A˜u¨™{°6Ð:Ñ:Ô:×BÒBÀ2ÀqÑIÔIÈBÑN×VÒVØ˜‘˜Rñô ñ	÷ Š$ˆr‰(Œ(ð 	ˆõ ŒLØFÐFÐFØðñ ô õ Œ|˜A˜u¨™{°6Ð:Ñ:Ô:×BÒBÀ2ÀqÑIÔIÈBÑN×VÒVØ˜‘˜Rñô ñ	÷ Š$ˆr‰(Œ(ð 	ð �?Š?˜1˜m¨TÑ2Ô2€Dð �EœNÒ*Ð*ˆQˆQ°€FØ�6‰\€Fõ 
Œ�a˜ &™°Ð	8Ñ	8Ô	8¸EÀQ¹JÈÑ<OÑ	Pß	Šˆb�!‰Œß	Š��5˜A‘: Ñ&Ñ	'Ô	'ß	Šˆb‰Œð	 	õ 
Œ�a˜ !™ vÑ-°fÐ	=Ñ	=Ô	=ÀÈ&ÁÑ	Qß	Šˆb�!‰Œß	Š��6Ñ	Ô	ß	Šˆb‰Œß	Š�‰Œð 	õ 
Œ�a˜¨Ð	/Ñ	/Ô	/°&Ñ	8ß	Šˆb�!‰Œß	Š��5˜A‘:Ñ	Ô	ß	Šˆb‰Œß	Š�˜‘Ñ	 Ô	 ð 	õ Œ<˜˜6¨&Ð1Ñ1Ô1×8Ò8¸À!¹ÀeÑ9KÈvÑ9UÑVÔV€Dà˜$‘; Ñ%¨Ñ,€Là
�)Š)�B‰-Œ-×
Ò
�Uœ[Ñ
)Ô
)€CÝÔ˜CÑ Ô €DØ‡M‚M�!�\ 3Ñ'Ô'Ð'Ø�9Š9�V”\Ñ"Ô"€Dð �)Š)�B‰-Œ-€CåÔ˜CÑ Ô €DØ•”ÒÐØ�vŠv•e”iÑ Ô  3Ñ&×*Ò*¨3¬9Ñ5Ô5ˆØ˜˜˜A˜”YˆˆQˆT�ˆT‰
Ø˜˜˜A˜”YˆˆQˆT�ˆT‰
Ø˜˜˜A˜”YˆˆQˆT�ˆT‰
Ø˜˜˜A˜”YˆˆQˆT�ˆT‰
ˆ
Ø	•5”>Ò	!Ð	!Ø�s‘˜a‘ 3Ñ&ˆØ�Q�T˜�T”
˜a‘ 4¨¨¨1¨¤:Ñ-ˆØ˜‘(˜cÑ! QÑ&¨#Ñ-ˆØ�Q�T˜�T”
˜a‘ 4¨¨¨1¨¤:Ñ-ˆØ˜!˜$˜Q˜$”ZˆˆQˆT�ˆT‰
Ø˜!˜$˜Q˜$”ZˆˆQˆT�ˆT‰
Ø˜!˜$˜Q˜$”ZˆˆQˆT�ˆT‰
Ø˜!˜$˜Q˜$”ZˆˆQˆT�ˆT‰
à•”ÒÐØ�‰
ˆØ�!‰ˆà�9Š9�U˜EÑ"Ô"×'Ò'­¬Ñ4Ô4Ð4r   )F)r   r   r   rL   © r   r   ú<module>rN      sX   ðà €€€ðDð Dð Dðð ð ð $ðp5ð p5ð p5ð p5ð p5ð p5r   