ó
    IC˜jå  ã                   ó$   • S SK r S rS r SS jrg)é    Nc                 óv  • U R                  5       S:w  a  [        SU R                  5        S35      eU R                  S   S-  S:w  a  [        SU R                  S    35      eU R                  [        R
                  :w  a  [        SU R                   35      eU S S 2SS S24   S-  S	-  U S S 2SS S24   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    Ú·C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch/quantization/_quantized_conversions.pyÚpack_int4_to_int8r      s¹   € Ø‡z�zƒ|�qÓÜÐ6°v·z±z³|°nÀAÐFÓGÐGØ‡|�|�A�˜Ñ˜aÓÜÐAÀ&Ç,Á,ÈqÁ/ÐARÐSÓTÐTØ‡|�|”u—z‘zÓ!ÜÐ>¸v¿|¹|¸nÐMÓNÐNØ’A�q�t˜!�t�G‰_˜sÑ" qÑ(¨V²A°q°t¸!°t°G©_¸sÑ-BÑCÐCó    c                 ój  • U R                  5       S:w  a  [        SU R                  5        S35      eU R                  [        R                  :w  a  [        SU R                   35      e[        R
                  " U S-  U S-	  S-  4SS9R                  U R                  S   SU R                  S	   -  5      $ )
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ÓÜÐ6°v·z±z³|°nÀAÐFÓGÐGØ‡|�|”u—z‘zÓ!ÜÐ>¸v¿|¹|¸nÐMÓNÐNÜ�;Š;˜ ™ v°¡{°cÑ&9Ð:ÀÑB×GÑGØ�‰�Q‰˜˜VŸ\™\¨!™_Ñ,óð r   c                 ó  • U R                  5       S:w  a  [        SU R                  5        S35      eU R                  [        R                  :w  a  [        SU R                   35      eU[        R                  :w  a"  U[        R
                  :w  a  [        SU 35      eU R                  R                  S:w  a"  [        SU R                  R                   35      eU R                  nU(       dq  U[        R                  :X  a  U R                  nORU[        R
                  :X  a;  [        [        U R                  [        R                  5      5      R                  5      nOU nWR                  u  pVU[        R
                  :X  a  SOS	nXg-  S
:w  a  [        SU SU 35      eUS	-  S
:w  a  [        SU 35      eU[        R
                  :X  ag  [        R                  " / SQUS9[        R                  " S
US-  US9R                  SS5      S-  R!                  US-  S5      -   R                  S5      nOf[        R                  " / SQUS9[        R                  " S
US-  US9R                  SS5      S-  R!                  US-  S5      -   R                  S5      nUR#                  SX„5      nU[        R
                  :X  a  SOSn	SU	-  n
[        R                  " S
XY-  US9US-  U	-  -  R                  SS5      R%                  SUS-  U	-  5      R                  S5      n[        R                  " S
US-  U
-  US9Xš-  -  R                  SS5      R%                  SU
5      R                  S5      R%                  U5      n[        R                  " S
X“S9U
-  R                  SS5      R%                  SUS-  5      R                  S5      R%                  XY-  5      n[        R                  " S
X£S9R%                  US-  U-  U
-  5      nX¼-   U-   U-   nUR                  S5      R                  [        R&                  5      n[        R(                  " U5      nUR+                  S
UU5        UR                  U R                  5      nUR                  S5      n[        R,                  " U5      nU[        R                  :X  at  UR/                  [        R0                  5      S-   R/                  UR                  5      nUS
S S2   US
S S2'   USS S2   USS S2'   USS S2   USS S2'   USS S2   USS S2'   O�U[        R
                  :X  ay  US-  S-   S-  nUSS S2   S-  US
S S2   -  nUS-	  S-  S-   S-  nUSS S2   S-  US
S S2   -  nUS
S S2   US
S S2'   USS S2   USS S2'   US
S S2   USS S2'   USS S2   USS S2'   U[        R
                  :X  a
  US-  nUS-  nUR                  Xe5      R                  [        R2                  5      $ )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   "   s¬  € ð ‡z�zƒ|�qÓÜÐ6°v·z±z³|°nÀAÐFÓGÐGØ‡|�|”u—z‘zÓ!ÜÐ>¸v¿|¹|¸nÐMÓNÐNØ”—‘Ó ¬%¯.©.Ó 8ÜÐDÀVÀHÐMÓNÐNØ‡}�}×Ñ˜VÓ#ÜÐ;¸F¿M¹M×<NÑ<NÐ;OÐPÓQÐQà�]‰]€Fö Ø”U—Z‘ZÓØ—8‘8‰DØ”u—~‘~Ó%Ü$Ô%8¸¿¹ÄUÇZÁZÓ9PÓ%Q×%SÑ%SÓTˆDøàˆà—:‘:�L€EØœeŸn™nÓ,‰b°"€GØ�˜!ÓÜÐ:¸7¸)À6È%ÈÐQÓRÐRØˆr�z�QƒÜÐBÀ5À'ÐJÓKÐKð ”—‘Óä�LŠLÚFØñô �|Š|˜A˜u¨™{°6Ñ:×BÑBÀ2ÀqÓIÈBÑN×VÑVØ˜‘˜Róñ	÷ ‰$ˆr‹(ñ 	ô �LŠLÚFØñô �|Š|˜A˜u¨™{°6Ñ:×BÑBÀ2ÀqÓIÈBÑN×VÑVØ˜‘˜Róñ	÷ ‰$ˆr‹(ð 	ð �?‰?˜1˜mÓ2€Dð œEŸN™NÓ*‰Q°€FØ�6‰\€Fô 
�Š�a˜™°Ñ	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×8Ñ8¸À!¹ÀeÑ9KÈvÑ9UÓV€Dà‘; Ñ%¨Ñ,€Là
�)‰)�B‹-×
Ñ
œUŸ[™[Ó
)€CÜ×Ò˜CÓ €DØ‡M�M�!�\ 3Ô'Ø�9‰9�V—\‘\Ó"€Dð �)‰)�B‹-€Cä×Ò˜CÓ €DØ”—‘ÓØ�v‰v”e—i‘iÓ  3Ñ&×*Ñ*¨3¯9©9Ó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Ó"×'Ñ'¬¯©Ó4Ð4r   )F)r   r   r   rL   © r   r   Ú<module>rN      s   ðã òDòð $õp5r   