+
    "Ý³j„*  ã                   ó,  € ^ RI Ht ^ RIHtHt ^ RIt^ RIHt ^RIHtH	t	 ^RI
HtHt ^RIHtHtHt ^RIHtHt ^R	IHtHtHtHt ^R
IHt ^RIHt ]! RRR7      t]3R R llt ! R R]P>                  P@                  4      t! ! R R]4      t"RR.t#R# )é    )Únullcontext)ÚOptionalÚTupleN)Únn)ÚAdapterÚLora)ÚDEVICEÚPLATFORM)ÚAWQuantLinearÚempty_linear_outputÚ
input_rows)ÚFORMATÚMETHOD)Úawq_dequantize_weightsÚawq_gemm_forwardÚawq_runtime_availableÚawq_runtime_error)ÚBACKEND)Úenv_flagÚGPTQMODEL_FP32_ACCUMT)Údefaultc                ó$   € V ^8„  d   QhR\         /# )é   Ú
fp32_accum)Úbool)Úformats   "Úf/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/gemm_awq.pyÚ__annotate__r      s   € ÷ Wñ WÔVZñ Wó    c                 ó   € \        WW#WE4      # ©N)r   )ÚinputÚqweightÚscalesÚqzerosÚsplit_k_itersr   s   &&&&&&r   Ú_awq_cuda_gemm_forwardr'      s   € Ü˜E¨F¸MÓVÐVr   c                   óP   a € ] tR t^t o ]^^€R^ R]3R l4       t]R 4       tRtV t	R# )Ú	AwqGemmFnNc           	     ó  € V P                  W#V4       \        VP                  4      V n        W€n        VP                  R R V3,           p\        V4      pWÀn        V^ 8X  d   \        W4      # VR8„  pVP                  WÁP                  R,          4      pV'       dB   \        W$V^ ^ ^ R4      p\        P                  ! WïP                  VP                  R7      4      pM\        VVVV^V
R7      pVe	   W÷,           MTpVP                  V4      pV# )Ni   F©Údtype)r   éÿÿÿÿ)Úsave_for_backwardÚtupleÚshapeÚinput_shapeÚout_featuresr   r   Úreshaper   ÚtorchÚmatmulÚtor,   r'   )ÚctxÚxr#   r%   r$   Úw_bitÚ
group_sizeÚbiasr2   Úprefer_backendr   Ú	out_shapeÚrowsÚFULL_DEQUANT_MATMUL_THRESHOLDÚx_2dÚouts   &&&&&&&&&&&     r   ÚforwardÚAwqGemmFn.forward   sö   € ð  	×Ñ˜g¨vÔ6Ü §¡›.ˆŒØ'Ôà—G‘G˜C˜R�L L ?Õ2ˆ	Ü˜!‹}ˆØŒØ�1Œ9ô ' qÓ7Ð7ð )-¨t©Ð%à�y‰y˜Ÿw™w r�{Ó+ˆß(Ü(¨¸&À!ÀQÈÈ5ÓQˆCÜ—,’,˜t§V¡V°!·'±' VÓ%:Ó;‰Cä(ØØØØØØ%ôˆCð !Ò,ˆcŽj°#ˆØ�k‰k˜)Ó$ˆØˆ
r   c           
     óø  € V P                   w  r#pR pV P                  ^ ,          '       dÆ   V P                  ^ 8X  d(   VP                  V P                  4      pVR R R R R R R R R 3
# \        W$V^^ ^ R4      P                  VP                  4      pVP                  RVP                  R,          4      p\        P                  ! WvP                  RR4      4      pVP                  V P                  4      pVR R R R R R R R R 3
# )NFr-   éþÿÿÿ)Úsaved_tensorsÚneeds_input_gradr   Ú	new_emptyr1   r   r6   r,   r3   r0   r4   r5   Ú	transpose)r7   Úgrad_outputr#   r%   r$   Ú
grad_inputÚweightsÚgrad_output_2ds   &&      r   ÚbackwardÚAwqGemmFn.backwardN   s÷   € à"%×"3Ñ"3Ñˆ˜àˆ
Ø×Ñ ×"Ô"Ø�~‰~ Ô"Ø(×2Ñ2°3·?±?ÓC�
Ø! 4¨¨t°T¸4ÀÀtÈTÐSWÐWÐWÜ,Ø ¨¨A¨q°%óç‰b�×"Ñ"Ó#ð ð )×0Ñ0°°[×5FÑ5FÀrÕ5JÓKˆNÜŸš n×6GÑ6GÈÈBÓ6OÓPˆJØ#×+Ñ+¨C¯O©OÓ<ˆJà˜4  t¨T°4¸¸tÀTÈ4ÐOÐOr   © )
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__ÚstaticmethodÚ
FP32_ACCUMrB   rN   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r   r)   r)      sB   ø‡ € Øð ØØØØØó.ó ð.ð` ñPó öPr   r)   c                   óê  a a€ ] tR t^bt o]P
                  .t]P                  .t	]
P                  ^</t^.t. ROtRR.tRR.tRtRtRt^.t^.t]P.                  ]P0                  .t]P6                  .t]P<                  .t] .t!]PD                  ]PF                  .t$Rt%Rt&]'V3R lR l4       t(R]P<                  RR])3V3R lV 3R lllt*V3R	 lR
 lt+V 3R lt,V3R lR lt-RV3R lR llt.Rt/Vt0V ;t1# )ÚAwqGEMMLinearTFÚawq_gemmc                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# )r   Úreturn)r   r   r   Ú	Exception)r   rY   s   "€r   r   ÚAwqGEMMLinear.__annotate__}   s#   ø€ ÷ ñ ™e¡D©(±9Õ*=Ð$=Õ>ñ r   c                ód   € \        4       '       g    R \        \        4       ;'       g    R4      3# R# )Fz=CUDA AWQ extension not available; cannot select AwqGEMMLinear)TN)r   Ú
ValueErrorr   )Úclss   &r   Úvalidate_onceÚAwqGEMMLinear.validate_once|   s.   € ä$×&Ò&Øœ*Ô%6Ó%8×%{Ð%{Ð<{Ó|Ð|Ð|àÐr   Nc                óp   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[ RS[ RS[RS[P                  R	S[R
S[RS[/# )r   Úbitsr:   ÚsymÚdesc_actÚin_featuresr2   r;   Ú
pack_dtypeÚadapterÚregister_buffersr   )Úintr   r4   r,   r   )r   rY   s   "€r   r   r`   ƒ   s}   ø€ ÷ +ñ +áð+ñ ð+ñ ð	+ñ
 ð+ñ ð+ñ ð+ñ ð+ñ —K‘Kð+ñ ð+ñ ð+ñ ñ+r   c                ó°   <€ \         SV `  ! RR VRVRVRVRVRVRVRVRVP                  R\        P                  4      R	V	R
V
/VB  \        V4      V n        R# )rg   r:   rh   ri   rj   r2   r;   rk   Úbackendrl   rm   NrP   )ÚsuperÚ__init__Úpopr   ÚAWQ_GEMMr   r   )Úselfrg   r:   rh   ri   rj   r2   r;   rk   rl   rm   r   ÚkwargsÚ	__class__s   &&&&&&&&&&&&,€r   rr   ÚAwqGEMMLinear.__init__ƒ   s¥   ø€ ô  	‰Òñ 	Øð	à!ð	ð ð	ð ð		ð
 $ð	ð &ð	ð ð	ð "ð	ð —J‘J˜y¬'×*:Ñ*:Ó;ð	ð ð	ð .ð	ð ò	ô ˜zÓ*ˆŽr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r,   )r4   r,   )r   rY   s   "€r   r   r`   ¢   s   ø€ ÷ ?ñ ?©5¯;©;ñ ?r   c                óî  € V P                   ek   V P                   P                  V8w  g!   V P                   P                  4       '       g0   V P                   P                  VR7      P	                  4       V n         V P
                  eo   V P
                  P                  V8w  g!   V P
                  P                  4       '       g2   V P
                  P                  VR7      P	                  4       V n        R # R # R # ©Nr+   )r$   r,   Úis_contiguousr6   Ú
contiguousr;   )ru   r,   s   &&r   Ú_ensure_runtime_dtypeÚ#AwqGEMMLinear._ensure_runtime_dtype¢   s¢   € Ø�;‰;Ò"¨¯©×(9Ñ(9¸UÔ(BÈ$Ï+É+×JcÑJc×JeÒJeØŸ+™+Ÿ.™.¨u˜.Ó5×@Ñ@ÓBˆDŒKØ�9‰9Ò  d§i¡i§o¡o¸Ô&>ÀdÇiÁi×F]ÑF]×F_ÒF_ØŸ	™	Ÿ™¨5˜Ó1×<Ñ<Ó>ˆDŽIñ G`Ñ r   c                óü  <€ V P                   ei   V P                   P                  \        P                  \        P                  39  d0   V P                   P                  \        P                  R7      V n         V P                  ei   V P                  P                  \        P                  \        P                  39  d0   V P                  P                  \        P                  R7      V n        \        SV `!  4        R # r{   )	r$   r,   r4   Úfloat16Úbfloat16r6   r;   rq   Ú	post_init)ru   rw   s   &€r   rƒ   ÚAwqGEMMLinear.post_init¨   s“   ø€ Ø�;‰;Ò" t§{¡{×'8Ñ'8ÄÇÁÔPU×P^ÑP^Ð@_Ô'_ØŸ+™+Ÿ.™.¬u¯}©}˜.Ó=ˆDŒKØ�9‰9Ò  T§Y¡Y§_¡_¼U¿]¹]ÌEÏNÉNÐ<[Ô%[ØŸ	™	Ÿ™¬5¯=©=˜Ó9ˆDŒIä‰ÑÖr   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   r8   )r4   ÚTensor)r   rY   s   "€r   r   r`   °   s   ø€ ÷ +&ñ +&™Ÿ™ñ +&r   c                óv  € VP                   R R V P                  3,           pR	 F[  p\        WR 4      pVf   K  VP                  VP                  8w  g   K2  \	        RV RVP                   RV RVP                   24      h	  VP
                  pV\        P                  \        P                  39   d   TM\        P                  pWV8w  d   VP                  V4      pVP                  4       '       g   VP                  4       pV P                  V4       V P                  '       d   \        4       M\        P                  ! 4       pV;_uu_ 4        \         P#                  VV P$                  V P&                  V P(                  V P*                  V P,                  V P.                  V P                  RV P0                  4
      pR R R 4       XP
                  V8w  d   VP                  VR7      pV P2                  '       d   V P2                  P#                  WR7      pVP5                  V4      #   + '       g   i     Lr; i)
