+
    "Ý³jB  ã                   óº   € ^ 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 ^RIHtHtHtHtHt ^R	IHt ]! 4       t ! R
 R]4      tR tR.tR# )é    N)ÚAdapterÚLora)ÚDEVICEÚPLATFORM)ÚAWQuantLinear)ÚFORMATÚMETHOD)Úunpack_reorder_pack)ÚBACKEND)ÚScratchSpaceÚexllamav2_awq_gemm_half_q_halfÚexllamav2_awq_make_q_matrixÚexllamav2_awq_runtime_availableÚexllamav2_awq_runtime_error)Úsetup_loggerc                   óæ  a a€ ] tR t^t o]P
                  .t]P                  .t	]
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3V3R lV 3R lllt'](R 4       t)V3R lR	 lt*V3R
 lV 3R llt+V3R lR lt,R t-R t.RR lt/Rt0Vt1V ;t2# )ÚAwqExllamaV2LinearTFÚawq_exllamav2Nc                ód   <€ V ^8„  d   QhRS[ RS[ RS[RS[RS[ RS[ RS[RS[P                  R	S[/	# )
é   ÚbitsÚ
group_sizeÚsymÚdesc_actÚin_featuresÚout_featuresÚbiasÚ
pack_dtypeÚadapter)ÚintÚboolÚtorchÚdtyper   )ÚformatÚ__classdict__s   "€Úk/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/exllamav2_awq.pyÚ__annotate__ÚAwqExllamaV2Linear.__annotate__7   si   ø€ ÷ ñ áðñ ðñ ð	ñ
 ðñ ðñ ðñ ðñ Ÿ™ðñ ñó    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	/
V
B  R
# )r   r   r   r   r   r   r   r   Úbackendr   N© )ÚsuperÚ__init__Úpopr   ÚAWQ_EXLLAMA_V2)Úselfr   r   r   r   r   r   r   r   r   ÚkwargsÚ	__class__s   &&&&&&&&&&,€r&   r.   ÚAwqExllamaV2Linear.__init__7   s�   ø€ ô 	‰Òñ 	Øð	à!ð	ð ð	ð ð		ð
 $ð	ð &ð	ð ð	ð "ð	ð —J‘J˜y¬'×*@Ñ*@ÓAð	ð ð	ð ô	r)   c                óP   € \        4       '       g   R \        \        4       4      3# R# )F)TN)r   ÚImportErrorr   )Úclss   &r&   Úvalidate_onceÚ AwqExllamaV2Linear.validate_onceQ   s'   € ô /×0Ò0Øœ+Ô&AÓ&CÓDÐDÐDØÐr)   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úreturn)r    )r$   r%   s   "€r&   r'   r(   Y   s   ø€ ÷ 
ñ 
Éñ 
r)   c                ó¬   € VP                   \        P                  8X  d   TMVP                  \        P                  R 7      p\	        VRRRRRVVRV4
      # )©r#   N)r#   r"   Úfloat16Útor   )r1   ÚqweightÚqzerosÚscalesÚtemp_dqÚruntime_scaless   &&&&& r&   Úext_make_q_matrix_awqÚ(AwqExllamaV2Linear.ext_make_q_matrix_awqY   sU   € Ø#)§<¡<´5·=±=Ô#@™ÀfÇiÁiÔV[×VcÑVcÀiÓFdˆÜ*ØØØØØØØØØØó
ð 	
r)   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úscratch_space)r   )r$   r%   s   "€r&   r'   r(   h   s   ø€ ÷ ñ ¡|ñ r)   c                óŒ  <€ \        4       '       g   \        R \        4       ,           4      hV P                  P	                  \
        P                  R7      V n        V P                  P                  P                  R8X  g   Q hV P                  P                  P                  f   Q h\        V P                  V P                  V P                  4      w  V n        V n        V P                  4       pVP                  V4      pV P!                  V P                  V P                  V P                  V4      V n        \$        SV `M  4        R# )úCExLlamaV2 AWQ torch.ops kernels are not properly installed. Error: r=   ÚcudaN)r   ÚModuleNotFoundErrorr   rB   r?   r"   r>   r@   ÚdeviceÚtypeÚindexr
   rA   r   Útemp_dq_sizeÚ	get_slicerE   Úq_handler-   Ú	post_init)r1   rH   rP   rC   r3   s   &&  €r&   rS   ÚAwqExllamaV2Linear.post_inith   s   ø€ ô /×0Ò0Ü%Ð&kô  oJó  oLõ  'Ló  Mð  Mð —k‘k—n‘n¬5¯=©=�nÓ9ˆŒà�|‰|×"Ñ"×'Ñ'¨6Ô1Ð1Ð1Ø�|‰|×"Ñ"×(Ñ(Ò4Ð4Ð4ä$7Ø�L‰L˜$Ÿ+™+ t§y¡yó%
