+
    "Ý³jÒ0  ã                  óR  € ^ RI Ht ^ RIt^ RIt^ RIHtHtHtHt ^ RI	t	^ RI
Ht ^RI	Ht RtRtRtRtR	tR
t]P&                  P)                  RR4      R8H  tR R lt]P.                  ]	P0                  ,          t]]]R3,          ,          t ! R R4      tR R ltR R ltR R ltR# )é    )ÚannotationsN)ÚDictÚ	GeneratorÚIterableÚTuple)ÚHAS_NPUz[0mz[91mz[92mz[93mz[96mz[95mÚDEBUGÚ0Ú1c               ó    € V ^8„  d   QhRRRR/# )é   ÚmsgÚstrÚreturnÚNone© )Úformats   "ÚW/home/luca/screen-checking/.venv/lib/python3.14/site-packages/gptqmodel/utils/memory.pyÚ__annotate__r      s   € ÷ ñ ˆcð �dñ ó    c                ó8   € \         '       d   \        V 4       R # R # ©N)Ú
DEBUG_MODEÚprint)r   s   &r   Ú_logr      s   € ßƒzÜˆcŽ
ñ r   .c                  ó  € ] tR t^$tR)R R lltR R ltR R ltR R ltR*R
 R lltR*R R ll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 R l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	# )+Ú
MemTrackerc               ó    € V ^8„  d   QhRRRR/# )r   Úauto_gc_bytesúint | str | Noner   r   r   )r   s   "r   r   ÚMemTracker.__annotate__%   s   € ÷ Eñ EÐ&6ð EÀDñ Er   c                	ó¦   € / V n         / V n        / V n        ^ V n        \        P
                  ! 4       V n        RV n        V P                  VRR7       R# )r   NÚinit©Úcontext)	Ú_allocated_by_devÚ_freed_by_devÚ_gc_count_by_devÚ_gc_total_countÚ	threadingÚLockÚ_lockÚ_auto_gc_bytesÚ_resolve_and_set_auto_gc)Úselfr   s   &&r   Ú__init__ÚMemTracker.__init__%   sO   € Ø:<ˆÔØ68ˆÔð :<ˆÔØ$%ˆÔä—^’^Ó%ˆŒ
