+
    "Ý³j¸6  ã                   ó  € ^ RI 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 ^R	IHtHtHtHtHtHtHtHtHtHtHtHtH t H!t!H"t"H#t#H$t$H%t%H&t& ^R
I'H(t( ^RI)H*t* ]! 4       t+Rt, ! R R]4      t-R.t.R# )é    )ÚOptionalÚTupleN)ÚAdapterÚLora)ÚDEVICEÚPLATFORM)ÚAWQuantLinear)ÚFORMATÚMETHOD)ÚBACKEND)Úsetup_logger)Ú%_marlin_all_visible_devices_supportedÚapply_awq_marlin_linearÚapply_awq_marlin_linear_paddedÚawq_marlin_repackÚawq_to_marlin_zero_pointsÚmarlin_import_exceptionÚmarlin_is_tile_alignedÚmarlin_make_workspace_newÚmarlin_pad_awq_qweightÚmarlin_pad_awq_qzerosÚmarlin_pad_dimÚmarlin_pad_scalesÚmarlin_padded_nkÚmarlin_permute_biasÚmarlin_permute_scalesÚmarlin_runtime_availableÚmarlin_runtime_errorÚmarlin_validate_runtime_deviceÚreplace_parameter)Úscalar_types)ÚIS_ROCMc                   ó<  a a€ ] tR t^0t o]P
                  .t]P                  .t	]
