+
    ÒÜ³j$  ã                   ó    € ^ RI t ^ RIHt ^ RIHt ^ RIHt ]! R4      w  tt] P                  ! R
RR7      t
 ! R R]P                  4      tR	 tR# )é    N)Ú
try_import)Úunpack_reorder_packÚexl_extÚmeta)Údevicec                   óR   a a€ ] tR t^t oV 3R ltR t]RR l4       tR tRt	Vt
V ;t# )ÚWQLinear_Exllamac           	     ó  <€ \         SV `  4        VR9  d   \        R4      hRV n        Wn        W0n        W@n        VR	8w  d   TMTV n        V P                  R\        P                  ! W4^ V P                  ,          ,          3\        P                  VR7      4       V P                  R\        P                  ! W0P                  ,          V^ V P                  ,          ,          3\        P                  VR7      4       V P                  R\        P                  ! W0P                  ,          V3\        P                  VR7      4       V'       d:   V P                  R\        P                  ! V\        P                  VR7      4       R# RV n        R# )
é   z,Only 4-bit are supported for Exllama kernelsNÚqweight©Údtyper   ÚqzerosÚscalesÚbias)r   éÿÿÿÿ)ÚsuperÚ__init__ÚNotImplementedErrorÚq4Úw_bitÚin_featuresÚout_featuresÚ
group_sizeÚregister_bufferÚtorchÚzerosÚint32Úfloat16r   )Úselfr   r   r   r   r   ÚdevÚ	__class__s   &&&&&&&€Ú[/home/luca/screen-checking/.venv/lib/python3.14/site-packages/awq/modules/linear/exllama.pyr   ÚWQLinear_Exllama.__init__   s=  ø€ Ü‰ÑÔà˜ÔÜ%Ð&TÓUÐUàˆŒàŒ
Ø&ÔØ(ÔØ(2°bÔ(8™*¸kˆŒð 	×ÑØÜ�KŠKØ¨r°T·Z±ZÕ/?Õ@ÐAÜ—k‘kØôô	
ð 	×ÑØÜ�KŠKØ§¡Õ/°À"ÈÏ
É
ÕBRÕ1SÐTÜ—k‘kØôô	
ð 	×ÑØÜ�KŠKØ§¡Õ/°Ð>Ü—m‘mØôô	
÷ Ø× Ñ ØÜ—’Ø!ÜŸ-™-Øôöð ˆDŽIó    c                óÈ  € 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        \        P                  V P                   V P
                  V P                  \        V P                   P                  P                  4      V n        R# )ÚcudaN)r   r   ÚtypeÚindexr   r   r   r   Úmake_q4r   Únone_tensorr   )r    s   &r#   Ú	post_initÚWQLinear_Exllama.post_initB   sŸ   € Ø�|‰|×"Ñ"×'Ñ'¨6Ô1Ð1Ð1Ø�|‰|×"Ñ"×(Ñ(Ò4Ð4Ð4ä$7Ø�L‰L˜$Ÿ+™+ t§z¡zó%
Ñ!ˆŒ�d”kô —/‘/Ø�L‰LØ�K‰KØ�K‰KÜØ�L‰L×Ñ×%Ñ%ó
ˆŽr%   c                ó®   € V ! VVVP                   VP                  VP                  R JVP                  P                  4      pV'       d   V# \        R4      h)Nz/Only inference is supported for Exllama kernels)r   r   r   Úweightr   r   )ÚclsÚlinearr   r   Ú	init_onlyr   r   Ú
awq_linears   &&&&&&& r#   Úfrom_linearÚWQLinear_Exllama.from_linearQ   sV   € ñ ØØØ×ÑØ×ÑØ�K‰K˜tÐ#Ø�M‰M× Ñ ó
ˆ
÷ ØÐä!Ð"SÓTÐTr%   c                ó  € V P                   f   Q R4       h\        f   \        R\        ,           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\        P                  WP                   V4       V\        P                  8w  d   VP                  VR7      pV P                  e   VP                  V P                  4       VP                  V4      # )Nzfmodule.post_init() must be called before module.forward(). Use exllama_post_init() on the whole model.z4External ExLlama kernels are not properly installed.)r   r   r   )r   r   ÚModuleNotFoundErrorÚmsgr   Úshaper   r   r   ÚtoÚviewÚemptyr   Ú	q4_matmulr   Úadd_)r    ÚxÚinput_dtypeÚ	out_shapeÚouts   &&   r#   ÚforwardÚWQLinear_Exllama.forwardb   s"  € Ø�w‰wÒ"ð 	
ð:ó	
Ð"ô Š?Ü%Ð&\Ô_bÕ&bÓcÐcà—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ô
ˆô
 	×Ñ˜!ŸW™W cÔ*àœ%Ÿ-™-Ô'Ø—&‘&˜{�&Ó+ˆCà�9‰9Ò Ø�H‰H�T—Y‘YÔà�x‰x˜	Ó"Ð"r%   )r   r   r   r   r   r   r   r   )FNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r,   Úclassmethodr4   rC   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r"   Ú__classdict__s   @@r#   r	   r	      s0   ù‡ € õ3òj
ð óUó ðU÷ #ò #r%   r	   c                 óˆ   € V P                  4        F-  w  r\        V\        4      '       g   K  VP                  4        K/  	  V # )N)Únamed_modulesÚ
isinstancer	   r,   )ÚmodelÚ_Ú	submodules   &  r#   Úexllama_post_initrT   ‚   s8   € Ø×+Ñ+Ö-‰ˆÜ�iÔ!1×2Ô2Ø×ÑÖ!ñ .ð €Lr%   )é   rU   )r   Útorch.nnÚnnÚawq.utils.moduler   Úawq.utils.packing_utilsr   r   r8   r<   r+   ÚModuler	   rT   © r%   r#   Ú<module>r\      sI   ðÛ Ý Ý 'Ý 7á˜)Ó$�€ˆð �kŠk˜&¨Ô0€ôs#�r—y‘yô s#ôlr%   