§
    Ë²Åjf  ã                   ó$   — d dl Z d„ Zd„ Z	 dd„ZdS )é    Nc                 óà   — |                       ¦   «         dk    sJ ‚| j        d         dz  dk    sJ ‚| j        t          j        k    sJ ‚| d d …dd d…f         dz  dz  | d d …dd d…f         dz  z  S )Né   é   r   é   é   )ÚdimÚshapeÚdtypeÚtorchÚint8©Úweights    úZC:\Projects\Historical\venv\Lib\site-packages\torch/quantization/_quantized_conversions.pyÚpack_int4_to_int8r      sŠ   € Ø�:Š:‰<Œ<˜1ÒÐÐÐØŒ<˜Œ?˜QÑ !Ò#Ð#Ð#Ð#ØŒ<�5œ:Ò%Ð%Ð%Ð%Ø�A�A�A�q�t˜!�t�GŒ_˜sÑ" qÑ(¨V°A°A°A°q°t¸!°t°G¬_¸sÑ-BÑCÐCó    c                 ó   — |                       ¦   «         dk    sJ ‚| j        t          j        k    s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   ÚstackÚviewr	   r   s    r   Úunpack_int8_to_int4r      s   € Ø�:Š:‰<Œ<˜1ÒÐÐÐØŒ<�5œ:Ò%Ð%Ð%Ð%ÝŒ;˜ ™ v°¡{°cÑ&9Ð:ÀÐBÑBÔB×GÒGØŒ�QŒ˜˜Vœ\¨!œ_Ñ,ñô ð r   Fc                 ó¢  — |                       ¦   «         dk    sJ ‚| j        t          j        k    sJ ‚|t          j        k    s|t          j        k    sJ ‚| j        j        dk    s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    sJ ‚|dz  dk    sJ ‚|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   Úcudaé    é@   r   )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   Ú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Úcols_permutedÚmagic0Úmagic1Útmp0Útmp1Útmp2Útmp3Úoutp_offsetsÚtmps                   r   Ú8quantized_weight_reorder_for_mixed_dtypes_linear_cutlassrG      sç  € ð �:Š:‰<Œ<˜1ÒÐÐÐØŒ<�5œ:Ò%Ð%Ð%Ð%Ø•U”ZÒÐ 6­U¬^Ò#;Ð#;Ð#;Ð;ØŒ=Ô Ò'Ð'Ð'Ð'àŒ]€Fð ð Ø•U”ZÒÐØ”8ˆDˆDØ•u”~Ò%Ð%Ý$Õ%8¸¿ºÅUÄZÑ9PÔ9PÑ%QÔ%QÔ%SÑTÔTˆDøàˆà”:�L€Eˆ5Ø˜&¥E¤NÒ2Ð2�B�B¸Ñ;¸qÒ@Ð@Ð@Ð@Ø�2‰:˜Š?ˆ?ˆ?ˆ?ð •”ÒÐåŒ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   rG   © r   r   ú<module>rI      sX   ðà €€€ðDð Dð Dðð ð ð $ðh5ð h5ð h5ð h5ð h5ð h5r   