ð +/ˆÔØ×%Ñ% m¸VÐ%ÖDr   c               ó    € V ^8„  d   QhRRRR/# ©r   ÚobÚ
ObjOrTupler   r   r   )r   s   "r   r   r!   4   s   € ÷ 
ñ 
˜:ð 
¨$ñ 
r   c                	ó8  € V P                  V4      pV P                  ;_uu_ 4        VP                  4        F\  w  r4V P                  P	                  V^ 4      V,           V P                  V&   \        \         R\         R\        V4       RV 24       K^  	  V P                  4       pV P                  V P                  4      pV P                  4       pRRR4       V P                  \         R\         2V P                  XXXR7       R#   + '       g   i     L?; i)r   z
[allocate]z +ú on Nz[allocate-summary]©ÚheaderÚper_device_mapÚall_devicesÚtype_totalsÚtype_counts)Ú_sizes_for_manyr,   Úitemsr&   Úgetr   ÚREDÚRESETÚformat_bytesÚ_all_known_devices_lockedÚ_totals_by_type_lockedÚ_counts_by_type_lockedÚ_print_full_device_summaryÚCYAN)r/   r4   ÚsizesÚdevÚbÚall_devsr<   r=   s   &&      r   ÚallocateÚMemTracker.allocate4   sñ   € Ø×$Ñ$ RÓ(ˆØ�Z�Z‹ZØŸ+™+ž-‘�Ø.2×.DÑ.D×.HÑ.HÈÈaÓ.PÐSTÕ.T�×&Ñ& sÑ+Üœ�u˜J¤u g¨R´¸Q³Ð/@ÀÀSÀEÐJÖKñ (ð ×5Ñ5Ó7ˆHØ×5Ñ5°d×6LÑ6LÓMˆKØ×5Ñ5Ó7ˆK÷ ð 	×'Ñ'Ü�VÐ-¬e¨WÐ5Ø×1Ñ1Ø Ø#Ø#ð 	(ö 	
÷ �Zús   ¦B,D	Ä	D	c               ó    € V ^8„  d   QhRRRR/# r3   r   )r   s   "r   r   r!   G   s   € ÷ )ñ )�zð ) dñ )r   c                	ón  € V P                  V4      p\        4       pV P                  ;_uu_ 4        VP                  4        F°  w  rEV^ 8:  d   K  \	        ^ V P
                  P                  V^ 4      V,
          4      V P
                  V&   V P                  P                  V^ 4      V,           V P                  V&   VP                  V4       \        \         R\         R\        V4       RV 24       K²  	  V P                  4       pV P                  V P                  4      pV P                  4       pRRR4       V P!                  \"         R\         2V P                  XXXR7       V P$                  e0   V P$                  ^ 8”  d   V F  pV P'                  V4       K  	  R# R# R#   + '       g   i     L|; i)r   z[free]z
 released r7   Nz[free-summary]r8   )r>   Úsetr,   r?   Úmaxr&   r@   r'   Úaddr   ÚGREENrB   rC   rD   rE   rF   rG   rH   r-   Ú_maybe_auto_gc)	r/   r4   rI   ÚaffectedrJ   rK   rL   Úfreed_type_totalsr=   s	   &&       r   ÚfreeÚMemTracker.freeG   s{  € Ø×$Ñ$ RÓ(ˆÜ&)£eˆà�Z�Z‹ZØŸ+™+ž-‘�Ø˜”6ÙÜ.1°!°T×5KÑ5K×5OÑ5OÐPSÐUVÓ5WÐZ[Õ5[Ó.\�×&Ñ& sÑ+Ø*.×*<Ñ*<×*@Ñ*@ÀÀaÓ*HÈ1Õ*L�×"Ñ" 3Ñ'Ø—‘˜SÔ!Üœ�w˜f¤U G¨:´lÀ1³oÐ5FÀdÈ3È%ÐPÖQñ (ð ×5Ñ5Ó7ˆHØ $× ;Ñ ;¸D×<NÑ<NÓ OÐØ×5Ñ5Ó7ˆK÷ ð 	×'Ñ'Ü�V˜>¬%¨Ð1Ø×-Ñ-Ø Ø)Ø#ð 	(ô 	
ð ×ÑÒ*¨t×/BÑ/BÀQÔ/FÛ�Ø×#Ñ# CÖ(ó  ñ 0GÑ*÷+ �Zús   °D F$Æ$F4	c               ó   € V ^8„  d   QhRR/# )r   r   r   r   )r   s   "r   r   r!   d   s   € ÷ :ñ :�tñ :r   c                	óB  € V P                   ;_uu_ 4        V P                  P                  4        V P                  P                  4        V P                  P                  4        ^ V n        RRR4       \        \         R\         R24       R#   + '       g   i     L+; i)r   Nz[reset]z counters cleared)	r,   r&   Úclearr'   r(   r)   r   ÚMAGENTArB   )r/   s   &r   ÚresetÚMemTracker.resetd   sn   € Ø�Z�Z‹ZØ×"Ñ"×(Ñ(Ô*Ø×Ñ×$Ñ$Ô&Ø×!Ñ!×'Ñ'Ô)Ø#$ˆDÔ ÷	 ô
 	”ˆy˜¤˜wÐ&7Ð8Ö9÷ �Zús   •ABÂB	Nc               ó    € V ^8„  d   QhRRRR/# ©r   Údeviceztorch.device | Noner   zTuple[int, str]r   )r   s   "r   r   r!   l   s   € ÷ &ñ &Ð 3ð &¸ñ &r   c                	óD  € V P                   ;_uu_ 4        Vf$   \        V P                  P                  4       4      M\	        V P                  V4      pR R R 4       \        \         R\         RV R\        X4       24       V\        V4      3#   + '       g   i     LD; i)Nz[allocated]ú query=ú	, result=)	r,   Úsumr&   ÚvaluesÚ_sum_for_devicer   rH   rB   rC   ©r/   rb   Úvals   && r   Ú	allocatedÚMemTracker.allocatedl   s{   € Ø�Z�Z‹ZØ:@º.”#�d×,Ñ,×3Ñ3Ó5Ô6ÌoÐ^b×^tÑ^tÐv|ÓN}ˆC÷ ä”ˆv�[¤  w¨v¨h°iÄÈSÓ@QÐ?RÐSÔTØ”L Ó%Ð%Ð%÷ �Zúó   •>BÂB	c               ó    € V ^8„  d   QhRRRR/# ra   r   )r   s   "r   r   r!   r   s   € ÷ &ñ &Ð/ð &¸?ñ &r   c                	óD  € V P                   ;_uu_ 4        Vf$   \        V P                  P                  4       4      M\	        V P                  V4      pR R R 4       \        \         R\         RV R\        X4       24       V\        V4      3#   + '       g   i     LD; i)Nz[freed]rd   re   )	r,   rf   r'   rg   rh   r   rH   rB   rC   ri   s   && r   ÚfreedÚMemTracker.freedr   s{   € Ø�Z�Z‹ZØ6<²n”#�d×(Ñ(×/Ñ/Ó1Ô2Ì/ÐZ^×ZlÑZlÐntÓJuˆC÷ ä”ˆv�WœU˜G 7¨6¨(°)¼LÈÓ<MÐ;NÐOÔPØ”L Ó%Ð%Ð%÷ �Zúrm   c               ó    € V ^8„  d   QhRRRR/# )r   Úbytes_thresholdr    r   r   r   )r   s   "r   r   r!   x   s   € ÷ Nñ NÐ+;ð NÀñ Nr   c                	ó,   € V P                  VR R7       R# )Úset_auto_gcr$   N)r.   )r/   rs   s   &&r   ru   ÚMemTracker.set_auto_gcx   s   € Ø×%Ñ% o¸}Ð%ÖMr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rj   r    r%   r   r   r   r   )r   s   "r   r   r!   |   s'   € ÷ oñ oÐ,<ð oÀsð oÈtñ or   c                	óÎ  € VR J ;'       g,    \        V\        4      ;'       d    VP                  4       R8H  pV'       gv   \        V\        4      '       d   V^ 8  d   \	        R4      hV P
                  ;_uu_ 4        Wn        R R R 4       \        \         RV R\         R\        V4       R24       R # V P                  4       w  rEV P
                  ;_uu_ 4        W@n        R R R 4       Ve   V^ 8:  d!   \        \         RV R\         RV 24       R # \        \         RV R\         RV R	\        V4       2	4       R #   + '       g   i     LÆ; i  + '       g   i     Lz; i)
NÚautoz2auto_gc_bytes must be an int >= 0, 'auto', or NoneÚ[Ú]z auto_gc_bytes set to z (explicit)z6 auto_gc_bytes: CUDA not available; auto-GC disabled. z auto_gc_bytes (auto): z -> )Ú
isinstancer   ÚlowerÚintÚ
ValueErrorr,   r-   r   ÚYELLOWrB   rC   Ú_compute_auto_threshold)r/   rj   r%   Úauto_requestedÚ	thresholdÚ	debug_msgs   &&&   r   r.   Ú#MemTracker._resolve_and_set_auto_gc|   s$  € Ø ˜+×ZÐZ¬:°c¼3Ó+?×+YÐ+YÀCÇIÁIÃKÐSYÑDYˆçÜ˜c¤3×'Ò'¨3°¬7Ü Ð!UÓVÐVØ——“Ø&)Ô#÷ ä”F�8˜1˜W˜I Q¤u gÐ-CÄLÐQTÓDUÐCVÐVaÐbÔcÙà#×;Ñ;Ó=Ñˆ	Ø�Z�Z‹ZØ"+Ô÷ ð Ò 	¨Q¤Ü”F�8˜1˜W˜I Q¤u gÐ-cÐdmÐcnÐoÖpä”F�8˜1˜W˜I Q¤u gÐ-DÀYÀKÈtÔT`ÐajÓTkÐSlÐmÖn÷ —ú÷ �Zús   Á<EÃEÅE	ÅE$	c               ó   € V ^8„  d   QhRR/# )r   r   ztuple[int | None, str]r   )r   s   "r   r   r!   �   s   € ÷ 6ñ 6Ð)?ñ 6r   c           	     	ój  €  \         P                  P                  4       '       g   R# \         P                  P                  4       pV^ 8:  d   R	# . p. p\	        V4       Fh  p\         P                  P                  V4      p\        \        VR^ 4      4      pVP                  V4       VP                  V R\        V4       24       Kj  	  V'       g   R
# \        V4      pV^,          pVRRP                  V4       R\        V4       R\        V4       23#   \         d   p	R RT	 23u R p	?	# R p	?	ii ; i)NÚtotal_memoryÚ:zvisible CUDA -> [z, z]; min=z; min/3=zauto detection error: )Nz"torch.cuda.is_available() == False)Nztorch.cuda.device_count() == 0)NzNo visible CUDA totals found)ÚtorchÚcudaÚis_availableÚdevice_countÚrangeÚget_device_propertiesr~   ÚgetattrÚappendrC   ÚminÚjoinÚ	Exception)
r/   ÚcountÚtotalsÚpartsÚiÚpropsÚtotalÚ	min_totalrƒ   Úes
   &         r   r�   Ú"MemTracker._compute_auto_threshold�   s5  € ð	6Ü—:‘:×*Ñ*×,Ò,ØAÐAÜ—J‘J×+Ñ+Ó-ˆEØ˜ŒzØ=Ð=ØˆFØˆEÜ˜5–\�ÜŸ
