+
    "Ý³jÂ%  ã                   ó¼   € ^ RI HtHtHt ^ RIt^RIHtHt ^RIH	t	H
t
 ^RIHt ^RIHtHt ^RIHt ^RIHtHtHtHtHt ^R	IHt ]! 4       tR
 t ! R R]4      tR# )é    )ÚListÚOptionalÚTupleN)ÚAdapterÚLora)ÚDEVICEÚPLATFORM)ÚGPTQQuantLinear)ÚFORMATÚMETHOD)ÚBACKEND)ÚScratchSpaceÚexllamav2_gemm_half_q_halfÚ exllamav2_gptq_runtime_availableÚexllamav2_gptq_runtime_errorÚexllamav2_make_q_matrix)Úsetup_loggerc                 ó   € V R8X  d   R# RV  2# )é   Úcpuzcuda:éÿÿÿÿ© )Úidxs   &Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/exllamav2.pyÚ_torch_devicer      s   € Ø
ˆb„yÙØ�3�%ˆ=Ðó    c                   ó4  a a€ ] tR t^#t o]P
                  .t]P                  .t	]
P                  ^P]
P                  ^P/t^.t. ROtRR.tRR.tRtRtRt^ .t^ .t]P.                  .t]P4                  ]P6                  .t]P<                  .t] .t!]PD                  ]PF                  .t$Rt%Rt& R]P<                  RR3V3R lV 3R lllt'](V3R lR l4       t)V3R	 lV 3R
 llt*V3R lV 3R llt+RV3R lR llt,R t-R t.RR lt/R t0RV3R lR llt1Rt2Vt3V ;t4# )ÚExllamaV2LinearTFÚ	exllamav2Nc                ój   <€ 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[/
# )é   ÚbitsÚ
group_sizeÚdesc_actÚsymÚin_featuresÚout_featuresÚbiasÚ
pack_dtypeÚadapterÚregister_buffers)ÚintÚboolÚtorchÚdtyper   )ÚformatÚ__classdict__s   "€r   Ú__annotate__ÚExllamaV2Linear.__annotate__A   ss   ø€ ÷ )ñ )áð)ñ ð)ñ ð	)ñ
 ð)ñ ð)ñ ð)ñ ð)ñ —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