NzAWQ GEMM input and z# must be on the same device: input=z, Ú=Úcudar+   )r8   rA   r-   )r#   r%   r$   )r0   r2   ÚgetattrÚdeviceÚRuntimeErrorr,   r4   r�   r‚   r6   r|   r}   r~   Útrainingr   Úinference_moder)   Úapplyr#   r%   r$   rg   r:   r;   r   rl   r3   )	ru   r8   r=   ÚnameÚtensorÚinput_dtypeÚcompute_dtyper7   rA   s	   &&       r   rB   ÚAwqGEMMLinear.forward°   s²  € Ø—G‘G˜C˜R�L D×$5Ñ$5Ð#7Õ7ˆ	ó 4ˆDÜ˜T¨Ó.ˆFØÔ! f§m¡m°q·x±xÖ&?Ü"Ø)¨$¨ð 0ØŸX™X˜J b¨¨¨a°·±¨ð@óð ñ 4ð —g‘gˆØ'2´u·}±}ÄeÇnÁnÐ6UÔ'U™Ô[`×[hÑ[hˆØÔ'Ø—‘�]Ó#ˆAØ�‰× Ò Ø—‘“ˆAà×"Ñ" =Ô1à#Ÿ}Ÿ}˜}ŒkŒm´%×2FÒ2FÓ2HˆßŠSÜ—/‘/ØØ—‘Ø—‘Ø—‘Ø—	‘	Ø—‘Ø—	‘	Ø×!Ñ!ØØ—‘óˆC÷ ð �9‰9˜Ô#Ø—&‘&˜{�&Ó+ˆCà�<�<ˆ<Ø—,‘,×$Ñ$ qÐ$Ó2ˆCà�{‰{˜9Ó%Ð%÷) �Sús   ÅA/H(È(H8	c                ó‚   <€ V ^8„  d   QhRS[ P                  RS[P                  RS[P                  RS[P                  /# )r   Úlinearr$   ÚzerosÚg_idx)r   ÚModuler4   r†   )r   rY   s   "€r   r   r`   Ý   sB   ø€ ÷ F/ñ F/™2Ÿ9™9ð F/©e¯l©lð F/Á5Ç<Á<ð F/ÑX]×XdÑXdñ F/r   c           	     ó¼
  € Ve   Vf   Q hVP                  4       P                  4       pVP                  4       P                  4       pW2,          pVP                  \        P                  \        P
                  39   d   VP                  M\        P                  pV P                  RVP                  4       P                  V4      4       VP                  eŒ   VP                  P                  \        P                  \        P
                  39   d   VP                  P                  MTpV P                  RVP                  P                  4       P                  V4      4       MR V n	        ^ V P                  ,          p. p	\        V P                  4       F¯  p
