+
    "Ý³j›c  ã                  ó<  € R t ^ RIHt ^ RIt^ 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Ht ^RIHtHt ^RIHt ^R	IHt ^R
I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( ]! 4       t) ! R R]4      t*R R lt+R R lt, ! R R]4      t-RR.t.R# )z@Swordfish (Blackwell sm100/sm110) weight-quantized linear layer.)ÚannotationsN)ÚListÚOptionalÚTuple)ÚAdapterÚLora)ÚDEVICEÚPLATFORM)ÚAWQuantLinearÚGPTQQuantLinear)ÚFORMATÚMETHOD)ÚBACKEND)Úsetup_logger)Úreplace_parameter)Úscalar_types)ÚIS_ROCM)	Ú"_validate_swordfish_device_supportÚcheck_swordfish_supports_shapeÚ%query_swordfish_supported_group_sizesÚ%query_swordfish_supported_quant_typesÚswordfish_extension_availableÚswordfish_extension_errorÚswordfish_mmÚswordfish_prepack_BÚswordfish_runtime_errorc                  ó,  a € ] tR t^'t]P
                  .t]P                  .t	]
P                  ^e/t^^.t. ROtRR.tRR.tRtRtRtRt^@.t^@.t]P.                  .t]P4                  .t]P:                  .t].t ]PB                  ]PD                  .t#Rt$Rt%R]&PN                  R]&PP                  R]&PR                  /t*R]P:                  RRR3R V 3R lllt+],R R l4       t-],R	 V 3R
 ll4       t.],R V 3R ll4       t/V 3R lt0R V 3R llt1R R lt2Rt3V ;t4# )ÚSwordfishLinearTFÚ	swordfishNc               ó@   € V ^8„  d   QhRRRRRRRRRRRRR	RR
RRRRR/
# )é   ÚbitsÚintÚ
group_sizeÚdesc_actÚboolÚsymÚin_featuresÚout_featuresÚbiasÚ
pack_dtypeútorch.dtypeÚregister_buffersÚadapterr   © )Úformats   "Úg/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/nn_modules/qlinear/swordfish.pyÚ__annotate__ÚSwordfishLinear.__annotate__F   s†   € ÷ \Nñ \Nàð\Nð ð\Nð ð	\Nð
 ð\Nð ð\Nð ð\Nð ð\Nð  ð\Nð ð\Nð ñ\Nó    c                	óH  <€ W3V P                   9  d   \        R V RV 24      hVP                  R4      ;'       g    \        P                  V n        \        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RRV/VB  V P                  R\        P                  P                  \        P                  ! V P                  V P                   ,          V P"                  3V P$                  R7      RR7      4       V P                  R\        P                  P                  \        P                  ! V P                  \        P&                  R7      RR7      4       \(        P*                  ! V P                  V P,                  ,          4      pV P                  R\        P                  P                  \        P                  ! WÐP"                  3V P
                  R7      RR7      4       V P                  R\        P                  P                  \        P                  ! WÐP"                  V P                   ,          3V P$                  R7      RR7      4       V'       d?   V P/                  R	\        P0                  ! V P"                  3V P
                  R7      4       MRV n        V P                   V P4                  V P6                  3,          V n        RV n        V P/                  R\        P                  ! ^ \        P&                  R7      4       R# )ú&Unsupported quantization config: bits=ú, sym=Údtyper!   r#   r&   r$   r'   r(   r)   r*   Úbackendr-   r,   Fr/   Úqweight©r7   ©Úrequires_gradÚg_idxÚscalesÚqzerosNÚ
input_permr.   )ÚTYPE_MAPÚ
ValueErrorÚgetÚtorchÚfloat16Úcompute_dtypeÚsuperÚ__init__Úpopr   ÚGPTQ_SWORDFISHÚregister_parameterÚnnÚ	ParameterÚemptyr'   Úpack_factorr(   r*   Úint32ÚmathÚceilr#   Úregister_bufferÚzerosr)   r!   r&   Úweight_typeÚhas_zero_points)Úselfr!   r#   r$   r&   r'   r(   r)   r*   r,   r-   r/   ÚkwargsÚgrouped_rowsÚ	__class__s   &&&&&&&&&&&&, €r0   rH   ÚSwordfishLinear.__init__F   sÔ  ø€ ð ˆ;˜dŸm™mÔ+ÜÐEÀdÀVÈ6ÐRUÐQVÐWÓXÐXà#ŸZ™Z¨Ó0×AÐA´E·M±MˆÔä‰Òñ 	
Øð	
à!ð	
ð ð	
ð ð		
ð
 $ð	