RVRV/VB  RV n        RV n        R# )r"   r#   r%   r$   r&   r'   r(   r)   Úbackendr*   r+   Úregister_buffers_in_featuresÚregister_buffers_out_featureNr   )ÚsuperÚ__init__Úpopr   ÚGPTQ_EXLLAMA_V2Úq_handleÚ	q_tensors)Úselfr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   ÚkwargsÚ	__class__s   &&&&&&&&&&&,€r   r9   ÚExllamaV2Linear.__init__A   s»   ø€ ô0 	‰Òñ 	Øð	à!ð	ð ð	ð ð		ð
 $ð	ð &ð	ð ð	ð "ð	ð —J‘J˜y¬'×*AÑ*AÓBð	ð ð	ð .ð	ð *5ð	ð *6ð	ð ò	ð  ˆŒØˆŽr   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# ©r!   Úreturn)r   r-   r   Ú	Exception)r0   r1   s   "€r   r2   r3   m   s#   ø€ ÷ ñ ™e¡D©(±9Õ*=Ð$=Õ>ñ r   c                óP   € \        4       '       g   R \        \        4       4      3# R# )F)TN)r   ÚImportErrorr   )Úclss   &r   Úvalidate_onceÚExllamaV2Linear.validate_oncel   s%   € ä/×1Ò1Øœ+Ô&BÓ&DÓEÐEÐEØÐr   c                ó    <€ V ^8„  d   QhRS[ /# )r!   Úscratch_space)r   )r0   r1   s   "€r   r2   r3   r   s   ø€ ÷ ñ ¡|ñ r   c                óp  <€ V P                   P                  \        P                  R 7      V n         RV P                  RV P
                  RV P                   RV P                  /V n        VP                  V P                  4       4      pV P                  V P                  V4      V n        \        SV `5  4        R# )©r/   ÚqweightÚqzerosÚscalesÚg_idxN)rQ   Útor.   Úfloat16rO   rP   rR   r=   Ú	get_sliceÚtemp_dq_sizeÚext_make_q_matrixr<   r8   Ú	post_init)r>   rL   Útemp_dqr@   s   && €r   rX   ÚExllamaV2Linear.post_initr   sŒ   ø€ ð —k‘k—n‘n¬5¯=©=�nÓ9ˆŒð �t—|‘|Ø�d—k‘kØ�d—k‘kØ�T—Z‘Zð	
ˆŒð  ×)Ñ)¨$×*;Ñ*;Ó*=Ó>ˆØ×.Ñ.¨t¯~©~¸wÓGˆŒä‰ÑÖr   c                ó    <€ V ^8„  d   QhRS[ /# rC   )r   )r0   r1   s   "€r   r2   r3   �   s   ø€ ÷ ñ ™dñ r   c                óš   <€ \         SV `  4       p\        V R 4      '       d*   V P                  e   VP	                  V P                  4       V# )r=   )r8   Úlist_buffersÚhasattrr=   Úappend)r>   Úbufr@   s   & €r   r]   ÚExllamaV2Linear.list_buffers�   s;   ø€ Ü‰gÑ"Ó$ˆÜ�4˜×%Ò%¨$¯.©.Ò*DØ�J‰J�t—~‘~Ô&Øˆ
r   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r!   Úx)r.   ÚTensor)r0   r1   s   "€r   r2   r3   “   s   ø€ ÷ %ñ %™Ÿ™ñ %r   c                óò  € V P                  V4      ^ 8X  d   V P                  V4      # VP                  pV\        P                  8w  d!   VP                  \        P                  R7      pV P                  WP                  V P                  V4      pV P                  e   VP                  V P                  4       V P                  '       d   V P                  P                  WR7      pVP                  VR7      # )r   rN   )rc   Úout)Ú
input_rowsÚempty_linear_outputr/   r.   rT   rS   Úext_gemm_half_q_halfr<   r'   r(   Úadd_r*   Úapply)r>   rc   Ú
force_cudaÚx_dtyperf   s   &&&  r   ÚforwardÚExllamaV2Linear.forward“   s¼   € ð �?‰?˜1Ó Ô"Ø×+Ñ+¨AÓ.Ð.à—'‘'ˆØ”e—m‘mÔ#ð
 —‘œ5Ÿ=™=�Ó)ˆAð ×'Ñ'¨¯=©=¸$×:KÑ:KÈZÓXˆà�9‰9Ò Ø�H‰H�T—Y‘YÔà�<�<ˆ<Ø—,‘,×$Ñ$ qÐ$Ó2ˆCà�v‰v˜GˆvÓ$Ð$r   c                óX   € V P                   V P                  ,          ^,          ^€,           # )r!   )r&   r'   )r>   s   &r   rV   ÚExllamaV2Linear.temp_dq_size±   s#   € Ø×Ñ $×"3Ñ"3Õ3°aÕ7¸#Õ=Ð=r   c                óR   € V P                   V,          V,          ^,          ^€,           # )é   )r'   ©r>   Úmax_input_lenÚmax_batch_sizes   &&&r   Útemp_fwd_sizeÚExllamaV2Linear.temp_fwd_size´   s"   € Ø× Ñ  =Õ0°>ÕAÀAÕEÈÕKÐKr   c                óN   € V P                  4       V P                  W4      ,           # ©N)rV   rw   rt   s   &&&r   Úscratch_space_fixedÚ#ExllamaV2Linear.scratch_space_fixed·   s!   € Ø× Ñ Ó" T×%7Ñ%7¸Ó%VÕVÐVr   c                ó8  € VP                   RR V3,           pVP                  RVP                   R,          4      p\        P                  ! VP                   ^ ,          V3\        P                  VP
                  R7      p\        WWd4       VP                  V4      # )z%Matrix multiplication, returns x @ q4N©r/   Údevicer   )ÚshapeÚviewr.   ÚemptyÚhalfr   r   )r>   rc   r<   Úq4_widthrl   Úoutput_shapeÚoutputs   &&&&&  r   ri   Ú$ExllamaV2Linear.ext_gemm_half_q_halfº   sp   € à—w‘w˜s �| x kÕ1ˆØ�F‰F�2�q—w‘w˜r•{Ó#ˆÜ—’˜aŸg™g a�j¨(Ð3¼5¿:¹:ÈaÏhÉhÔWˆÜ" 1°ÔCØ�{‰{˜<Ó(Ð(r   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r!   ÚwÚkey)ÚdictÚstr)r0   r1   s   "€r   r2   r3   Â   s   ø€ ÷ ?Sñ ?S¡4ð ?S±sñ ?Sr   c                ó  € RV9   dˆ   VR;;,          R,          uu&   VR,          P                  4       VR&   VR,          P                  4       VR&   \        VR,          VR,          VR,          VR,          VR,          VR,          RRRV4
      # R	V9   Edf   VR
