+
    "Ý³j  ã                   óª   € ^ RI HtHtHtHt ^ RIt^ RI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Ht ]! 4       tR
t ! R R]
4      tR# )é    )ÚCallableÚDictÚOptionalÚTupleN)ÚModule)ÚExecutionConfigÚLoopProcessor©ÚNamedModule©Ú
BaseQModel)ÚQuantizeConfig)Úsetup_logger)ÚCPUÚDEVICE_1Ú
native_inpc                   óà   a a€ ] tR t^t oRtRV3R lV 3R llltR tV3R lR ltV3R lR ltV3R	 lR
 lt	RV3R lR llt
V3R lR ltV3R lR ltV3R lR ltV3R lR ltRtVtV ;t# )ÚNativeProcessorzDCaches raw module inputs for later native or GPTAQ-style processing.c                ón   <€ V ^8„  d   QhRS[ RS[S[,          RS[S[,          RS[RS[RS[S[,          /# )é   ÚqcfgÚcalibration_concat_sizeÚcalibration_sortÚ
batch_sizeÚrequire_fwdÚcalibration_concat_separator)r   r   ÚintÚstrÚbool)ÚformatÚ__classdict__s   "€Úb/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/looper/native_processor.pyÚ__annotate__ÚNativeProcessor.__annotate__   sU   ø€ ÷ $ñ $ñ ð$ñ "*©#¥ð$ñ #¡3�-ð$ñ ð$ñ ð$ñ '/©s¥mñ$ó    c
                ó^   <€ \         S
