Ë
    S²jT  ã                   ó"   — d dl Z d„ Zd„ Z	 dd„Zy)é    Nc                 óp  — | j                  «       dk7  rt        d| j                  «       › d�«      ‚| j                  d   dz  dk7  rt        d| j                  d   › �«      ‚| j                  t        j
                  k7  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    úh/var/www/html/ia-enhanced/venv/lib/python3.12/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  — | j                  «       dk7  rt        d| j                  «       › d�«      ‚| j                  t        j                  k7  rt        d| j                  › �«      ‚t        j
                  | dz  | dz	  dz  fd¬«      j                  | 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ÒÜÐ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                 ó  — | j                  «       dk7  rt        d| j                  «       › d�«      ‚| j                  t        j                  k7  rt        d| j                  › �«      ‚|t        j                  k7  r!|t        j
                  k7  rt        d|› �«      ‚| j                  j                  dk7  r"t        d| j                  j                  › �«      ‚| j                  }|so|t        j                  k(  r| j                  }nQ|t        j
                  k(  r>t        t        | j                  t        j                  «      «      j                  «      }n| }j                  \  }}|t        j
                  k(  rdnd	}||z  d
k7  rt        d|› d|› �«      ‚|d	z  d
k7  rt        d|› �«      ‚|t        j
                  k(  rkt        j                  g d¢|¬«      t        j                  d
|dz  |¬«      j                  dd«      dz  j!                  |dz  d«      z   j                  d«      }njt        j                  g d¢|¬«      t        j                  d
|dz  |¬«      j                  dd«      dz  j!                  |dz  d«      z   j                  d«      }|j#                  d||«      }|t        j
                  k(  rdnd}	d|	z  }
t        j                  d
||	z  |¬«      |dz  |	z  z  j                  dd«      j%                  d|dz  |	z  «      j                  d«      }t        j                  d
|dz  |
z  |¬«      |	|
z  z  j                  dd«      j%                  d|
«      j                  d«      j%                  |«      }t        j                  d
|	|¬«      |
z  j                  dd«      j%                  d|dz  «      j                  d«      j%                  ||	z  «      }t        j                  d
|
|¬«      j%                  |dz  |z  |
z  «      }||z   |z   |z   }|j                  d«      j                  t        j&                  «      }t        j(                  |«      }|j+                  d
||«       |j                  | j                  «      }|j                  d«      }t        j,                  |«      }|t        j                  k(  rt|j/                  t        j0                  «      dz   j/                  |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(  ry|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  }|j                  ||«      j                  t        j2                  «      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   "   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ˆ5ØœeŸn™nÒ,‰b°"€GØˆw�˜!ÒÜÐ:¸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¨TÓ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˜EÓ"×'Ñ'¬¯©Ó4Ð4r   )F)r   r   r   rL   © r   r   ú<module>rN      s   ðã òDòð $ôp5r   