,          P                  \        P                  8X  d   VR
,          P                  4       VR
&   RV9   dö   VR,          ^ 8H  P                  4       P                  4       '       gÈ   \        P                  ! VR	,          P                  ^ ,          ^,          3\        P                   VR	,          P                  R7      VR&   \        P                  ! VR,          4      VR&   \        VR	,          VR,          VR,          RRRVR,          VR
,          VR,          P                  4       V4
      # \        VR	,          RRRRRVR,          VR
,          RV4
      # \        R4      h)z
Create Q matrix
Úq_weightÚq_scale_maxé   Úq_permÚ	q_invpermÚq_scaleÚq_groupsNrO   rQ   rR   r~   rP   z2q_weight not found in exllama v2 quantized weights)Úshortr   r/   r.   Úfloatrƒ   ÚallÚitemr‚   r€   r   Ú
empty_liker   Ú
ValueError)r>   r‰   rY   rŠ   s   &&&&r   rW   Ú!ExllamaV2Linear.ext_make_q_matrixÂ   sÓ  € ð ˜Œ?Øˆm× Õ#ÓØ˜H�+×+Ñ+Ó-ˆAˆh‰KØ˜{�^×1Ñ1Ó3ˆAˆk‰NÜ*Ø�*•Ø�(•Ø�+•Ø�)•Ø�-Õ Ø�*•ØØØØóð ð ˜!�^Ø��{× Ñ ¤E§K¡KÔ/Ø �k×.Ñ.Ó0��(‘ð ˜!Œ| Q w¥Z°1¡_×$9Ñ$9Ó$;×$@Ñ$@×$BÒ$BÜ#ŸkškØ�y•\×'Ñ'¨Õ*¨QÕ.Ð0ÜŸ+™+Ø˜Y�<×.Ñ.ô��(‘ô
 "'×!1Ò!1°!°Hµ+Ó!>��+‘ä.Ø�i•LØ�h•KØ�k•NØØØØ�h•KØ�h•KØ�g•J—N‘NÓ$Øóð ô /Ø�i•LØØØØØØ�h•KØ�h•KØØóð ô ÐQÓRÐRr   )r<   r=   rQ   )r   é    é@   é€   )F)i   é   rz   )5Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r;   ÚSUPPORTS_BACKENDSr   ÚGPTQÚSUPPORTS_METHODSr   ÚGPTQ_V2Ú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ÚSUPPORTS_DEVICESr	   ÚLINUXÚWIN32ÚSUPPORTS_PLATFORMr.   Úint32ÚSUPPORTS_PACK_DTYPESr   ÚSUPPORTS_ADAPTERSrT   Úbfloat16ÚSUPPORTS_DTYPESÚREQUIRES_FORMAT_V2Ú
QUANT_TYPEr9   ÚclassmethodrI   rX   r]   rn   rV   rw   r{   ri   rW   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r@   r1   s   @@r   r   r   #   sF  ù‡ € Ø ×0Ñ0Ð1ÐØŸ™�}ÐØŸ™ R¨¯©¸Ð<ÐØ�C€Mò ,ÐØ˜u˜ÐØ˜%�=€LØ€OØÐØ!ÐØ)+¨Ð%Ø*,¨Ð&àŸ™�}ÐØ!Ÿ™¨¯©Ð8ÐØ!ŸK™K˜=ÐØ˜Ðà—}‘} e§n¡nÐ5€OàÐð €JàVð Ø"'§+¡+ØØ!%÷)õ )ðV ÷ó ð÷
ó ÷6ó ÷%ò %ò<>òLôWò)÷?S÷ ?Sò ?Sr   r   )Útypingr   r   r   r.   Úadapter.adapterr   r   Úmodels._constr   r	   Únn_modules.qlinearr
   Úquantizationr   r   Úutils.backendr   Úutils.exllamav2r   r   r   r   r   Úutils.loggerr   Úlogr   r   r   r   r   Ú<module>rË      sL   ð÷ )Ñ (ã ç ,ß -Ý 1ß *Ý $÷õ õ )ñ ƒn€òô
^S�oö ^Sr   