™
×8Ñ8¸Ó;�ÜœG E¨>¸1Ó=Ó>�Ø—‘˜eÔ$Ø—‘ ˜s !¤L°Ó$7Ð#8Ð9Ö:ñ	 "÷
 Ø;Ð;Ü˜F›ˆIØ! Q�ˆIØÐ 1°$·)±)¸EÓ2BÐ1CÀ7Ì<ÐXaÓKbÐJcÐckÔlxð  zCó  mDð  lEð  Fð  Fð  FøÜô 	6ØÐ1°!°Ð5Ð5Õ5ûð	6ús;   ‚#D ¦D ¨&D ÁBD ÃD ÃAD ÄD2Ä!D-Ä'D2Ä-D2c               ó    € V ^8„  d   QhRRRR/# )r   r4   r5   r   úDict[torch.device, int]r   )r   s   "r   r   r!   §   s   € ÷ ñ  *ð Ð1Hñ r   c                	óÀ   € / pV P                  V4       FF  pV P                  V4      P                  4        F   w  rEVP                  V^ 4      V,           W$&   K"  	  KH  	  V# ©r   )Ú
_iter_objsÚ_sizes_by_device_instancer?   r@   )r/   r4   ÚaggÚitemrJ   rK   s   &&    r   r>   ÚMemTracker._sizes_for_many§   sX   € Ø')ˆØ—O‘O BÖ'ˆDØ×8Ñ8¸Ó>×DÑDÖF‘�ØŸ7™7 3¨›?¨QÕ.�“ó Gñ (ð ˆ
r   c               ó    € V ^8„  d   QhRRRR/# )r   r4   r5   r   zGenerator[Obj, None, None]r   )r   s   "r   r   r!   ®   s   € ÷ 
=ñ 
=˜Zð 
=Ð,Fñ 
=r   c              #  	ó|  "  € \        V\        4      '       dW   V FN  p\        V\        P                  \        P
                  34      '       d   Vx € K9  \        R \        V4       24      h	  R# \        V\        P                  \        P
                  34      '       d   Vx € R# \        R\        V4       24      h5i)zUnsupported type in tuple: zUnsupported type: N)r|   ÚtupleÚnnÚModulerŠ   ÚTensorÚ	TypeErrorÚtype)r/   r4   Úxs   && r   r¢   ÚMemTracker._iter_objs®   sŠ   é € Ü�bœ%× Ò Û�Ü˜a¤"§)¡)¬U¯\©\Ð!:×;Ò;Ø”Gä#Ð&AÄ$ÀqÃ'ÀÐ$KÓLÐLó	 ô
 ˜œRŸY™Y¬¯©Ð5×6Ò6ØŒHäÐ0´°b³°
Ð;Ó<Ð<ùs   ‚B:B<c               ó    € V ^8„  d   QhRRRR/# )r   r4   ÚObjr   rŸ   r   )r   s   "r   r   r!   º   s   € ÷ /ñ /¨Cð /Ð4Kñ /r   c                	óX   € \        V P                  V4      4      pV P                  V4      # r   )ÚlistÚ_gather_tensorsÚ_sum_by_dev_dedup)r/   r4   Útensorss   && r   r£   Ú$MemTracker._sizes_by_device_instanceº   s(   € Ü�t×+Ñ+¨BÓ/Ó0ˆØ×%Ñ% gÓ.Ð.r   c               ó    € V ^8„  d   QhRRRR/# )r   r4   r²   r   úIterable[torch.Tensor]r   )r   s   "r   r   r!   ¾   s   € ÷ ñ  #ð Ð*@ñ r   c              #  	óâ   "  € \        V\        P                  4      '       d   Vx € R # VP                  RR7       F  pVP                  x € K  	  VP                  RR7       F  pVx € K	  	  R # 5i)NT)Úrecurse)r|   rŠ   r¬   Ú
parametersÚdataÚbuffers)r/   r4   ÚprK   s   &&  r   rµ   ÚMemTracker._gather_tensors¾   sV   é € Ü�bœ%Ÿ,™,×'Ò'ØŠHÙØ—‘ t�Ö,ˆAØ—&‘&ŒLñ -à—‘ D�Ö)ˆAØŒGó *ùs   ‚A-A/c               ó    € V ^8„  d   QhRRRR/# )r   r·   rº   r   rŸ   r   )r   s   "r   r   r!   Ç   s   € ÷ &ñ &Ð)?ð &ÐD[ñ &r   c                	ó�  aa€ \        4       o/ oR  VV3R llpV EF&  pVP                  '       d/   V! VP                  4       4       V! VP                  4       4       KD  VP                  \
        P                  8X  dE   V! VP                  4       4       V! VP                  4       4       V! VP                  4       4       K§  \        \
        RR4      ee   VP                  \
        P                  8X  dF   V! VP                  4       4       V! VP                  4       4       V! VP                  4       4       EK  V! V4       EK)  	  S# )c               ó    € V ^8„  d   QhRRRR/# )r   Útztorch.Tensorr   r   r   )r   s   "r   r   Ú2MemTracker._sum_by_dev_dedup.<locals>.__annotate__Ë   s   € ÷ 	:ñ 	: ð 	:°$ñ 	:r   c                óT  <€ V P                   pVP                  R 8X  d   R#  V P                  4       pVP                  4       VP	                  4       3pVS9   d   R# SP                  V4       SP                  V^ 4      \        VP	                  4       4      ,           SV&   R#   \         d|    \        T P                  4       T P                  4       ,          4      pT P                  4       T3pTS9   d    R# SP                  T4       SP                  T^ 4      T,           ST&    R# i ; i)ÚmetaN)rb   r®   Úuntyped_storageÚdata_ptrÚnbytesrS   r@   r~   ÚRuntimeErrorÚnumelÚelement_size)rÅ   rJ   ÚstÚkeyrË   Úby_devÚ	seen_keyss   &    €€r   Ú_accumulate_denseÚ7MemTracker._sum_by_dev_dedup.<locals>._accumulate_denseË   sê   ø€ Ø—(‘(ˆCØ�x‰x˜6Ô!Ùð:Ø×&Ñ&Ó(�Ø—{‘{“} b§i¡i£kÐ2�Ø˜)Ô#ÙØ—‘˜cÔ"Ø$Ÿj™j¨¨aÓ0´3°r·y±y³{Ó3CÕC��s“øÜô :Ü˜QŸW™W›Y¨¯©Ó)9Õ9Ó:�Ø—z‘z“| VÐ,�Ø˜)Ô#ÚØ—‘˜cÔ"Ø$Ÿj™j¨¨aÓ0°6Õ9��s”ð:ús   ¢7B! ÁAB! Â!AD'Ã6-D'Ä&D'Ú