V `  VVVVVV	VV\        VRRR7      R7	       / V n        R# )z@Initializes the processor and enables single-pass input capture.FT)r   Úfwd_replay_after_processÚfwd_all_modules_in_single_pass)	Ú	tokenizerr   Úcalibrationr   r   r   Úprepare_dataset_funcr   Úexecution_configN)ÚsuperÚ__init__r   Únative_inp_caches)Úselfr)   r   r*   r+   r   r   r   r   r   Ú	__class__s   &&&&&&&&&&€r"   r.   ÚNativeProcessor.__init__   sJ   ø€ ô 	‰ÑØØØ#Ø$;Ø-Ø)EØ!5Ø!Ü,Ø'Ø).Ø/3ôð 	ô 	
ð  "$ˆÖr%   c                ó   € \        R4      h)zKRejects dataset replacement because capture setup is fixed at construction.z8NativeProcessor's calibration_dataset cannot be modified)ÚNotImplementedError)r0   Úcalibration_datasets   &&r"   Úset_calibration_datasetÚ'NativeProcessor.set_calibration_dataset:   s   € ô "Ð"\Ó]Ð]r%   c                ó    <€ V ^8„  d   QhRS[ /# )r   Úmoduler
   )r    r!   s   "€r"   r#   r$   ?   s   ø€ ÷ 1ñ 1¡ñ 1r%   c                ó8   € . V P                   VP                  &   R# )z8Allocates the per-module cache used by the forward hook.N)r/   Úname©r0   r9   s   &&r"   Ú
preprocessÚNativeProcessor.preprocess?   s   € ð /1ˆ×Ñ˜vŸ{™{Ó+r%   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r9   Úreturn)r   r   )r    r!   s   "€r"   r#   r$   D   s   ø€ ÷ ñ ¡ð ±ñ r%   c                ó   € R# )zKReports that native input capture currently runs for every eligible module.F© r<   s   &&r"   Ú
is_skippedÚNativeProcessor.is_skippedD   s   € ñ r%   c                ó€   <€ V ^8„  d   QhRS[ RS[S[S[S[P
                  R3,          S[P
                  .R3,          /# )r   r;   r@   .N)r   r   r   r   ÚtorchÚTensor)r    r!   s   "€r"   r#   r$   J   sC   ø€ ÷ ñ ©ð ±¹6Á5ÉÏÉÐWZÐIZÕC[Ñ]b×]iÑ]iÐ:jÐlpÐ:pÕ1qñ r%   c                ó   a a€ R VV 3R llpV# )zJBuilds the forward hook that captures detached native inputs for a module.c                ór   € V ^8„  d   QhR\         \        P                  R3,          R\        P                  /# )r   Úinp.Úout)r   rF   rG   )r    s   "r"   r#   Ú:NativeProcessor.pre_process_fwd_hook.<locals>.__annotate__M   s,   € ÷ 	ñ 	œU¤5§<¡<°Ð#4Õ5ð 	¼E¿L¹Lñ 	r%   c                óf  <€ V^ ,          P                  4       pSP                  P                  e"   SP                  P                  P                  pM;SP                  P                  e"   SP                  P                  P                  pMRpVR8X  d   \
        pMdVR8X  d   \        pMV\        V\        4      '       d   \        P                  ! V4      pM)\        V\        P                  4      '       d   TpM\
        pSP                  S;;,          VP                  VR7      .,          uu&   ??R# )z?Copies the module input to the configured GPTAQ staging device.NÚautoÚcpu)Údevice)Údetachr   ÚgptaqrP   Úfoemr   r   Ú
isinstancer   rF   r/   Úto)r9   rJ   rK   Úgptaq_deviceÚtarget_devicer;   r0   s   &&&  €€r"   ÚtmpÚ1NativeProcessor.pre_process_fwd_hook.<locals>.tmpM   sÔ   ø€ ð �a•&—-‘-“/ˆCà�y‰y�‰Ò*Ø#Ÿy™yŸ™×5Ñ5‘Ø—‘—‘Ò+Ø#Ÿy™yŸ~™~×4Ñ4‘à%�Ø˜vÔ%Ü (‘Ø Ô&ä #‘Ü˜L¬#×.Ò.Ü %§¢¨\Ó :‘Ü˜L¬%¯,©,×7Ò7Ø ,‘ä (�à×"Ñ" 4×(¨S¯V©V¸=¨VÓ-IÐ,JÕJÓ(Ø’Sr%   rB   )r0   r;   rX   s   ff r"   Úpre_process_fwd_hookÚ$NativeProcessor.pre_process_fwd_hookJ   s   ù€ ÷	ñ 	ð6 ˆ
r%   c                ó¾   <€ V ^8„  d   QhRS[ RS[P                  RS[S[S[S[ 3,          ,          RS[S[S[S[ 3,          ,          RS[S[,          RS[S[,          /# )r   r9   rP   ÚsubsetÚprevious_subsetÚsubset_indexÚsubset_total)r   rF   rP   r   r   r   r   )r    r!   s   "€r"   r#   r$   j   sy   ø€ ÷ Xñ XáðXñ —‘ðXñ ™™c¡;Ð.Õ/Õ0ð	Xñ
 "¡$¡s©KÐ'7Õ"8Õ9ðXñ ™s•mðXñ ™s•mñXr%   c                ór   € V P                   P                  VP                  4      VP                  \        &   R# )zCMoves the captured input list into module state for downstream use.N)r/   Úpopr;   ÚstateÚNATIVE_INPUTS_STATE_KEY)r0   r9   rP   r]   r^   r_   r`   s   &&&&&&&r"   ÚprocessÚNativeProcessor.processj   s(   € ð 15×0FÑ0F×0JÑ0JÈ6Ï;É;Ó0Wˆ�‰Ô,Ó-r%   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   r9   Úmodel)r   r   )r    r!   s   "€r"   r#   r$   w   s   ø€ ÷ 8ñ 8©ð 8¹Zñ 8r%   c                óF   € VP                   P                  \        R4       R# )z6Clears cached native inputs after module finalization.N)rc   rb   rd   )r0   r9   rh   Úkwargss   &&&,r"   Úsubmodule_finalizeÚ"NativeProcessor.submodule_finalizew   s   € ð 	�‰×ÑÔ0°$Ö7r%   c                ó    <€ V ^8„  d   QhRS[ /# )r   rh   r   )r    r!   s   "€r"   r#   r$   |   s   ø€ ÷ #ñ #™jñ #r%   c                ó
   € V = R# )zAReleases processor-level caches once the full loop has completed.N©r/   )r0   rh   rj   s   &&,r"   ÚfinalizeÚNativeProcessor.finalize|   s
   € ð Ò"r%   c                ó&   <€ V ^8„  d   QhRS[ RS[/# )r   Úprocessor_indexr@   )r   r   )r    r!   s   "€r"   r#   r$   �   s   ø€ ÷ ñ ¹#ð Á$ñ r%   c                ó8   € V P                   f   \        R4      hR# )zBEnsures a calibration dataset was provided before running capture.z7NativeProcessor's calibration_dataset must be provided.T)r5   Ú
ValueError)r0   rs   s   &&r"   Úverify_calibration_datasetÚ*NativeProcessor.verify_calibration_dataset�   s   € ð ×#Ñ#Ò+ÜÐVÓWÐWár%   c                ó    <€ V ^8„  d   QhRS[ /# )r   r@   )r   )r    r!   s   "€r"   r#   r$   ‰   s   ø€ ÷ ñ ‘cñ r%   c                ó   € R# )zAReturns the processor label used in logs and lifecycle reporting.ÚnativerB   )r0   s   &r"   r;   ÚNativeProcessor.name‰   s   € ñ r%   ro   )TN)NNNNN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r.   r6   r=   rC   rZ   re   rk   rp   rv   r;   Ú__static_attributes__Ú__classdictcell__Ú__classcell__)r1   r!   s   @@r"   r   r      sq   ù‡ € ÙN÷$õ $ò@^÷
1ð 1÷
ð ÷ð ÷@Xò X÷8ð 8÷
#ð #÷
ð ÷÷ ð r%   r   )Útypingr   r   r   r   rF   Útorch.nnr   Úlooper.loop_processorr   r	   Úlooper.named_moduler   Úmodelsr   Úquantization.configr   Úutils.loggerr   Úutils.torchr   r   Úlogrd   r   rB   r%   r"   Ú<module>r�      s@   ð÷ 3Ó 2ã Ý ç BÝ -Ý Ý 0Ý 'ß 'áƒn€à&Ð ôu�mö ur%   