ð &ð	
ð ð	
ð "ð	
ð —J‘J˜y¬'×*@Ñ*@ÓAð	
ð ð	
ð #ð	
ð ð	
ð ò	
ð& 	×ÑØÜ�H‰H×ÑÜ—’Ø×%Ñ%¨×)9Ñ)9Õ9¸4×;LÑ;LÐMØŸ/™/ôð $ð ó ô		
ð 	×ÑØÜ�H‰H×ÑÜ—’˜D×,Ñ,´E·K±KÔ@Ø#ð ó ô	
ô —y’y ×!1Ñ!1°D·O±OÕ!CÓDˆØ×ÑØÜ�H‰H×ÑÜ—’Ø!×#4Ñ#4Ð5Ø×,Ñ,ôð $ð ó ô		
ð 	×ÑØÜ�H‰H×ÑÜ—’Ø!×#4Ñ#4¸×8HÑ8HÕ#HÐIØŸ/™/ôð $ð ó ô		
÷ Ø× Ñ ØÜ—’˜T×.Ñ.Ð0¸×8JÑ8JÔKõð
 ˆDŒIàŸ=™=¨$¯)©)°T·X±XÐ)>Õ?ˆÔØ$ˆÔà×Ñ˜\¬5¯;ª;°qÄÇÁÔ+LÖMr3   c               ó   € V ^8„  d   QhRR/# ©r    Úreturnz Tuple[bool, Optional[Exception]]r.   )r/   s   "r0   r1   r2   ¥   ó   € ÷ ñ Ð>ñ r3   c                	óP   € \        4       '       g   R \        \        4       4      3# R# ©F©TN©r   ÚImportErrorr   ©Úclss   &r0   Úvalidate_onceÚSwordfishLinear.validate_once¤   ó%   € ä,×.Ò.Øœ+Ô&?Ó&AÓBÐBÐBØÐr3   c               ó   € V ^8„  d   QhRR/# r]   r.   )r/   s   "r0   r1   r2   «   s   € ÷ (ñ (Ð!Añ (r3   c                	ó   <€ \         SV `  ! R/ VB w  r#V'       g   W#3# VP                  R 4      pVP                  R4      pVe'   Ve#   \        WE4      w  rgV'       g   R\	        V4      3# VP                  R4      pVP                  RR4      p	VP                  RR4      p
V^8X  d   V
'       d   R\	        R4      3# V^8X  d   V	'       g   R\	        R4      3# V P
                  P                  W‰34      pVf   R\	        R	V R
V	 24      3# V\        V	'       * R7      9  d   R\	        R	V R
V	 24      3# VP                  R4      pVP                  R4      ;'       g    \        P                  pV\        V4      9  d   R\	        RV RV 24      3# Ve:   Ve6   VR8w  d/   WL,          ^ 8w  g   V^ ,          ^ 8w  d   R\	        RV RV 24      3# R# )r'   r(   Fr!   r&   Tr$   zHSwordfish 8-bit weights do not support activation reordering (desc_act).z?Swordfish 8-bit weights do not support zero points (sym=False).z Swordfish does not support bits=r6   ©Úzero_pointsr#   r7   ú&Swordfish does not support group_size=ú for dtype=z[Swordfish requires in_features % group_size == 0 and group_size % 32 == 0, got in_features=ú, group_size=r.   éÿÿÿÿrb   ©
rG   ÚvalidaterC   r   rB   rA   r   rD   rE   r   )rf   ÚargsÚokÚerrr'   r(   Ú	supportedÚreasonr!   r&   r$   Ú
quant_typer#   r7   rZ   s   &,            €r0   rs   ÚSwordfishLinear.validateª   sï  ø€ ä‘'Ò"Ñ* TÑ*‰ˆßØ�7ˆNà—h‘h˜}Ó-ˆØ—x‘x Ó/ˆØÒ" |Ò'?Ü >¸{Ó YÑˆIßØœj¨Ó0Ð0Ð0à�x‰x˜ÓˆØ�h‰h�u˜dÓ#ˆØ—8‘8˜J¨Ó.ˆØ�1Œ9ŸØœ*Ð%oÓpÐpÐpØ�1Œ9ŸSØœ*Ð%fÓgÐgÐgà—\‘\×%Ñ% t kÓ2ˆ
ØÒØœ*Ð'GÈÀvÈVÐTWÐSXÐ%YÓZÐZÐZØÔBÐSVÌwÔWÔWØœ*Ð'GÈÀvÈVÐTWÐSXÐ%YÓZÐZÐZà—X‘X˜lÓ+ˆ
Ø—‘˜Ó!×2Ð2¤U§]¡]ˆØÔBÀ5ÓIÔIØœ*Ø8¸¸ÀKÐPUÈwÐWóð ð ð Ò" zÒ'=À*ÐPRÔBRØÕ'¨1Ô,°
¸RµÀ1Ô0DØœjð'Ø'2 m°=ÀÀðNóð ð ð
 Ðr3   c               ó   € V ^8„  d   QhRR/# ©r    ÚdevicezDEVICE | torch.devicer.   )r/   s   "r0   r1   r2   Ö   ó   € ÷ Oñ OÐ%:ñ Or3   c                	ó’  <€ \         SV `  V4       \        V\        P                  4      '       d   VP
                  MTR \        P                  39   dô   \        '       d   \        R4      h\        V\        P                  4      '       d   V3Mu\        ;QJ d9    . R \        \        P                  P                  4       4       4       F  NK  	  5M2! R \        \        P                  P                  4       4       4       4      pV'       g   \        R4      hV F(  p\        V4      '       d   K  \        \        V4      4      h	  R# R# )Úcudaú*Swordfish kernel is not supported on ROCm.c              3  óT   "  € T F  p\         P                  ! R V 24      x € K   	  R# 5i©zcuda:N©rD   r}   ©Ú.0Úindexs   & r0   Ú	<genexpr>Ú2SwordfishLinear.validate_device.<locals>.<genexpr>Þ   ó$   é € ÐgÑFf¸Uœ5Ÿ<š<¨%°¨w¨×8Ð8ÓFfùó   ‚&(úSwordfish kernel requires CUDA.N©rG   Úvalidate_deviceÚ