sparse_cscN)rQ   Ú	is_sparseÚindicesrg   ÚlayoutrŠ   Ú
sparse_csrÚcrow_indicesÚcol_indicesr�   rÕ   Úccol_indicesÚrow_indices)r/   r·   rÓ   rÅ   rÑ   rÒ   s   &&  @@r   r¶   ÚMemTracker._sum_by_dev_dedupÇ   sâ   ù€ Ü*-«%ˆ	Ø*,ˆ÷	:ñ 	:ô& ˆAØ�{�{ˆ{Ù! !§)¡)£+Ô.Ù! !§(¡(£*Ö-Ø—‘œU×-Ñ-Ô-Ù! !§.¡.Ó"2Ô3Ù! !§-¡-£/Ô2Ù! !§(¡(£*Ö-Üœ ¨dÓ3Ò?ÀAÇHÁHÔPU×P`ÑP`ÔD`Ù! !§.¡.Ó"2Ô3Ù! !§-¡-£/Ô2Ù! !§(¡(£*×-á! !×$ñ ð ˆr   c               ó   € V ^8„  d   QhRR/# )r   r   úlist[torch.device]r   )r   s   "r   r   r!   ð   s   € ÷ [ñ [Ð+=ñ [r   c                	ó´   € \        V P                  P                  4       4      \        V P                  P                  4       4      ,          p\	        VR  R7      # )c                óT   € V P                   V P                  f   R3# V P                  3# )Néÿÿÿÿ)r®   Úindex)Úds   &r   Ú<lambda>Ú6MemTracker._all_known_devices_locked.<locals>.<lambda>ò   s!   € ¨a¯f©f¸A¿G¹GºO°bÑ-YÐQR×QXÑQXÑ-Yr   )rÐ   )rQ   r&   Úkeysr'   Úsorted)r/   Úall_sets   & r   rD   Ú$MemTracker._all_known_devices_lockedð   sB   € Ü�d×,Ñ,×1Ñ1Ó3Ó4´s¸4×;MÑ;M×;RÑ;RÓ;TÓ7UÕUˆÜ�gÑ#YÔZÐZr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚtablerŸ   r   úDict[str, int]r   )r   s   "r   r   r!   ô   s   € ÷ ñ Ð,Cð Èñ r   c                	óš   € / pVP                  4        F4  w  r4VP                  VP                  ^ 4      V,           W#P                  &   K6  	  V# r¡   )r?   r@   r®   )r/   rí   Úoutrå   Úvs   &&   r   rE   Ú!MemTracker._totals_by_type_lockedô   s=   € Ø ˆØ—K‘K–M‰DˆAØŸ'™' !§&¡&¨!Ó,¨qÕ0ˆC—‘‹Kñ "àˆ
r   c               ó   € V ^8„  d   QhRR/# )r   r   rî   r   )r   s   "r   r   r!   ú   s   € ÷ ñ ¨ñ r   c                	ó  € / p\        V P                  P                  4       4      \        V P                  P                  4       4      ,           F2  pVP	                  VP
                  ^ 4      ^,           WP
                  &   K4  	  V# r¡   )rQ   r&   rè   r'   r@   r®   )r/   Úcountsrå   s   &  r   rF   Ú!MemTracker._counts_by_type_lockedú   sf   € Ø!#ˆÜ�T×+Ñ+×0Ñ0Ó2Ó3´c¸$×:LÑ:L×:QÑ:QÓ:SÓ6T×TÐTˆAØ#ŸZ™Z¨¯©°Ó2°QÕ6ˆF—6‘6‹Nñ Uàˆr   c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r   r9   r   r:   rŸ   r;   rà   r<   rî   r=   r   r   r   )r   s   "r   r   r!      sN   € ÷ Oñ OàðOð 0ðOð (ð	Oð
 $ðOð $ðOð 
ñOr   c                	óF  € \         '       g   R # V F1  pVP                  V^ 4      p\        V RV R\        V4       24       K3  	  \	        VP                  4       4       F>  pVP                  V^ 4      ^8”  g   K  \        V RV R\        WH,          4       24       K@  	  R # )NÚ z: )r   r@   r   rC   ré   rè   )	r/   r9   r:   r;   r<   r=   rJ   rj   Údtypes	   &&&&&&   r   rG   Ú%MemTracker._print_full_device_summary   s–   € ÷ ‹zÙÛˆCØ ×$Ñ$ S¨!Ó,ˆCÜ�V�H˜A˜c˜U "¤\°#Ó%6Ð$7Ð8Ö9ñ ô ˜K×,Ñ,Ó.Ö/ˆEØ�‰˜u aÓ(¨1Ö,Ü˜˜  % ¨¬<¸Õ8JÓ+KÐ*LÐMÖNó 0r   c               ó    € V ^8„  d   QhRRRR/# )r   rJ   útorch.devicer   r   r   )r   s   "r   r   r!     s   € ÷ xñ x ,ð x°4ñ xr   c                	ó˜  € V P                   pVe   V^ 8:  d   R # V P                  ;_uu_ 4        V P                  P                  V^ 4      pR R R 4       XV8  d   R # \	        V4      '       d¸   V P                  ;_uu_ 4        ^ V P                  V&   V P
                  P                  V^ 4      ^,           V P
                  V&   V ;P                  ^,          un        V P
                  V,          pV P                  pR R R 4       \        \         R\         RV RX RX 2	4       R # R #   + '       g   i     Lã; i  + '       g   i     LH; i)Nz	[auto_gc]rù   z: ran GC (count=z), total across devices=)
r-   r,   r'   r@   Ú_run_backend_gcr(   r)   r   r€   rB   )r/   rJ   rƒ   Úcurrent_freedÚper_dev_countÚtotal_counts   &&    r   rU   ÚMemTracker._maybe_auto_gc  s  € Ø×'Ñ'ˆ	ØÒ 	¨Q¤Ùà�Z�Z‹ZØ ×.Ñ.×2Ñ2°3¸Ó:ˆM÷ ð ˜9Ô$Ùä˜3×ÒØ——“Ø*+�×"Ñ" 3Ñ'Ø-1×-BÑ-B×-FÑ-FÀsÈAÓ-NÐQRÕ-R�×%Ñ% cÑ*Ø×$Ò$¨Õ)Õ$Ø $× 5Ñ 5°cÕ :�Ø"×2Ñ2�÷ ô ”F�8˜9¤U G¨1¨S¨EÐ1AÀ-ÀÐPhÐitÐhuÐvÖwñ  ÷ �Zú÷ —ús   ®D&ÂA8D9Ä&D6	Ä9E		)r&   r-   r'   r(   r)   r,   )ry   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r0   rM   rX   r^   rk   rp   ru   r.   r�   r>   r¢   r£   rµ   r¶   rD   rE   rF   rG   rU   Ú__static_attributes__r   r   r   r   r   $   sn   † ÷Eõ
õ&)õ::÷&÷&õNõoõ(6õ.õ
=õ/õõ&õR[õõõO÷$xñ xr   r   c               ó    € V ^8„  d   QhRRRR/# )r   rJ   rý   r   Úboolr   )r   s   "r   r   r   (  s   € ÷ ñ ˜ð ¨$ñ r   c                ó’  €  V P                   R 8X  dX   V P                  e*   \        P                  P	                  V P                  4       \        P                  P                  4        R# V P                   R8X  d7   \        \        R4      '       d!   \        P                  P                  4        R# V P                   R8X  d7   \        \        R4      '       d!   \        P                  P                  4        R# V P                   R8X  d-   \        '       d!   \        P                  P                  4        R# R#   \         d     R# i ; i)r‹   TÚxpuÚmpsÚnpuF)r®   rä   rŠ   r‹   Ú
set_deviceÚempty_cacheÚhasattrr  r  r   r  r”   )rJ   s   &r   rÿ   rÿ   (  sÔ   € ðØ�8‰8�vÔØ�y‰yÒ$Ü—
‘
×%Ñ% c§i¡iÔ0Ü�J‰J×"Ñ"Ô$ÙØ�8‰8�uÔ¤¬°×!6Ò!6Ü�I‰I×!Ñ!Ô#ÙØ�8‰8�uÔ¤¬°×!6Ò!6Ü�I‰I×!Ñ!Ô#ÙØ�8‰8�uÔ§£Ü�I‰I×!Ñ!Ô#ÙÙøÜô Úðús,   ‚A&D7 Á*AD7 Â1AD7 Ã8D7 ÄD7 Ä7EÅEc               ó$   € V ^8„  d   QhRRRRRR/# )r   rí   rŸ   Úqueryrý   r   r~   r   )r   s   "r   r   r   =  s'   € ÷ Cñ CÐ2ð C¸<ð CÈCñ Cr   c                óÜ   a€ SP                   f$   \        V3R lV P                  4        4       4      # V P                  \        P
                  ! SP                  SP                   4      ^ 4      # )Nc              3  óf   <"  € T F&  w  rVP                   SP                   8X  g   K"  Vx € K(  	  R # 5ir   )r®   )Ú.0rå   rñ   r  s   &  €r   Ú	<genexpr>Ú"_sum_for_device.<locals>.<genexpr>?  s$   øé € ÐG¡™˜°!·&±&¸E¿J¹JÑ2F—1’1£ùs   ƒ1§
1)rä   rf   r?   r@   rŠ   rb   r®   )rí   r  s   &fr   rh   rh   =  sH   ø€ Ø‡{�{ÒÜÔG §¡¤ÓGÓGÐGà�y‰yœŸš e§j¡j°%·+±+Ó>ÀÓBÐBr   c               ó    € V ^8„  d   QhRRRR/# )r   Únr~   r   r   r   )r   s   "r   r   r   D  s   € ÷ ñ �Cð ˜Cñ r   c                ó„   € . ROp\        V 4      pV F*  pVR8  g   W1R,          8X  d   VR RV 2u # VR,          pK,  	  R# )ÚBi   z.2frù   g      �@N)r  ÚKiBÚMiBÚGiBÚTiBrã   )Úfloat)r  Úunitsr¯   Úus   &   r   rC   rC   D  sD   € Ú-€EÜˆa‹€AÛˆØˆtŒ8�q "�I”~Ø˜�W˜A˜a˜S�>Ò!Ø	ˆV�Šó r   ) Ú
__future__r   Úosr*   Útypingr   r   r   r   rŠ   Útorch.nnrª   r   rB   rA   rT   r€   rH   r]   Úenvironr@   r   r   r«   r¬   r²   r©   r5   r   rÿ   rh   rC   r   r   r   Ú<module>r)     s¤   ðõ #ã 	Û ß 3Ó 3ã Ý å ð €Ø
€Ø
€Ø
€Ø
€Ø
€ð �Z‰Z�^‰^˜G SÓ)¨SÑ0€
õð
 	‡i�i�%—,‘,Õ€Ø�5˜˜c˜•?Õ"€
÷Axñ AxõHõ*C÷r   