+
    ÒÜ³j¡  ã                   ó�   € ^ RI t ^ RIHt ^ RIt^ RIHt ]! R4      w  ttR t	]	! 4       w  t
tt ! R R]P                  4      tR tR# )é    N)Ú
try_importÚmarlin_cudac            
      ó  € . p \        ^ 4       Få  p. pV^,          pR F‘  p^V^,          ,          ^V^,          ,          ^,           ^V^,          ^,           ,          ^V^,          ^,           ,          ^,           3 F0  pVP                  ^V,          V,           ^V,          ,           4       K2  	  K“  	  \        ^4       F1  pT P                  V Uu. uF  qwRV,          ,           NK  	  up4       K3  	  Kç  	  \        P                  ! V 4      p \        P                  ! . RO4      pV P                  R4      RV3,          P                  4       p \        P                  ! V 4      p . p	\        ^4       F:  pT	P                  \        ^4       Uu. uF  qa^V,          ,           NK  	  up4       K<  	  . p
\        ^4       F2  pT
P                  R Uu. uF  p^V,          V,           NK  	  up4       K4  	  W	V
3# u upi u upi u upi )é    é   ºNNN)r   é   )r   é   é   é   r	   é   é   é   )éÿÿÿÿé   )r   r	   r   é	   é   é   é   é   )	ÚrangeÚappendÚextendÚnpÚarrayÚreshapeÚravelÚtorchÚ
from_numpy)ÚpermÚiÚperm1ÚcolÚblockÚrowÚjÚpÚ
interleaveÚ
scale_permÚscale_perm_singles              ÚZ/home/luca/screen-checking/.venv/lib/python3.14/site-packages/awq/modules/linear/marlin.pyÚ
_get_permsr,      s¬  € Ø€DÜ�2ŽYˆØˆØ�1�fˆÛˆEà�Q˜•U•Ø�Q˜•U•˜a•Ø�Q˜•U˜Q•Y•Ø�Q˜•U˜Q•Y• !Õ#ó	�ð —‘˜R #�X¨�^¨a°%­iÕ7Ö8óñ ô �q–ˆAØ�K‰K©eÓ4©e¨˜S 1�WŸ˜©eÑ4Ö5ó ñ ô �8Š8�D‹>€DÜ—’Ò2Ó3€JØ�<‰<˜Ó   J Õ/×5Ñ5Ó7€DÜ×Ò˜DÓ!€DØ€JÜ�1ŽXˆØ×Ñ¬e°A¬hÓ7©h¨˜q 1�uŸ9˜9©hÑ7Ö8ñ àÐÜ�1ŽXˆØ× Ñ Ñ5QÓ!RÑ5Q° ! a¥%¨!§) )Ñ5QÑ!RÖSñ àÐ.Ð.Ð.ùò 5ùò 8ùò "Ss   ÃG5ÆG:
ÇG?
c                   óŒ   a a€ ] tR t^)t oV 3R lt]RR l4       tR t]P                  ! 4       R 4       t
V3R lR ltRtVtV ;t# )	ÚWQLinear_Marlinc           	     óÎ  <€ \         SV `  4        VR9  d   \        R4      hWn        W0n        W@n        VR8w  d   TMTV n        ^V n        V P                  V P                  ,          ^ 8X  g   Q hV^ V P                  ,          ,          ^ 8X  g   Q hV P                  R\        P                  ! V^,          V^,          ^,          3\        P                  VR7      4       V P                  R\        P                  ! W2,          V3\        P                  VR7      4       V'       d:   V P                  R\        P                  ! V\        P                  VR7      4       R# RV n        R# )	r   z!Only 4-bit are supported for now.Úqweight©ÚdtypeÚdeviceÚscalesÚbiasN)r   r   )ÚsuperÚ__init__ÚNotImplementedErrorÚw_bitÚin_featuresÚout_featuresÚ
group_sizeÚmax_parÚregister_bufferr   ÚzerosÚint32Úfloat16r5   )Úselfr9   r<   r:   r;   r5   ÚdevÚ	__class__s   &&&&&&&€r+   r7   ÚWQLinear_Marlin.__init__*   s1  ø€ Ü‰ÑÔà˜ÔÜ%Ð&IÓJÐJàŒ
Ø&ÔØ(ÔØ(2°bÔ(8™*¸kˆŒØˆŒð ×Ñ $§/¡/Õ1°QÔ6Ð6Ð6Ø˜r T§Z¡ZÕ/Õ0°AÔ5Ð5Ð5ð 	×ÑØÜ�KŠKØ Õ" L°2Õ$5¸Õ$:Ð;Ü—k‘kØôô	
ð 	×ÑØÜ�KŠKØÕ*¨LÐ9Ü—m‘mØôô	
÷ Ø× Ñ ØÜ—’Ø!ÜŸ-™-Øôöð ˆDŽIó    c                ó
  € V ! VVVP                   VP                  VP                  R JVP                  P                  4      pV'       d   V# Vf   Vf   Q h^p^p	VP                  4       p
VP                  P                  P                  4       pVP                  VP                   8w  dj   VP                  RVP                  VP                  34      pVP                  ^^ ^4      pVP                  VP                  R34      pV
P                  R4      p
\        P                  ! Wº,          4      P                  4       pW¹^,           ^,          ,          p\        P                  ! V^ V	4      pVP                  VP                   8w  dŸ   VP                  VP                  RVP                  34      pVP                  ^^ ^4      pVP                  VP                   VP                  34      P                  4       pV
P                  R\        \         4      34      R\         3,          p
M-V
P                  R\        \"        4      34      R\"        3,          p
V
P                  RVP                  34      P                  4       p
VP                  VP                   V,          VVP                  V,          V34      pVP                  R4      pVP                  VP                   V,          VP                  V,          34      pTpVP                  R\$        P'                  4       34      R\$        3,          P                  VP(                  4      p\*        P,                  ! VP(                  ^ ,          VP(                  ^,          ^,          3\*        P.                  R7      pVP1                  4       P3                  4       P5                  \*        P.                  4      p\7        ^4       F%  pWÜRVR ^13,          ^V,          ,          ,          pK'  	  \        P8                  ! VP5                  \*        P:                  4      4      P=                  VP                  4      pVP=                  VP>                  P                  4      VP>                  R&   V
P=                  VP>                  P                  4      VP@                  R&   VP                  eG   VP                  P                  P=                  VP                  P                  4      VP                  R&   V# )Nr   ©r2   r   )r	   r   )r   r
   r	   r   )!r:   r;   r5   Úweightr3   ÚtÚdatar<   r   Úpermuter   ÚroundÚintÚclampÚ
contiguousÚlenÚ_scale_permÚ_scale_perm_singleÚ_permÚnumelÚshaper   r?   Úuint32ÚcpuÚnumpyÚastyper   r   r@   Útor0   r4   )ÚclsÚlinearr9   r<   Ú	init_onlyr4   r?   Ú
awq_linearÚtileÚmaxqÚsÚwÚresÚqr!   s   &&&&&&&        r+   Úfrom_linearÚWQLinear_Marlin.from_linearZ   sà  € ñ ØØØ×ÑØ×ÑØ�K‰K˜tÐ#Ø�M‰M× Ñ ó
ˆ
÷ ØÐàŠ} Ò!3Ð3Ð3àˆØˆØ�H‰H‹JˆØ�M‰M×Ñ× Ñ Ó"ˆØ× Ñ  J×$:Ñ$:Ô:Ø—	‘	˜2˜z×4Ñ4°j×6MÑ6MÐNÓOˆAØ—	‘	˜!˜Q Ó"ˆAØ—	‘	˜:×0Ñ0°"Ð5Ó6ˆAØ—	‘	˜'Ó"ˆAÜ�KŠK˜�Ó×"Ñ"Ó$ˆØ	�Q�h˜1�_ÕˆÜ�KŠK˜˜1˜dÓ#ˆØ× Ñ  J×$:Ñ$:Ô:Ø—	‘	˜:×0Ñ0°"°j×6MÑ6MÐNÓOˆAØ—	‘	˜!˜Q Ó"ˆAØ—	‘	Ø×'Ñ'¨×)@Ñ)@ÐAóç‰j‹lð ð —	‘	˜2œs¤;Ó/Ð0Ó1°!´[°.ÕA‰Aà—	‘	˜2œsÔ#5Ó6Ð7Ó8¸Ô<NÐ9NÕOˆAØ�I‰I�r˜:×2Ñ2Ð3Ó4×?Ñ?ÓAˆØ�I‰Ià×&Ñ&¨$Õ.ØØ×'Ñ'¨4Õ/Øð	ó
ˆð �I‰I�lÓ#ˆØ�I‰I�z×-Ñ-°Õ5°z×7NÑ7NÐQUÕ7UÐVÓWˆØˆØ�k‰k˜2œuŸ{™{›}Ð-Ó.¨q´%¨xÕ8×@Ñ@ÀÇÁÓKˆÜ�HŠH�c—i‘i •l C§I¡I¨a¥L°AÕ$5Ð6¼b¿i¹iÔHˆØ�g‰g‹i�o‰oÓ×&Ñ&¤r§y¡yÓ1ˆÜ�q–ˆAØ�Q˜˜˜1˜�W•  Q¥Õ&Õ&ŠAñ ä×Ò˜QŸX™X¤b§h¡hÓ/Ó0×3Ñ3°A·H±HÓ=ˆØ !§¡ Z×%7Ñ%7×%>Ñ%>Ó ?ˆ
×Ñ˜1ÑØ Ÿt™t J×$6Ñ$6×$=Ñ$=Ó>ˆ
×Ñ˜!Ñà�?‰?Ò&Ø!'§¡×!1Ñ!1×!4Ñ!4°Z·_±_×5KÑ5KÓ!LˆJ�O‰O˜AÑàÐrF   c           	     óä   € V P                  R \        P                  ! V P                  ^€,          V P                  ,          \        P
                  V P                  P                  R7      RR7       R# )Ú	workspacer1   F)Ú