isinstancerD   r}   Útyper   ÚCUDAr   ÚNotImplementedErrorÚtupleÚranger€   Údevice_countr   r   ©rf   r}   ÚtargetsÚtargetrZ   s   &&  €r0   rŽ   ÚSwordfishLinear.validate_deviceÕ   óç   ø€ ä‰Ñ Ô'Ü% f¬e¯l©l×;Ò;ˆF�KŠKÀÈVÔU[×U`ÑU`ÐLaÔaß‹wÜ)Ð*VÓWÐWô ˜f¤e§l¡l×3Ò3ð ‘	ç”UÑgÄeÌEÏJÉJ×LcÑLcÓLeÔFfÓg—U‘UÑgÄeÌEÏJÉJ×LcÑLcÓLeÔFfÓgÓgð ÷
 Ü)Ð*KÓLÐLÛ!�Ü9¸&×AÔAÜ-Ô.EÀfÓ.MÓNÐNó "ñ br3   c                	óÞ  <€ V P                   P                  pR pV P                  '       d�   \        P                  ! V P
                  4      P                  \        P                  4      p\        V R\        P                  P                  \        P                  ! ^ \        P                  VR7      RR7      4       \        V P                   P                  V P                  V P                  V P                   VR7      p\        V R\        P                  P                  VP#                  4       RR7      4       V P$                  P                  P#                  4       pVP&                  V P(                  8w  d   VP                  V P(                  4      p\        V R\        P                  P                  VRR7      4       V P*                  '       dV   \        V R\        P                  P                  \        P                  ! ^ V P,                  VR7      RR7      4       RV n        M»^R	IHp \5        ^V P                   ^,
          ,          4      pV! V P6                  P                  V P8                  ^R
7      pWgP                  VP&                  4      ,
          V,          P#                  4       p\        V R\        P                  P                  VRR7      4       RV n        Ve   VP                  VR7      V n        M,\        P                  ! ^ \        P                  VR7      V n        V P<                  e,   V P<                  P                  WP(                  R7      V n        \>        S	V `�  4        R # )Nr=   ©r7   r}   Fr;   ©Únum_bitsÚpermr9   r>   r?   )Ú"unpack_quantized_values_into_int32)Ú
packed_dimT©r}   ©r}   r7   )!r9   r}   r$   rD   Úargsortr=   ÚtorP   r   rL   rM   rN   r   Údatar'   r(   r!   Ú
contiguousr>   r7   rF   r&   r*   rV   Úutils.macheter    Úfloatr?   rU   r@   r)   rG   Ú	post_init)
rW   r}   rŸ   Ú	prepackedr>   r    Ú
half_rangeÚqzeros_unpackedÚ	qzeros_fprZ   s
   &        €r0   rª   ÚSwordfishLinear.post_initæ   s“  ø€ Ø—‘×$Ñ$ˆàˆØ�=�=ˆ=Ü—=’= §¡Ó,×/Ñ/´·±Ó<ˆDô ØØÜ—‘×"Ñ"Ü—K’K ¬¯©¸VÔDØ"'ð #ó ôô (Ø�L‰L×ÑØ×ÑØ×ÑØ—Y‘YØô