P                  ^Z]
P                  ^Z/t^^.t. ROtRR.tRR.tRtRtRt^.t^.t]P0                  .t]P6                  .t]P<                  .t] .t!]PD                  ]PF                  .t$Rt%Rt&^]'PP                  ^]'PR                  /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4       t.],V3R lV 3R ll4       t/V 3R lt0V3R lR lt1Rt2Vt3V ;t4# )ÚAwqMarlinLinearTFÚ
awq_marlinNc                ó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Údesc_actÚsymÚin_featuresÚout_featuresÚbiasÚ
pack_dtypeÚadapter)ÚintÚboolÚtorchÚdtyper   )ÚformatÚ__classdict__s   "€Úh/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/marlin_awq.pyÚ__annotate__ÚAwqMarlinLinear.__annotate__P   sr   ø€ ÷ l4ñ l4Ùðl4áðl4ñ ðl4ñ ð	l4ñ
 ðl4ñ ðl4ñ ðl4ñ Ÿ™ðl4ñ ñl4ó    c                óÌ  <€ ^V n         VP                  R4      ;'       g    \        P                  V n        VP                  R\        P                  4      pV\        P                  \        P                  39   d   \        We4      '       g   \        R4      h\        SV `4  ! RRVRVRVRVRVR	VR
VRVRVRV	RR/VB  V
'       EdÁ   V P                  R\        P                  P!                  \        P"                  ! V P$                  V P&                  V P(                  ,          \        P*                  R7      RR7      4       V P                  R\        P                  P!                  \        P"                  ! V P$                  V P,                  ,          V P&                  V P(                  ,          \        P*                  R7      RR7      4       V P                  R\        P                  P!                  \        P"                  ! V P$                  V P,                  ,          V P&                  V P                  R7      RR7      4       V'       d4   V P/                  R
\        P0                  ! VV P                  R7      4       MRV n        V P/                  R\        P"                  ! ^ \        P*                  R7      RR7       V P/                  R\        P"                  ! ^ \        P*                  R7      RR7       V P/                  R\        P"                  ! ^ \        P*                  R7      RR7       RV n        VP                  R4      e,   VP                  R4      e   VR,          VR,          8H  V n        V P6                  V P8                  9  d4   \;        RV P6                   RV P8                  P=                  4        24      hV P8                  V P6                  ,          V n        R# )é   r4   Úbackendz™Automatic AWQ Marlin selection keeps tile-misaligned shapes on the next compatible backend; request AWQ_MARLIN explicitly to enable runtime tile padding.r(   r)   r+   r*   r,   r-   r.   r/   r0   Úregister_buffersFÚqweight©r4   )Úrequires_gradÚqzerosÚscalesNÚ	workspace)Ú
persistentÚg_idxÚg_idx_sort_indicesÚnameÚlm_head_namezUnsupported num_bits = z. Supported num_bits = © ) Úmax_parÚgetr3   Úfloat16Úcompute_dtypeÚpopr   Ú
AWQ_MARLINÚAUTOÚAUTO_TRAINABLEr   ÚNotImplementedErrorÚsuperÚ__init__Úregister_parameterÚnnÚ	ParameterÚemptyr,   r-   Úpack_factorÚint32r)   Úregister_bufferÚzerosr.   Ú
is_lm_headr(   ÚTYPE_MAPÚ
ValueErrorÚkeysÚweight_type)Úselfr(   r)   r*   r+   r,   r-   r.   r/   r0   r>   ÚkwargsÚselected_backendÚ	__class__s   &&&&&&&&&&&, €r7   rU   ÚAwqMarlinLinear.__init__P   s�  ø€ ð ˆŒØ#ŸZ™Z¨Ó0×AÐA´E·M±MˆÔà!Ÿ:™: i´×1CÑ1CÓDÐà¤§¡¬g×.DÑ.DÐEÔEÔNdØ÷O
ò O
ô &ð2óð ô 	‰Òñ 	Øð	à!ð	ð ð	ð ð		ð
 $ð	ð &ð	ð ð	ð "ð	ð %ð	ð ð	ð #ð	ð ò	÷ ÐØ×#Ñ#ØÜ—‘×"Ñ"Ü—K’KØ×(Ñ(Ø×)Ñ)¨T×-=Ñ-=Õ=Ü#Ÿk™kôð
 #(ð #ó ô
ð ×#Ñ#ØÜ—‘×"Ñ"Ü—K’KØ×(Ñ(¨D¯O©OÕ;Ø×)Ñ)¨T×-=Ñ-=Õ=Ü#Ÿk™kôð
 #(ð #ó ô
ð ×#Ñ#ØÜ—‘×"Ñ"Ü—K’KØ×(Ñ(¨D¯O©OÕ;Ø×)Ñ)Ø"×0Ñ0ôð
 #(ð #ó ô
÷ Ø×$Ñ$ØÜ—K’KØ%Ø"×0Ñ0ôõð !�”	ð 	×ÑØœŸš Q¬e¯k©kÔ:Àuð 	ô 	
ð 	×ÑØ”U—[’[ ¬%¯+©+Ô6À5ð 	ô 	
ð 	×ÑØ Ü�KŠK˜¤§¡Ô-Øð 	ô 	
ð  ˆŒØ�:‰:�fÓÒ)¨f¯j©j¸Ó.HÒ.TØ$ V�n°°~Õ0FÑFˆDŒOà�9‰9˜DŸM™MÔ)ÜÐ6°t·y±y°kð B5Ø59·]±]×5GÑ5GÓ5IÐ4JðLó Mð Mð  Ÿ=™=¨¯©Õ3ˆÖr:   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# ©r'   Úreturn©r   r2   r   Ú	Exception)r5   r6   s   "€r7   r8   r9   È   s#   ø€ ÷ ñ ™e¡D©(±9Õ*=Ð$=Õ>ñ r:   c                ó8   € \         e   R\        \         4      3# R# )NF©TN)r   ÚImportError)Úclss   &r7   Úvalidate_onceÚAwqMarlinLinear.validate_onceÇ   s   € ä"Ò.Øœ+Ô&=Ó>Ð>Ð>ØÐr:   c                óF   <€ V ^8„  d   QhRS[ S[S[S[,          3,          /# ri   rk   )r5   r6   s   "€r7   r8   r9   Î   s#   ø€ ÷ ñ ¡%©©h±yÕ.AÐ(AÕ"Bñ r:   c                ód  <€ \         SV `  ! R/ VB w  r#V'       g   W#3# VP                  R ^4      pVP                  R4      pVP                  R4      pVf   R	# ^ V,          pWg,          ^ 8w  d   R\        RV RV R24      3# V^8w  d'   Ve#   \	        We4      '       g   R\        RV R24      3# R	# )
r(   r,   r-   Fz9AWQ Marlin out_features must be divisible by pack_factor=z; got N=Ú.zLAWQ Marlin runtime tile padding is enabled only for 4-bit weights; got bits=rJ   rn   )rT   Ú	_validaterL   rS   r   )	rp   ÚargsÚokÚerrr(   r,   r-   rZ   rf   s	   &,      €r7   rv   ÚAwqMarlinLinear._validateÍ   sê   ø€ ä‘'Ò#Ñ+ dÑ+‰ˆßØ�7ˆNà�x‰x˜ Ó"ˆØ—h‘h˜}Ó-ˆØ—x‘x Ó/ˆØÒØÐð ˜D•jˆØÕ%¨Ô*ØÔ-ðØ*˜m¨8°L°>ÀðDóð ð ð �1Œ9˜Ò0Ô9OØ÷:
ò :
ð Ô-ð%Ø%) F¨!ð-óð ð ð
 Ðr:   c                óD   <€ V ^8„  d   QhRS[ S[P                  ,          /# )r'   Údevice)r   r3   r|   )r5   r6   s   "€r7   r8   r9   í   s   ø€ ÷ =ñ =¡V©e¯l©lÕ%:ñ =r:   c                ó(  <€ \         SV `  V4       \        V\        P                  4      '       d   VP
                  MTR \        P                  39   d—   \        '       d   \        R4      h\        V\        4      '       d#   \        \        4      '       g   \        R4      hR# \        V\        P                  4      '       d   TMVP                  4       p \        V\        RR7       R# R#   \         d   p\        \        T4      4      ThRp?ii ; i)Úcudaz'Marlin kernel is not supported on ROCm.z6Marlin kernel only supports compute capability >= 8.0.Nú
AWQ Marlin©Úmin_capabilityÚbackend_name)rT   Úvalidate_deviceÚ
isinstancer3   r|   Útyper   ÚCUDAr"   rS   r   Ú_AWQ_MARLIN_MIN_CAPABILITYÚto_torch_devicer   r`   Ústr)rp   r|   ÚtargetÚexcrf   s   &&  €r7   rƒ   ÚAwqMarlinLinear.validate_deviceì   sÒ   ø€ ä‰Ñ Ô'Ü% f¬e¯l©l×;Ò;ˆF�KŠKÀÈVÔU[×U`ÑU`ÐLaÔaß‹wÜ)Ð*SÓTÐTÜ˜&¤&×)Ò)Ü<Ô=W×XÒXÜ-Ð.fÓgÐgÙÜ)¨&´%·,±,×?Ò?‘VÀV×E[ÑE[ÓE]ˆFð=Ü.ØÜ#=Ø!-÷ñ bøô ô =Ü)¬#¨c«(Ó3¸Ð<ûð=ús   ÃC, Ã,DÃ7DÄDc           	     óø  <€ V P                   P                  p\        V\        R R7       \	        V P
                  4      '       g&   \        R\        V P
                  4      ,           4      h\        V4      V n	        V P                  V P                  8X  d   RMV P                  p\        V P                  V P                  V4      w  r4W43V P                  V P                  38X  d   RMW43V n        \        V P                   P!                  4       V P                  V P                  VVV P"                  4      p\%        VVVV P"                  V P
                  R7      p\'        V RV4       \)        V P*                  P!                  4       V P                  V P                  VVV4      p\-        VVVVR7      p\'        V RV4       \/        V P0                  P!                  4       V P                  V P                  VVVV P"                  4      p	VR8X  d   ^MWB,          p
\3        V	V
VV P"                  R7      p\'        V R	V4       \4        P6                  ! ^ \4        P8                  VR
7      V n        \4        P6                  ! ^ \4        P8                  VR
7      V n        \?        V R4      '       dH   V P@                  e:   \C        \E        V P@                  V P                  V4      4      V P@                  n#        \H        SV `•  4        R# )r   r€   z<Marlin torch.ops kernels are not properly installed. Error: Nr@   r?   )Úsize_kÚsize_nr)   rC   )rŽ   r�   Únum_bitsrB   )r4   r|   r.   éÿÿÿÿ)&r?   r|   r   r‡   r   rN   ÚModuleNotFoundErrorr   r   rD   Úrequested_group_sizer,   r   r-   Ú_marlin_tile_paddingr   Ú
contiguousr(   r   r    r   rC   r   r   rB   r   r3   rY   r1   rF   rG   Úhasattrr.   r   r   ÚdatarT   Ú	post_init)rc   r|   Úmarlin_group_sizeÚpadded_nÚpadded_kÚpadded_qweightÚmarlin_qweightÚpadded_scalesÚmarlin_scalesÚpadded_qzerosÚpadded_groupsÚ	marlin_zprf   s   &           €r7   r˜   ÚAwqMarlinLinear.post_init   s¥  ø€ Ø—‘×$Ñ$ˆÜ&ØÜ5Ø%õ	
ô (¨×(:Ñ(:×;Ò;Ü%ØNÜ& t×'9Ñ'9Ó:õ;óð ô 3°6Ó:ˆŒð
 ×(Ñ(¨D×,<Ñ,<Ô<ñ à×*Ñ*ð 	ô
 .Ø×ÑØ×ÑØó
Ñˆð Ð#¨×(9Ñ(9¸4×;KÑ;KÐ'LÔLñ àÐ%ð 	Ô!ô 0Ø�L‰L×#Ñ#Ó%Ø×ÑØ×ÑØØØ�I‰Ió
ˆô +ØØØØ�I‰IØ×$Ñ$ô&ˆô 	˜$ 	¨>Ô:ô *Ø�K‰K×"Ñ"Ó$Ø×ÑØ×ÑØØØó
ˆô .ØØØØ(ô	*ˆô
 	˜$ ¨-Ô8ô .Ø�K‰K×"Ñ"Ó$Ø×ÑØ×ÑØØØØ�I‰Ió
ˆð /°"Ô4™¸(Õ:WˆÜ-ØØ ØØ—Y‘Yô	 ˆ	ô
 	˜$ ¨)Ô4ô —[’[ ¬%¯)©)¸FÔCˆŒ
Ü"'§+¢+¨a´u·y±yÈÔ"PˆÔä�4˜× Ò  T§Y¡YÒ%:Ü0Ü˜tŸy™y¨$×*;Ñ*;¸XÓFóˆD�I‰IŒNô 	‰ÑÖr:   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r'   Úx)r3   ÚTensor)r5   r6   s   "€r7   r8   r9   `  s   ø€ ÷ 2ñ 2™Ÿ™ñ 2r:   c                ó  € V P                  V4      ^ 8X  d   V P                  V4      # V P                  P                  4       ^ 8”  g   Q R4       hV P                  '       d   VP                  4       MTpV P                  P                  VP                  8w  d?   V P                  P                  P                  VP                  4      V P                  n        V P                  ed   V P                  P                  VP                  8w  d?   V P                  P                  P                  VP                  4      V P                  n        V P                  f|   \        VV P                  V P                  V P                  V P                  V P                   V P                  V P"                  V P$                  V P&                  V P                  R7      pM…\)        V P                  VV P                  V P                  V P                  V P                  V P                   V P                  V P"                  V P$                  V P&                  V P                  R7      pV P*                  '       d   V P*                  P-                  WR7      pV# )r   zemodule.post_init() must be called before module.forward(). Use marlin_post_init() on the whole model.)ÚinputÚweightÚweight_scaleÚ	weight_zprF   rG   rD   Ú
quant_typeÚoutput_size_per_partitionÚinput_size_per_partitionr.   )Útile_paddingr¨   r©   rª   r«   rF   rG   rD   r¬   r­   r®   r.   )r¥   Úout)Ú
input_rowsÚempty_linear_outputrD   Únumelr^   r•   rC   r4   r—   Útor.   r”   r   r?   rB   rF   rG   rb   r-   r,   r   r0   Úapply)rc   r¥   r°   s   && r7   ÚforwardÚAwqMarlinLinear.forward`  sÒ  € Ø�?‰?˜1Ó Ô"Ø×+Ñ+¨AÓ.Ð.Ø�~‰~×#Ñ#Ó%¨Ô)ð 	
ð9ó	
Ð)ð
 #ŸoŸo˜oˆA�L‰LŒN°1ˆà�;‰;×Ñ §¡Ô'Ø#Ÿ{™{×/Ñ/×2Ñ2°1·7±7Ó;ˆD�K‰KÔà�9‰9Ò  T§Y¡Y§_¡_¸¿¹Ô%?Ø!ŸY™YŸ^™^×.Ñ.¨q¯w©wÓ7ˆD�I‰IŒNð ×$Ñ$Ò,Ü)ØØ—|‘|Ø!Ÿ[™[ØŸ+™+Ø—j‘jØ#'×#:Ñ#:ØŸ.™.Ø×+Ñ+Ø*.×*;Ñ*;Ø)-×)9Ñ)9Ø—Y‘Yô‰Cô 1Ø!×6Ñ6ØØ—|‘|Ø!Ÿ[™[ØŸ+™+Ø—j‘jØ#'×#:Ñ#:ØŸ.™.Ø×+Ñ+Ø*.×*;Ñ*;Ø)-×)9Ñ)9Ø—Y‘YôˆCð �<�<ˆ<Ø—,‘,×$Ñ$ qÐ$Ó2ˆCàˆ
r:   )	r”   r.   rN   rF   rG   r^   rK   rb   rD   )r‘   é    é@   é€   )5Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rP   ÚSUPPORTS_BACKENDSr   ÚAWQÚSUPPORTS_METHODSr
   ÚGEMMÚMARLINÚ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   r†   ÚSUPPORTS_DEVICESr   ÚLINUXÚSUPPORTS_PLATFORMr3   r[   ÚSUPPORTS_PACK_DTYPESr   ÚSUPPORTS_ADAPTERSrM   Úbfloat16ÚSUPPORTS_DTYPESÚREQUIRES_FORMAT_V2Ú
QUANT_TYPEr!   Úuint4Úuint8r_   rU   Úclassmethodrq   rv   rƒ   r˜   r¶   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)rf   r6   s   @@r7   r$   r$   0   s`  ù‡ € Ø ×+Ñ+Ð,ÐØŸ
™
�|ÐØŸ™ R¨¯©¸Ð;ÐØ˜�F€MÚ+ÐØ˜u˜ÐØ˜%�=€LØ€OØÐØ!ÐØ)*¨Ð%Ø*+¨Ð&àŸ™�}ÐØ!Ÿ™Ð(ÐØ!ŸK™K˜=ÐØ˜Ðà—}‘} e§n¡nÐ5€OàÐð €Jð 	
ˆ<×ÑØ	ˆ<×Ñð€Hð Ø&+§k¡kØ#Ø"÷l4õ l4ðn ÷ó ðð
 ÷ò ó ðð< ÷=ò =ó ð=õ&^÷@2÷ 2ð 2r:   r$   )r<   r   )/Útypingr   r   r3   Úadapter.adapterr   r   Úmodels._constr   r   Únn_modules.qlinearr	   Úquantizationr
   r   Úutils.backendr   Úutils.loggerr   Úutils.marlinr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    Úutils.marlin_scalar_typer!   Ú
utils.rocmr"   Úlogr‡   r$   Ú__all__rJ   r:   r7   Ú<module>ré      sm   ð÷ #ã ç ,ß -Ý /ß *Ý $Ý (÷÷ ÷ ÷ ÷ ñ õ* 5Ý !ñ ƒn€à#Ð ôb�mô bðJ Ð
‚r:   