persistentN)r>   r   r?   r;   r=   r@   r0   r3   ©rB   s   &r+   Ú	post_initÚWQLinear_Marlin.post_init    sT   € Ø×ÑØÜ�KŠKØ×!Ñ! SÕ(¨4¯<©<Õ7Ü—k‘kØ—|‘|×*Ñ*ôð
 ð 	ö 	
rF   c                óB  € \        V R 4      '       g   Q R4       h\        f   \        R\        ,           4      hVP                  RR V P
                  3,           pVP                  pV\        P                  8w  d   VP                  4       pVP                  RVP                  R,          4      p\        P                  ! VP                  ^ ,          V P
                  3\        P                  VP                  R7      p\        P                  VV P                  VV P                  V P                   RRRV P"                  4	       V\        P                  8w  d   VP%                  VR7      pV P&                  e   VP)                  V P&                  4       VP                  V4      # )ri   zemodule.post_init() must be called before module.forward(). Use marlin_post_init() on the whole model.Nz3External Marlin kernels are not properly installed.r1   rH   r   )Úhasattrr   ÚModuleNotFoundErrorÚmsgrV   r;   r2   r   rA   ÚhalfÚviewÚemptyr3   Úmulr0   r4   ri   r=   r[   r5   Úadd_)rB   ÚxÚ	out_shapeÚinput_dtypeÚouts   &&   r+   ÚforwardÚWQLinear_Marlin.forward«   sB  € ä�t˜[×)Ò)ð 	
ð9ó	
Ð)ô ÒÜ%Ð&[Ô^aÕ&aÓbÐbà—G‘G˜C˜R�L D×$5Ñ$5Ð#7Õ7ˆ	à—g‘gˆØœ%Ÿ-™-Ô'Ø—‘“ˆAà�F‰F�2�q—w‘w˜r•{Ó#ˆä�kŠkØ�W‰W�Q�Z˜×*Ñ*Ð+Ü—-‘-Ø—8‘8ô
ˆô
 	�‰ØØ�L‰LØØ�K‰KØ�N‰NØØØØ�L‰Lô
	
ð œ%Ÿ-™-Ô'Ø—&‘&˜{�&Ó+ˆCà�9‰9Ò Ø�H‰H�T—Y‘YÔà�x‰x˜	Ó"Ð"rF   c                ó    <€ V ^8„  d   QhRS[ /# )r
   Úreturn)Ústr)ÚformatÚ__classdict__s   "€r+   Ú__annotate__ÚWQLinear_Marlin.__annotate__Õ   s   ø€ ÷ 	