V	P                  \        P                  ! VP                  P                   RV
3,          WZV P"                  ,          ,          ,           V P$                  W P"                  ,          ,          ,          4      P                  \        P&                  4      R,          4       K±  	  \        P(                  ! V	^R7      p	V	P                  4       P                  4       p	V	P                  \        P*                  R7      p	\-        VP                  P.                  4      pRV9   d   V	P                  R4      p	\        P0                  ! V	P2                  ^ ,          V	P2                  ^,          ^ ,          V P                  ,          3\        P*                  V	P.                  R7      p\        V	P2                  ^,          V,          4       F‚  pV P                  ^8X  d   . ROpM\5        R	4      h\        V4       FO  pV	RWØ,          Wï,          ,           3,          pVRV3;;,          VWðP                  ,          ,          ,          uu&   KQ  	  K„  	  V P                  R
V4       VP                  \        P*                  VR7      pRV9   d   VP                  R4      p\        P0                  ! VP2                  ^ ,          VP2                  ^,          ^ ,          V P                  ,          3\        P*                  VP.                  R7      p\        VP2                  ^,          V,          4       F‚  pV P                  ^8X  d   . ROpM\5        R	4      h\        V4       FO  pVRWØ,          Wï,          ,           3,          pVRV3;;,          VWðP                  ,          ,          ,          uu&   KQ  	  K„  	  V P                  RV4       R # )Nr$   r;   ºNNN)Údimr+   ÚmpsÚcpu)r,   r‹   z!Only 4-bit are supported for now.r#   r%   )r›   N)r   r   é   é   é   é   é   é   )Útr}   r,   r4   r�   r‚   Úregister_bufferÚcloner6   r;   rg   Úrangerj   ÚappendÚroundÚweightÚdatar:   r$   rn   ÚcatÚint32Ústrr‹   r—   r0   ÚNotImplementedError)ru   r–   r$   r—   r˜   Úscale_zerosÚscale_dtypeÚ
bias_dtypeÚpack_numÚ	intweightÚidxÚbest_devicer#   ÚcolÚ	order_mapÚiÚqweight_colr%   Ú	qzero_cols   &&&&&              r   ÚpackÚAwqGEMMLinear.packÝ   sÇ  € àÒ! eÒ&7Ð7Ð7Ø—‘“×&Ñ&Ó(ˆØ—‘“	×$Ñ$Ó&ˆØ•nˆà&,§l¡l´u·}±}ÄeÇnÁnÐ6UÔ&U�f—l’lÔ[`×[hÑ[hˆØ×Ñ˜X v§|¡|£~×'8Ñ'8¸Ó'EÔFØ�;‰;Ò"Ø.4¯k©k×.?Ñ.?ÄEÇMÁMÔSX×SaÑSaÐCbÔ.b˜Ÿ™×*Ò*ÐhsˆJØ× Ñ  ¨¯©×):Ñ):Ó)<×)?Ñ)?À
Ó)KÕLàˆDŒIà˜Ÿ™•?ˆàˆ	Ü˜×)Ñ)Ö*ˆCØ×ÑÜ—’Ø—]‘]×'Ñ'¨¨3¨Õ/°+ÀTÇ_Á_Õ>TÕ2UÕUØ—k‘k #¯©Õ"8Õ9õ:ó÷ ‘"”U—Y‘Y“- õ)öñ +ô —I’I˜i¨QÔ/ˆ	Ø—K‘K“M×,Ñ,Ó.ˆ	Ø—L‘L¤u§{¡{�LÓ3ˆ	ä˜&Ÿ-™-×.Ñ.Ó/ˆð �KÔØ!Ÿ™ UÓ+ˆIä—+’+Ø�_‰_˜QÕ §¡°Õ!3°rÕ!9¸D¿I¹IÕ!EÐFÜ—+‘+Ø×#Ñ#ô
ˆô ˜Ÿ™¨Õ+¨xÕ7Ö8ˆCØ�y‰y˜AŒ~Ú4‘	ä)Ð*MÓNÐNÜ˜8–_�Ø'¨¨3­>¸I½LÕ+HÐ(HÕI�Ø˜˜3˜— ;°1·y±yµ=Õ#AÕA•ó %ñ 9ð 	×Ñ˜Y¨Ô0à—‘œuŸ{™{°;�Ó?ˆà�KÔØ—H‘H˜U“OˆEä—’Ø�[‰[˜�^˜UŸ[™[¨�^¨rÕ1°D·I±IÕ=Ð>Ü—+‘+Ø—<‘<ô
ˆô ˜Ÿ™ Q�¨8Õ3Ö4ˆCØ�y‰y˜AŒ~Ú4‘	ä)Ð*MÓNÐNÜ˜8–_�Ø! ! S¥^°iµlÕ%BÐ"BÕC�	Ø�q˜#�v— )°·I±IµÕ">Õ>•ó %ñ 5ð 	×Ñ˜X vÖ.r   )r;   r   r$   )r-   é   é    é@   é€   r!   )2rQ   rR   rS   rT   r   rt   ÚSUPPORTS_BACKENDSr   ÚAWQÚSUPPORTS_METHODSr   ÚGEMMÚSUPPORTS_FORMATSÚSUPPORTS_BITSÚSUPPORTS_GROUP_SIZEÚSUPPORTS_DESC_ACTÚSUPPORTS_SYMÚSUPPORTS_SHARDSÚSUPPORTS_TRAININGÚSUPPORTS_AUTO_PADDINGÚ!SUPPORTS_IN_FEATURES_DIVISIBLE_BYÚ"SUPPORTS_OUT_FEATURES_DIVISIBLE_BYr	   ÚCUDAÚROCMÚSUPPORTS_DEVICESr
   ÚALLÚSUPPORTS_PLATFORMr4   r®   ÚSUPPORTS_PACK_DTYPESr   ÚSUPPORTS_ADAPTERSr�   r‚   ÚSUPPORTS_DTYPESÚREQUIRES_FORMAT_V2Ú