ˆ	ô 	ØØÜ�H‰H×Ñ˜y×3Ñ3Ó5ÀUÐÓKô	
ð —‘×!Ñ!×,Ñ,Ó.ˆØ�<‰<˜4×-Ñ-Ô-Ø—Y‘Y˜t×1Ñ1Ó2ˆFÜØØÜ�H‰H×Ñ˜v°UÐÓ;ô	
ð �8�8ˆ8ÜØØÜ—‘×"Ñ"Ü—K’K ¨¯©ÀÔHØ"'ð #ó ôð $)ˆDÕ õ Lä˜q T§Y¡Y°¥]Õ3Ó4ˆJÙ@Ø—‘× Ñ Ø× Ñ ØôˆOð
 %×'9Ñ'9¸&¿,¹,Ó'GÕGÈ6ÕQ×]Ñ]Ó_ˆIÜØØÜ—‘×"Ñ" 9¸EÐ"ÓBôð
 $(ˆDÔ ð ÒØ"Ÿg™g¨V˜gÓ4ˆD�Oä#Ÿkšk¨!´5·;±;ÀvÔNˆDŒOà�9‰9Ò ØŸ	™	Ÿ™¨F×:LÑ:L˜ÓMˆDŒIä‰ÑÖr3   c               ó   € V ^8„  d   QhRR/# ©r    r^   r   r.   )r/   s   "r0   r1   r2   4  ó   € ÷ ñ ˜dñ r3   c                	óš   <€ \         SV `  4       p\        V R 4      '       d*   V P                  e   VP	                  V P                  4       V# ©r@   ©rG   Úlist_buffersÚhasattrr@   Úappend©rW   ÚbufrZ   s   & €r0   r¶   ÚSwordfishLinear.list_buffers4  ó;   ø€ Ü‰gÑ"Ó$ˆÜ�4˜×&Ò&¨4¯?©?Ò+FØ�J‰J�t—‘Ô'Øˆ
r3   c               ó   € V ^8„  d   QhRR/# ©r    Úxútorch.Tensorr.   )r/   s   "r0   r1   r2   :  s   € ÷ 0ñ 0˜ñ 0r3   c                	ó  € V P                  V4      ^ 8X  d   V P                  V4      # VP                  RVP                  R,          4      P	                  4       pV P
                  P                  4       ^ 8”  dO   V P
                  pVP                  VP                  8w  d   VP                  VP                  R7      pVRV3,          pV P                  pVP                  VP                  8w  d   VP                  VP                  R7      pV P                  '       dy   V P                  e    V P                  P                  4       ^ 8”  g   Q R4       hV P                  pVP                  VP                  8w  d   VP                  VP                  R7      pMRpV P                  R8X  d   RMV P                  p\        VV P                   VVV P"                  V P$                  VV P&                  R7      pV P(                  e6   VP+                  V P(                  P                  VP                  R7      4       VP                  VP                  RR V P$                  3,           4      pV P,                  e   V P,                  P/                  WR7      pV# )	é    r¢   ºNNNr:   NzGAsymmetric SwordfishLinear requires non-empty qzeros after post_init().©ÚaÚb_packedÚgroup_scalesr#   Úsize_kÚsize_nÚ	group_zpsrž   ©r¿   Úoutrq   )Ú
input_rowsÚempty_linear_outputÚreshapeÚshaper§   r@   Únumelr}   r¥   r>   r7   rV   r?   Úrequested_group_sizer#   r   r9   r'   r(   r!   r)   Úadd_r-   Úapply)	rW   r¿   Úinput_2drŸ   rÇ   Úgroup_zerosÚkernel_group_sizeÚoutputÚresults	   &&       r0   ÚforwardÚSwordfishLinear.forward:  sÿ  € Ø�?‰?˜1Ó Ô"Ø×+Ñ+¨AÓ.Ð.ð —9‘9˜R §¡¨¥Ó-×8Ñ8Ó:ˆà�?‰?× Ñ Ó" QÔ&Ø—?‘?ˆDØ�{‰{˜hŸo™oÔ-Ø—w‘w h§o¡o�wÓ6�Ø  4 Õ(ˆHà—{‘{ˆØ×Ñ §¡Ô/Ø'Ÿ?™?°·±˜?Ó@ˆLà××ÐØ—;‘;Ò*¨t¯{©{×/@Ñ/@Ó/BÀQÔ/Fð ØYóÐFð Ÿ+™+ˆKØ× Ñ  H§N¡NÔ2Ø)Ÿn™n°8·>±>˜nÓB�øàˆKð #'×";Ñ";¸rÔ"A™BÀtÇÁÐÜØØ—\‘\Ø%Ø(Ø×#Ñ#Ø×$Ñ$Ø!Ø—Y‘Yô	
ˆð �9‰9Ò Ø�K‰K˜Ÿ	™	Ÿ™¨6¯<©<˜Ó8Ô9à—‘ §¡¨¨ °×0AÑ0AÐ/CÕ CÓDˆØ�<‰<Ò#Ø—\‘\×'Ñ'¨!Ð'Ó8ˆFàˆr3   ©r)   rF   rV   r@   rU   ©rq   é    é@   é€   ©é   T)é   T©râ   F)5Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   rJ   ÚSUPPORTS_BACKENDSr   ÚGPTQÚSUPPORTS_METHODSr   ÚSUPPORTS_FORMATSÚSUPPORTS_BITSÚSUPPORTS_GROUP_SIZEÚSUPPORTS_DESC_ACTÚSUPPORTS_SYMÚSUPPORTS_SHARDSÚSUPPORTS_SHARDED_LOADÚSUPPORTS_TRAININGÚSUPPORTS_AUTO_PADDINGÚ!SUPPORTS_IN_FEATURES_DIVISIBLE_BYÚ"SUPPORTS_OUT_FEATURES_DIVISIBLE_BYr   r‘   ÚSUPPORTS_DEVICESr	   ÚLINUXÚSUPPORTS_PLATFORMrD   rP   ÚSUPPORTS_PACK_DTYPESr   ÚSUPPORTS_ADAPTERSrE   Úbfloat16ÚSUPPORTS_DTYPESÚREQUIRES_FORMAT_V2Ú
QUANT_TYPEr   Úuint4b8Ú	uint8b128Úuint4rA   rH   Úclassmethodrg   rs   rŽ   rª   r¶   rÚ   Ú__static_attributes__Ú__classcell__©rZ   s   @r0   r   r   '   sh  ø† Ø ×/Ñ/Ð0ÐØŸ™�}ÐØŸ™ SÐ)ÐØ˜�F€MÚ+ÐØ˜u˜ÐØ˜%�=€LØ€OØ!ÐØÐØ!ÐØ)+¨Ð%Ø*,¨Ð&àŸ™�}ÐØ!Ÿ™Ð(ÐØ!ŸK™K˜=ÐØ˜ÐØ—}‘} e§n¡nÐ5€OàÐà€Jð 	�<×'Ñ'Ø�<×)Ñ)Ø�L×&Ñ&ð€Hð Ø"'§+¡+Ø!&ØØ÷\Nò \Nð| ôó ðð
 ÷(ó ð(ðT ÷Oó ðOõ L÷\ð ÷0ó 0r3   r   c          
     ó,   € V ^8„  d   QhRRRRRRRRRR/# )r    Ú
packed_q_wrÀ   rž   r"   rÈ   rÉ   r^   r.   )r/   s   "r0   r1   r1   m  s:   € ÷ ñ Øðàðð ðð ð	ð
 ñr3   c                óð  € ^ V,          pW4,          ^ 8X  g   Q RV RV 24       hV P                   VW4,          38X  g"   Q RV P                    RV RW4,           R24       h^V,          ^,
          p\        P                  ! W#3\        P                  V P                  R7      p\        V4       F9  pW,          P                  \        P                  4      pW†RVR	V13&   W,	          p K;  	  VP                  4       # )
zFGPU-friendly unpacking of int32-packed quantized weights into columns.zsize_n=z not divisible by pack_factor=zpacked_q_w.shape=z != (z, Ú)rœ   rÃ   N)rÐ   rD   rT   rP   r}   r”   r¥   r§   )	r  rž   rÈ   rÉ   rO   ÚmaskÚq_resÚiÚvalss	   &&&&     r0   Ú_unpack_cols_torchr  m  s  € ð ˜•.€KØÕ 1Ô$Ðc¨°¨xÐ7UÐVaÐUbÐ&cÓcÐ$Ø×ÑØØÕð ô ð Uð 
˜:×+Ñ+Ð,¨E°&°¸¸FÕ<QÐ;RÐRSÐTóUð ð
 ��M˜QÕ€DÜ�KŠK˜Ð(´·±ÀJ×DUÑDUÔV€EÜ�;ÖˆØÕ!×%Ñ%¤e§k¡kÓ2ˆØ#'ˆa���K�ÐÑ ØÕ+Š
ñ  ð
 ×ÑÓÐr3   c               ó$   € V ^8„  d   QhRRRRRR/# )r    ÚvaluesrÀ   rž   r"   r^   r.   )r/   s   "r0   r1   r1   …  s!   € ÷ ñ  ð ¸ð Àñ r3   c                óä   € V^8X  d   . ROpMV^8X  d   . ROpM\        RV 24      hV P                  R\        V4      4      RV3,          P                  V P                  4      P	                  4       # )râ   zUnsupported AWQ num_bits=rÃ   )rÂ   râ   é   é   r    é   é   é   )rÂ   r    r  r  rq   )rB   rÏ   ÚlenrÐ   r§   )r  rž   Úundo_interleaves   && r0   Ú_undo_awq_interleaver  …  sf   € Ø�1„}Ú2‰Ø	�QŒÚ&‰äÐ4°X°JÐ?Ó@Ð@ð 	�‰�rœ3˜Ó/Ó0°°OÐ1CÕDß	‰�—‘Ó	ß	‰‹ðr3   c                  ó  a € ] tR tRt]P
                  .t]P                  .t	]
P                  ^e/t^.t. ROtR.tRR.tRtRtRtRt^@.t^@.t]P0                  .t]P6                  .t]P<                  .t] .t!]PD                  ]PF                  .t$Rt%Rt&R]'PP                  R]'PR                  /t*R]P<                  RR3R V 3R lllt+],R R	 l4       t-],R
 V 3R ll4       t.],R V 3R ll4       t/V 3R lt0R V 3R llt1R R lt2Rt3V ;t4# )ÚAwqSwordfishLineari”  FTÚawq_swordfishNc               ó@   € V ^8„  d   QhRRRRRRRRRRRRR	RR
RRRRR/
# )r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r-   r   r,   r.   )r/   s   "r0   r1   ÚAwqSwordfishLinear.__annotate__²  s†   € ÷ RNñ RNàðRNð ðRNð ð	RNð
 ðRNð ðRNð ðRNð ðRNð  ðRNð ðRNð ñRNr3   c                	óô  <€ W3V P                   9  d   \        R V RV 24      hVP                  R4      ;'       g    \        P                  V n        \        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R/VB  V P                  V P                  ,          pV P                  R\        P                  P                  \        P                   ! V P"                  V P$                  V,          3V P&                  R7      RR7      4       V P(                  R8X  d   V P"                  MV P*                  p\,        P.                  ! V P"                  V,          4      pV P                  R\        P                  P                  \        P                   ! WàP$                  3V P
                  R7      RR7      4       V P                  R\        P                  P                  \        P                   ! WàP$                  V,          3V P&                  R7      RR7      4       V'       d?   V P1                  R	\        P2                  ! V P$                  3V P
                  R7      4       MRV n        V P                   V P                  V P6                  3,          V n        V P6                  '       * V n        V P1                  R\        P                   ! ^ \        P<                  R7      4       R# )r5   r6   r7   r!   r#   r&   r$   r'   r(   r)   r*   r8   r-   r,   Fr9   r:   r;   r>   r?   Nr@   r.   rq   )rA   rB   rC   rD   rE   rF   rG   rH   rI   r   ÚAWQ_SWORDFISHÚpack_dtype_bitsr!   rK   rL   rM   rN   r'   r(   r*   rÒ   r#   rQ   rR   rS   rT   r)   r&   rU   rV   rP   )rW   r!   r#   r$   r&   r'   r(   r)   r*   r-   r,   rX   rO   Úeffective_group_sizerY   rZ   s   &&&&&&&&&&&,   €r0   rH   ÚAwqSwordfishLinear.__init__²  s³  ø€ ð ˆ;˜dŸm™mÔ+ÜÐEÀdÀVÈ6ÐRUÐQVÐWÓXÐXà#ŸZ™Z¨Ó0×AÐA´E·M±MˆÔä‰Òñ 	
Øð	
à!ð	
ð ð	
ð ð		
ð
 $ð	
ð &ð	
ð ð	
ð "ð	
ð —J‘J˜y¬'×*?Ñ*?Ó@ð	
ð ð	
ð #ð	
ð ò	
ð ×*Ñ*¨d¯i©iÕ7ˆà×ÑØÜ�H‰H×ÑÜ—’Ø×%Ñ% t×'8Ñ'8¸KÕ'GÐHØŸ/™/ôð $ð ó ô		
ð 48×3LÑ3LÐPRÔ3R˜t×/Ò/ÐX\×XgÑXgÐÜ—y’y ×!1Ñ!1Ð4HÕ!HÓIˆØ×ÑØÜ�H‰H×ÑÜ—’Ø!×#4Ñ#4Ð5Ø×,Ñ,ôð $ð ó ô		
ð 	×ÑØÜ�H‰H×ÑÜ—’Ø!×#4Ñ#4¸Õ#CÐDØŸ/™/ôð $ð ó ô		
÷ Ø× Ñ ØÜ—’˜T×.Ñ.Ð0¸×8JÑ8JÔKõð
 ˆDŒIàŸ=™=¨$¯)©)°T·X±XÐ)>Õ?ˆÔØ#'§8¡8œ|ˆÔà×Ñ˜\¬5¯;ª;°qÄÇÁÔ+LÖMr3   c               ó   € V ^8„  d   QhRR/# r]   r.   )r/   s   "r0   r1   r    r_   r3   c                	óP   € \        4       '       g   R \        \        4       4      3# R# ra   rc   re   s   &r0   rg   Ú AwqSwordfishLinear.validate_once  ri   r3   c               ó   € V ^8„  d   QhRR/# r]   r.   )r/   s   "r0   r1   r    s   € ÷ $ñ $Ð!Añ $r3   c           
     	ó  <€ \         SV `  ! R/ VB w  r#V'       g   W#3# VP                  R 4      pVP                  R4      pVe'   Ve#   \        WE4      w  rgV'       g   R\	        V4      3# VP                  R4      pVP                  RR4      p	V P
                  P                  W‰34      p
V
f   R\	        RV RV	 24      3# V
\        V	'       * R7      9  d   R\	        R	V R
V	 RV	'       *  R24      3# VP                  R4      pVP                  R4      ;'       g    \        P                  pV\        V4      9  d   R\	        RV RV 24      3# Ve:   Ve6   VR8w  d/   WK,          ^ 8w  g   V^ ,          ^ 8w  d   R\	        RV RV 24      3# R# )r'   r(   Fr!   r&   Tz)AwqSwordfishLinear does not support bits=r6   rl   zSwordfish does not support AWQ z-bit weights with sym=z (zero_points=r
  r#   r7   rn   ro   zdAwqSwordfishLinear requires in_features % group_size == 0 and group_size % 32 == 0, got in_features=rp   r.   rq   rb   rr   )rf   rt   ru   rv   r'   r(   rw   rx   r!   r&   ry   r#   r7   rZ   s   &,           €r0   rs   ÚAwqSwordfishLinear.validate  sÄ  ø€ ä‘'Ò"Ñ* TÑ*‰ˆßØ�7ˆNà—h‘h˜}Ó-ˆØ—x‘x Ó/ˆØÒ" |Ò'?Ü >¸{Ó YÑˆIßØœj¨Ó0Ð0Ð0à�x‰x˜ÓˆØ�h‰h�u˜dÓ#ˆØ—\‘\×%Ñ% t kÓ2ˆ
ØÒØœ*Ð'PÐQUÐPVÐV\Ð]`Ð\aÐ%bÓcÐcÐcØÔBÐSVÌwÔWÔWØœ*Ø1°$°Ð7MÈcÈUÐR`ÐehÔahÐ`iÐijÐkóð ð ð —X‘X˜lÓ+ˆ
Ø—‘˜Ó!×2Ð2¤U§]¡]ˆØÔBÀ5ÓIÔIØœ*Ø8¸¸ÀKÐPUÈwÐWóð ð ð Ò" zÒ'=À*ÐPRÔBRØÕ'¨1Ô,°
¸RµÀ1Ô0DØœjð'Ø'2 m°=ÀÀðNóð ð ð
 Ðr3   c               ó   € V ^8„  d   QhRR/# r|   r.   )r/   s   "r0   r1   r  4  r~   r3   c                	ó’  <€ \         SV `  V4       \        V\        P                  4      '       d   VP
                  MTR \        P                  39   dô   \        '       d   \        R4      h\        V\        P                  4      '       d   V3Mu\        ;QJ d9    . R \        \        P                  P                  4       4       4       F  NK  	  5M2! R \        \        P                  P                  4       4       4       4      pV'       g   \        R4      hV F(  p\        V4      '       d   K  \        \        V4      4      h	  R# R# )r€   r�   c              3  óT   "  € T F  p\         P                  ! R V 24      x € K   	  R# 5irƒ   r„   r…   s   & r0   rˆ   Ú5AwqSwordfishLinear.validate_device.<locals>.<genexpr><  rŠ   r‹   rŒ   Nr�   r–   s   &&  €r0   rŽ   Ú"AwqSwordfishLinear.validate_device3  rš   r3   c                	óì	  <€ V P                   P                  p\        V P                   V P                  V P                  V P
                  4      p\        W P                  4      p^ V P                  ,          pVP                  V P                  ^ ,          ^ V,          W0P
                  4      p\        P                  ! ^ ^ V P                  \        P                  VP                  R7      pVP                  \        P                  4      VP                  ^^V^4      ,          P                  ^\        P                  R7      pVP                  \        P                  4      P                  V P                  V,          V P
                  4      P                  4       p\        VV P                  V P
                  V P                  RR7      p\!        V R\        P"                  P%                  VP                  4       RR7      4       V P&                  P(                  P                  4       pVP*                  V P,                  8w  d   VP                  V P,                  4      p\!        V R\        P"                  P%                  VRR7      4       V P.                  R8X  d   V P                  MV P0                  pV P                  V,          p	^V P                  ^,
          ,          p