ñ 	
™Cñ 	
rF   c                ó”   € R P                  V P                  V P                  V P                  RJV P                  V P
                  4      # )zAin_features={}, out_features={}, bias={}, w_bit={}, group_size={}N)r€   r:   r;   r5   r9   r<   rk   s   &r+   Ú
extra_reprÚWQLinear_Marlin.extra_reprÕ   sA   € àO×VÑVØ× Ñ Ø×!Ñ!Ø—	‘	 Ð%Ø—
‘
Ø—‘óð	
rF   )r5   r<   r:   r=   r;   r9   )FNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r7   Úclassmethodrf   rl   r   Úno_gradr{   r…   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rD   r�   s   @@r+   r.   r.   )   sQ   ù‡ € õ.ð` óCó ðCòJ	
ð ‡]‚]ƒ_ñ'#ó ð'#÷R	
÷ 	
ð 	
rF   r.   c                 óˆ   € V P                  4        F-  w  r\        V\        4      '       g   K  VP                  4        K/  	  V # )N)Únamed_modulesÚ
isinstancer.   rl   )ÚmodelÚ_Ú	submodules   &  r+   Úmarlin_post_initr–   á   s7   € Ø×+Ñ+Ö-‰ˆÜ�i¤×1Ô1Ø×ÑÖ!ñ .ð €LrF   )r   Útorch.nnÚnnrY   r   Úawq.utils.moduler   r   rq   r,   rT   rR   rS   ÚModuler.   r–   © rF   r+   Ú<module>rœ      sN   ðÛ Ý Û Ý 'á˜mÓ,Ñ €ˆSò/ñ< *4«Ñ &€€{Ð&ôu
�b—i‘iô u
ôprF   