QUANT_TYPEÚclassmethodrd   rV   rr   r~   rƒ   rB   r½   rW   rX   Ú__classcell__)rw   rY   s   @@r   r[   r[   b   s  ù‡ € Ø ×)Ñ)Ð*ÐØŸ
™
�|ÐØŸ™ RÐ(ÐØ�C€MÚ/ÐØ˜u˜ÐØ˜%�=€LØ€OØÐØ!ÐØ)*¨Ð%Ø*+¨Ð&àŸ™ V§[¡[Ð1ÐØ!Ÿ™˜ÐØ!ŸK™K˜=ÐØ˜Ðà—}‘} e§n¡nÐ5€OàÐð €Jà÷ó ðð Ø"'§+¡+ØØ!&Ø%÷+õ +÷>?ð ?õ÷+&ð +&÷ZF/÷ F/ò F/r   r[   )$Ú
contextlibr   Útypingr   r   r4   r   Úadapter.adapterr   r   Úmodels._constr	   r
   Únn_modules.qlinearr   r   r   Úquantizationr   r   Ú	utils.awqr   r   r   r   Úutils.backendr   Ú	utils.envr   rV   r'   ÚautogradÚFunctionr)   r[   Ú__all__rP   r   r   Ú<module>ré      s   ðõ #ß "ã Ý ç ,ß -ß PÑ Pß *ß kÓ kÝ $Ý !ñ Ð,°dÔ;€
à]g÷ WôCP�—‘×'Ñ'ô CPôLA/�Mô A/ðL Øð‚r   