V P2                  '       do   \        V P4                  V P                  V	V P
                  4      p\        W°P                  4      p\        P6                  ! Wº8g  4      '       d   \9        R	V
 R
24      hV P:                  '       dÈ   \        V P4                  V P                  V	V P
                  4      p\        W°P                  4      p\=        ^V P                  ^,
          ,          4      pWËP                  VP*                  4      ,
          V,          P                  4       p\!        V R\        P"                  P%                  VRR7      4       MM\!        V R\        P"                  P%                  \        P>                  ! ^ VP*                  VR7      RR7      4       \        P>                  ! ^ \        P                  VR7      V n         V PB                  e,   V PB                  P                  WP,                  R7      V n!        \D        SV `�  4        R# )rÞ   rœ   )Údimr7   Nr�   r9   Fr;   r>   zFAwqSwordfishLinear symmetric checkpoint expects all zero points to be z (2^(bits-1)).r?   r£   rq   )$r9   r}   r  r!   r'   r(   r  ÚviewrD   ÚarangerP   r¥   Úint64Úsumr§   r   r   rL   rM   r>   r¦   r7   rF   rÒ   r#   r&   r?   ÚanyrB   rV   r©   rN   r@   r)   rG   rª   )rW   r}   Úqweight_intrO   ÚshiftsÚpackedr«   r>   r#  Ú
num_groupsÚexpected_zpr­   r¬   r®   rZ   s   &             €r0   rª   ÚAwqSwordfishLinear.post_initD  sØ  ø€ Ø—‘×$Ñ$ˆô )Ø�L‰LØ�I‰IØ×ÑØ×Ñó	
ˆô +¨;¿	¹	ÓBˆð ˜DŸI™I•oˆØ!×&Ñ&Ø×Ñ Õ" B¨+Õ$5°{×DUÑDUó
ˆô —’Øˆr�4—9‘9¤E§K¡K¸×8JÑ8Jô
ˆð
 —.‘.¤§¡Ó-°·±¸QÀÀ;ÐPQÓ1RÕR×WÑWØœŸ™ð Xó 
ˆð —‘œ5Ÿ;™;Ó'×,Ñ,Ø×Ñ Õ+¨T×->Ñ->ó
ç
‰*‹,ð 	ô (ØØ×ÑØ×ÑØ—Y‘YØô
ˆ	ô 	ØØÜ�H‰H×Ñ˜y×3Ñ3Ó5ÀUÐÓKô	
ð —‘×!Ñ!×,Ñ,Ó.ˆØ�<‰<˜4×-Ñ-Ô-Ø—Y‘Y˜t×1Ñ1Ó2ˆFÜØØÜ�H‰H×Ñ˜v°UÐÓ;ô	
ð 48×3LÑ3LÐPRÔ3R˜t×/Ò/ÐX\×XgÑXgÐØ×%Ñ%Ð)=Õ=ˆ
à˜DŸI™I¨�MÕ*ˆØ�8�8ˆ8ô 1Ø—‘Ø—	‘	ØØ×!Ñ!ó	ˆOô 3°?ÇIÁIÓNˆOÜ�yŠy˜Ñ7×8Ò8Ü ðØ(˜M¨ð9óð ð
 ××ÐÜ0Ø—‘Ø—	‘	ØØ×!Ñ!ó	ˆOô 3°?ÇIÁIÓNˆOä˜q T§Y¡Y°¥]Õ3Ó4ˆJØ$×'9Ñ'9¸&¿,¹,Ó'GÕGÈ6ÕQ×]Ñ]Ó_ˆIÜØØÜ—‘×"Ñ" 9¸EÐ"ÓBõô ØØÜ—‘×"Ñ"Ü—K’K ¨¯©¸fÔEÐUZð #ó ôô  Ÿ+š+ a¬u¯{©{À6ÔJˆŒà�9‰9Ò ØŸ	™	Ÿ™¨F×:LÑ:L˜ÓMˆDŒIä‰ÑÖr3   c               ó   € V ^8„  d   QhRR/# r±   r.   )r/   s   "r0   r1   r  ¬  r²   r3   c                	óš   <€ \         SV `  4       p\        V R 4      '       d*   V P                  e   VP	                  V P                  4       V# r´   rµ   r¹   s   & €r0   r¶   ÚAwqSwordfishLinear.list_buffers¬  r¼   r3   c               ó   € V ^8„  d   QhRR/# r¾   r.   )r/   s   "r0   r1   r  ²  s   € ÷ "ñ "˜ñ "r3   c                	óà  € V P                  V4      ^ 8X  d   V P                  V4      # VP                  RVP                  R,          4      P	                  4       pV P
                  pVP                  VP                  8w  d   VP                  VP                  R7      pV P                  '       d   V P                  MRpVe8   VP                  VP                  8w  d   VP                  VP                  R7      pV P                  R8X  d   RMV P                  p\        VV P                  VVV P                  V P                  VV P                   R7      pV P"                  e6   VP%                  V P"                  P                  VP                  R7      4       VP                  VP                  RR V P                  3,           4      pV P&                  e   V P&                  P)                  WR7      pV# )rÂ   r:   NrÄ   rË   rq   )rÍ   rÎ   rÏ   rÐ   r§   r>   r7   r¥   rV   r?   rÒ   r#   r   r9   r'   r(   r!   r)   rÓ   r-   rÔ   )rW   r¿   rÕ   rÇ   rÖ   r×   rØ   rÙ   s   &&      r0   rÚ   ÚAwqSwordfishLinear.forward²  s}  € Ø�?‰?˜1Ó Ô"Ø×+Ñ+¨AÓ.Ð.ð —9‘9˜R §¡¨¥Ó-×8Ñ8Ó:ˆà—{‘{ˆØ×Ñ §¡Ô/Ø'Ÿ?™?°·±˜?Ó@ˆLà%)×%9×%9Ð%9�d—k’k¸tˆØÒ" {×'8Ñ'8¸H¿N¹NÔ'JØ%Ÿ.™.¨x¯~©~˜.Ó>ˆKà"&×";Ñ";¸rÔ"A™BÀtÇÁÐÜØØ—\‘\Ø%Ø(Ø×#Ñ#Ø×$Ñ$Ø!Ø—Y‘Yô	
ˆð �9‰9Ò Ø�K‰K˜Ÿ	™	Ÿ™¨6¯<©<˜Ó8Ô9à—‘ §¡¨¨ °×0AÑ0AÐ/CÕ CÓDˆØ�<‰<Ò#Ø—\‘\×'Ñ'¨!Ð'Ó8ˆFàˆr3   rÜ   rÝ   rá   rä   )5rå   ræ   rç   rè   r   r!  ré   r   ÚAWQrë   r   ÚGEMMrì   rí   rî   rï   rð   rñ   rò   ró   rô   rõ   rö   r   r‘   r÷   r	   rø   rù   rD   rP   rú   r   rû   rE   rü   rý   rþ   rÿ   r   r   r  rA   rH   r  rg   rs   rŽ   rª   r¶   rÚ   r  r  r  s   @r0   r  r  ”  sV  ø† Ø ×.Ñ.Ð/ÐØŸ
™
�|ÐØŸ™ SÐ)ÐØ�C€MÚ+ÐØ˜ÐØ˜%�=€LØ€OØ!ÐØÐØ!ÐØ)+¨Ð%Ø*,¨Ð&àŸ™�}ÐØ!Ÿ™Ð(ÐØ!ŸK™K˜=ÐØ˜ÐØ—}‘} e§n¡nÐ5€OàÐà €Jð 	�<×'Ñ'Ø�L×&Ñ&ð€Hð Ø"'§+¡+ØØ!&÷RNò RNðh ôó ðð
 ÷$ó ð$ðL ÷Oó ðOõ f÷Pð ÷"ó "r3   r  )/Ú__doc__Ú
__future__r   rQ   Útypingr   r   r   rD   Úadapter.adapterr   r   Úmodels._constr   r	   Únn_modules.qlinearr
   r   Úquantizationr   r   Úutils.backendr   Úutils.loggerr   Úutils.marlinr   Úutils.marlin_scalar_typer   Ú
utils.rocmr   Úutils.swordfishr   r   r   r   r   r   r   r   r   Úlogr   r  r  r  Ú__all__r.   r3   r0   Ú<module>rT     s‚   ðñ
 Gå "ã ß (Ñ (ã ç ,ß -ß @ß *Ý $Ý (Ý -Ý 4å !÷
÷ 
õ 
ñ ƒn€ôC�oô CõL
õ0ô@˜ô @ðF
 Ð2Ð
3‚r3   