+
    "Ý³jM  ã                  óÔ   € ^ RI Ht ^ RIt^ RIt^ RIHt ^ RIt^RIHt ]'       d   ^RIH	t	 ]P                  ! 4       tR tR R ltR	 R
 ltR R ltR R ltR R ltR R ltR.tR# )é    )ÚannotationsN)ÚTYPE_CHECKING)ÚTORCH_GTE_210)Ú	WarmUpCtxc                 óŒ   € \        \        P                  P                  R R4      p V f   R# \	        V 4      '       d   V ! 4       # V # )Úpreferred_linalg_libraryN)ÚgetattrÚtorchÚbackendsÚcudaÚcallable)Ú	preferreds    Ú^/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/linalg_warmup.pyÚ"_get_cuda_preferred_linalg_libraryr      s=   € ÜœŸ™×+Ñ+Ð-GÈÓN€IØÒÙÜ�	×ÒÙ‹{ÐØÐó    c               ó   € V ^8„  d   QhRR/# )é   ÚreturnÚbool© )Úformats   "r   Ú__annotate__r       s   € ÷ ñ °4ñ r   c                óÞ   € \        \        P                  P                  R R4      pVf   R# \	        V4      '       d   V! V R7       R# \        \        P                  P                  R V 4       R# )r   NF)ÚbackendT)r	   r
   r   r   r   Úsetattr)r   r   s   & r   Ú"_set_cuda_preferred_linalg_libraryr       sT   € ÜœŸ™×+Ñ+Ð-GÈÓN€IØÒÙÜ�	×ÒÙ˜'Õ"ÙÜŒE�N‰N×ÑÐ!;¸WÔEÙr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   ÚsizeÚintÚdeviceútorch.deviceÚdtypeútorch.dtyper   ztorch.Tensorr   )r   s   "r   r   r   +   s(   € ÷ ;ñ ;�Cð ; ð ;°kð ;Àlñ ;r   c                ó°   € \         P                  ! W 3WR7      p\         P                  ! WVR7      pW3P                  RR4      ,          VR,          ,           # )z4Generate a small symmetric positive definite matrix.©r    r"   gü©ñÒMbP?éÿÿÿÿéþÿÿÿ)r
   ÚrandnÚeyeÚ	transpose)r   r    r"   ÚbaseÚidentitys   &&&  r   Ú	_make_spdr-   +   sA   € ä�;Š;˜�|¨FÔ@€DÜ�yŠy˜°EÔ:€HØ—.‘.  RÓ(Õ(¨8°d­?Õ:Ð:r   c               ó$   € V ^8„  d   QhRRRRRR/# ©r   r    r!   r"   r#   r   ÚNoner   )r   s   "r   r   r   2   s!   € ÷ ñ  <ð ¸ð Èñ r   c                óÀ   € \        ^W4      p\        P                  P                  V4       V P                  R8X  d   R# \        P                  P                  V4       R# )é   ÚmpsN)r-   r
   ÚlinalgÚcholeskyÚtypeÚeigh)r    r"   Úspds   && r   Ú_run_cholesky_and_eighr9   2   sC   € Ü
�A�vÓ
%€CÜ	‡L�L×Ñ˜#Ôð ‡{�{�eÔÙä	‡L�L×Ñ�cÖr   c               ó$   € V ^8„  d   QhRRRRRR/# r/   r   )r   s   "r   r   r   =   s!   € ÷ /ñ /�\ð /¨+ð /¸$ñ /r   c                óx   € \         P                  ! RWR7      p\         P                  P                  VRR7       R# )r2   r%   F)Úfull_matricesN)r2   é   )r
   r(   r4   Úsvd)r    r"   Úmats   && r   Ú_run_svdr@   =   s)   € Ü
�+Š+�f VÔ
9€CÜ	‡L�L×Ñ�S¨ÐÖ.r   c               ó$   € V ^8„  d   QhRRRRRR/# r/   r   )r   s   "r   r   r   B   s!   € ÷ ñ �Lð ¨ð ¸ñ r   c                óš   € V P                   R 8X  d   R# \        P                  ! RWR7      p\        P                  P	                  V4       R# )r3   Nr%   )r2   r2   )r6   r
   r(   r4   Úqr)r    r"   Úsquares   && r   Ú_run_qrrE   B   s1   € à‡{�{�eÔÙä�[Š[˜¨Ô<€FÜ	‡L�L‡O�O�FÖr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r    r!   Ú
warmup_ctxz'WarmUpCtx'r   r0   r   )r   s   "r   r   r   K   s&   € ÷ Dñ D Lð D¸kð DÈdñ Dr   c           	     óR  € \         ;_uu_ 4        V P                  R8X  d   \        P                  3pM \        P                  \        P                  3pV F$  p\        W4       \        W4       \        W4       K&  	  V P                  R8X  dØ   \        \        P                  R4      '       d¸   \        4       pVeª   \        '       gž   V'       dX   VR8w  dQ   \        P                  ! \        4      ;_uu_ 4        \        R4       \        V \        P                  4       RRR4       V'       d7   \        P                  ! \        4      ;_uu_ 4        \        V4       RRR4       RRR4       R#   + '       g   i     LX; i  + '       g   i     L-; i  + '       g   i     R# ; i)a  
Execute the torch.linalg operators used across the project once on the worker thread.

Serialized under a global lock to avoid races inside PyTorch's lazy wrappers.
The caller decides whether this invocation is running in device-wide or
thread-local warmup context via `warmup_ctx`.
r3   r   NÚmagma)Ú_GLOBAL_WARMUP_LOCKr6   r
   Úfloat32Úfloat64r9   r@   rE   Úhasattrr   r   r   Ú
contextlibÚsuppressÚ	Exceptionr   )r    rG   Údtypesr"   Úcurrents   &&   r   Úrun_torch_linalg_warmuprS   K   s  € ÷ 
Ö	Ø�;‰;˜%ÔÜ—m‘mÐ%‰Fä—m‘m¤U§]¡]Ð3ˆFãˆEÜ" 6Ô1Ü�VÔ#Ü�FÖ"ñ ð
 �;‰;˜&Ô ¤W¬U¯^©^¸V×%DÒ%DÜ8Ó:ˆGØÒ"¯=«=÷ ˜w¨'Ô1Ü#×,Ò,¬Y×7Õ7Ü:¸7ÔCÜ.¨v´u·}±}ÔE÷ 8÷ Ü#×,Ò,¬Y×7Õ7Ü:¸7ÔC÷ 8÷- 
Ñ	÷$ 8×7ú÷ 8×7ú÷- 
×	Ð	úsN   �B8FÃFÃ)FÃ9&E/	ÄFÄ/"FÅF	ÅFÅ/E?Å:FÆFÆFÆF&	rS   )Ú
__future__r   rN   Ú	threadingÚtypingr   r
   r   Úthreadxr   ÚLockrJ   r   r   r-   r9   r@   rE   rS   Ú__all__r   r   r   Ú<module>rZ      s_   ðõ
 #ã Û Ý  ã å  ÷ Ý"ð  —n’nÓ&Ð òõõ;õõ/õ
õDðD %Ð
%‚r   