+
    "Ý³j  ã                   ó8   € ^ RI t ^ RItR R ltRR R lltR tR# )é    Nc                óP  € V ^8„  d   QhR\         P                  P                  \         P                  P                  ,          \         P                  ,          R\         P                  P                  \         P                  P                  ,          \         P                  ,          /# )é   ÚobjÚreturn)ÚtorchÚnnÚModuleÚ	ParameterÚTensor)Úformats   "ÚU/home/luca/screen-checking/.venv/lib/python3.14/site-packages/defuser/utils/device.pyÚ__annotate__r      s`   € ÷ Dñ DÜ�X‰X�_‰_œuŸx™x×1Ñ1Õ1´E·L±LÕ@ðDä
‡X�X‡_�_”u—x‘x×)Ñ)Õ)¬E¯L©LÕ8ñDó    c                ó  € \        V \        P                  P                  4      '       d   V P	                  RR7       V # \        V \        P                  P
                  4      '       dL   \        P                  P                  \        P                  ! V P                  RR7      V P                  R7      # \        V \        P                  4      '       d   \        P                  ! V RR7      # \        R\        V 4      : 24      h)zDMove module/parameter/tensor storage to meta without copying values.Úmeta)Údevice)Úrequires_gradzUnsupported type for to_meta: )Ú
isinstancer   r   r	   Úto_emptyr
   Ú
empty_likeÚdatar   r   Ú	TypeErrorÚtype)r   s   &r   Úto_metar      s¹   € ô �#”u—x‘x—‘×'Ò'Ø�‰˜FˆÔ#Øˆ
ä�#”u—x‘x×)Ñ)×*Ò*Ü�x‰x×!Ñ!Ü×Ò˜SŸX™X¨fÔ5Ø×+Ñ+ð "ó 
ð 	
ô
 �#”u—|‘|×$Ò$Ü×Ò ¨FÔ3Ð3ä
Ð4´T¸#³Y±MÐBÓ
CÐCr   c                óö   € V ^8„  d   QhR\         P                  \        \         P                  ,          ,          R,          R\        \        ,          \        ,          \         P
                  ,          R,          /# )r   ÚtensorNÚdevice_list)r   r   ÚlistÚtupleÚstrr   )r   s   "r   r   r   "   sJ   € ÷ 5 ñ 5 Ü—‘œt¤E§L¡LÕ1Õ1°DÕ8ð5 äœT•\¤CÕ'¬%¯,©,Õ6¸Õ=ñ5 r   c                ó  € \        V \        4      '       d    \        \        V 4      4       F  pRW&   K	  	  Rp \        P
                  ! 4        \        V\        \        P                  34      '       d   V.p\        P                  P                  4       '       d÷   V'       g>   \        P                  P                  4        \        P                  P                  4        M±. pV Fc  p\        V4      pVP                  R4      '       g   K'  RV9   d#   \        VP                  R4      R,          4      pM^ pVP!                  V4       Ke  	  V F"  p\        P                  P                  V4       K$  	  \        P                  P                  4        \#        \        R4      '       de   \        P$                  P                  4       '       d?   \        P$                  P                  4        \        P$                  P                  4        R# R# R# )zLRelease Python references and flush accelerator caches after tensor surgery.NÚcudaÚ:Úxpuéÿÿÿÿ)r   r   ÚrangeÚlenÚgcÚcollectr    r   r   r"   Úis_availableÚsynchronizeÚempty_cacheÚ
startswithÚintÚsplitÚappendÚhasattrr$   )r   r   ÚiÚdevicesÚdevÚdevidÚds   &&     r   Úclear_memoryr7   "   sd  € ô �&œ$×ÒÜ”s˜6“{Ö#ˆAØˆF‹Iñ $à€FÜ‡J‚J„Lô
 �+¤¤U§\¡\Ð2×3Ò3Ø"�mˆô
 ‡z�z×Ñ× Ò çä�J‰J×"Ñ"Ô$Ü�J‰J×"Ñ"Õ$ð ˆGÛ"�Ü˜#“h�Ø—~‘~ f×-Ò-Ùà˜#”:Ü §	¡	¨#£¨rÕ 2Ó3‘Eà�EØ—‘˜uÖ%ñ #ó �Ü—
‘
×&Ñ& qÖ)ñ ô �J‰J×"Ñ"Ô$ô
 Œu�e×Ò¤§¡×!7Ñ!7×!9Ò!9Ü�	‰	×ÑÔÜ�	‰	×ÑÖñ ":Ñr   c                ó*  € RpV P                  4        FU  pVf   VP                  pVP                  V8w  g   K&  VP                  P                  R8X  g   VP                  R8X  g   KT   R# 	  VP                  R8X  d   \        V R4      '       d   R# R# R# )zMReturn ``True`` when a model mixes meta and real devices in unsupported ways.Nr   TÚpathF)Ú
parametersr   r   r1   )ÚmodelÚtarget_deviceÚparams   &  r   Úunsupported_meta_devicer>   Z   s}   € à€MØ×!Ñ!Ö#ˆØÒ Ø!ŸL™LˆMØ�<‰<˜=Ö(Ø�|‰|× Ñ  FÔ*¨m×.@Ñ.@ÀFÖ.JÚñ $ð ×Ñ˜VÔ#Ü�5˜&×!Ò!ÙáÙr   )NN)r(   r   r   r7   r>   © r   r   Ú<module>r@      s   ðó 
ã õD÷(5 ôpr   