Ñ!ˆŒ�d”kð ×(Ñ(Ó*ˆØ×)Ñ)¨,Ó7ˆØ×2Ñ2°4·<±<ÀÇÁÈdÏkÉkÐ[bÓcˆŒä‰ÑÖr)   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r   Úx)r"   ÚTensor)r$   r%   s   "€r&   r'   r(   †   s   ø€ ÷ !#ñ !#™Ÿ™ñ !#r)   c                óÀ  € V P                  V4      ^ 8X  d   V P                  V4      # V P                  f   Q R4       h\        4       '       g   \	        R\        4       ,           4      hVP                  pVP                  RR V P                  3,           pV\        P                  8w  d!   VP                  \        P                  R7      pVP                  RVP                  R,          4      p\        P                  ! VP                  ^ ,          V P                  3\        P                  VP                  R7      p\        WP                  VR4       V\        P                  8w  d   VP                  VR7      pV P                   e   VP#                  V P                   4       V P$                  '       d   V P$                  P'                  WR7      pVP                  V4      # )	r   Nz;module.post_init() must be called before module.forward(). rJ   r=   )r#   rM   F)rV   Úoutéÿÿÿÿ)Ú
input_rowsÚempty_linear_outputrR   r   rL   r   r#   Úshaper   r"   r>   r?   ÚviewÚemptyrM   r   r   Úadd_r   Úapply)r1   rV   Úinput_dtypeÚ	out_shaperY   s   &&   r&   ÚforwardÚAwqExllamaV2Linear.forward†   sv  € Ø�?‰?˜1Ó Ô"Ø×+Ñ+¨AÓ.Ð.Ø�}‰}Ò(ð 	
ØIó	
Ð(ô /×0Ò0Ü%Ð&kô  oJó  oLõ  'Ló  Mð  Mà—g‘gˆØ—G‘G˜C˜R�L D×$5Ñ$5Ð#7Õ7ˆ	àœ%Ÿ-™-Ô'Ø—‘œ5Ÿ=™=�Ó)ˆAà�F‰F�2�q—w‘w˜r•{Ó#ˆä�kŠkØ�W‰W�Q�Z˜×*Ñ*Ð+Ü—-‘-Ø—8‘8ô
ˆô
 	' q¯-©-¸¸eÔDàœ%Ÿ-™-Ô'Ø—&‘&˜{�&Ó+ˆCà�9‰9Ò Ø�H‰H�T—Y‘YÔà�<�<ˆ<Ø—,‘,×$Ñ$ qÐ$Ó2ˆCà�x‰x˜	Ó"Ð"r)   c                óX   € V P                   V P                  ,          ^,          ^€,           # )zF
Returns the size of the temporary buffer required for the dq kernel.
)r   r   )r1   s   &r&   rP   ÚAwqExllamaV2Linear.temp_dq_size©   s%   € ð ×Ñ $×"3Ñ"3Õ3°aÕ7¸#Õ=Ð=r)   c                óR   € V P                   V,          V,          ^,          ^€,           # )zG
Returns the size of the temporary buffer required for the fwd kernel.
)r   ©r1   Úmax_input_lenÚmax_batch_sizes   &&&r&   Útemp_fwd_sizeÚ AwqExllamaV2Linear.temp_fwd_size¯   s$   € ð × Ñ  =Õ0°>ÕAÀAÕEÈÕKÐKr)   c                óN   € V P                  4       V P                  W4      ,           # )zF
Returns the size of the fixed scratch space required for the kernel.
)rP   rl   ri   s   &&&r&   Úscratch_space_fixedÚ&AwqExllamaV2Linear.scratch_space_fixedµ   s#   € ð × Ñ Ó" T×%7Ñ%7¸Ó%VÕVÐVr)   )rR   r@   rA   rB   )rZ   é    é@   é€   )i   é   )3Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r0   Ú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ÚSUPPORTS_DEVICESr   ÚLINUXÚWIN32ÚSUPPORTS_PLATFORMr"   Úint32ÚSUPPORTS_PACK_DTYPESr   ÚSUPPORTS_ADAPTERSr>   Úbfloat16ÚSUPPORTS_DTYPESÚREQUIRES_FORMAT_V2Ú
QUANT_TYPEr.   Úclassmethodr8   rE   rS   rd   rP   rl   ro   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r3   r%   s   @@r&   r   r      s'  ù‡ € Ø ×/Ñ/Ð0ÐØŸ
™
�|ÐØŸ™ RÐ(ÐØ�C€Mò ,ÐØ˜u˜ÐØ˜%�=€LØ€OØÐØ!ÐØ)+¨Ð%Ø*,¨Ð&àŸ™�}ÐØ!Ÿ™¨¯©Ð8ÐØ!ŸK™K˜=ÐØ˜Ðà—}‘} e§n¡nÐ5€OàÐð !€Jð Ø&+§k¡kØ#÷õ ð4 ñó ð÷
ð 
÷ó ÷<!#ð !#òF>òL÷Wô Wr)   r   c                 ó<   € W,           ^,
          V,          V,          # )é   r,   )rV   Úmultiples   &&r&   Únext_multiplerš   ¼   s   € Ø�\˜AÕ (Õ*¨hÕ6Ð6r)   )r"   Úadapter.adapterr   r   Úmodels._constr   r   Únn_modules.qlinearr   Úquantizationr   r	   Ú$quantization.awq.utils.packing_utilsr
   Úutils.backendr   Úutils.exllamav2r   r   r   r   r   Úutils.loggerr   Úlogr   rš   Ú__all__r,   r)   r&   Ú<module>r¥      sT   ðó ç ,ß -Ý /ß *Ý GÝ $÷õ õ )ñ ƒn€ô^W˜ô ^WòB7ð  Ð
 ‚r)   