Ë
    ÌÓ^jt$  ã                   óì   — d dl Z d dlZd dlZd dlZd dlZd dlmZ d dlZd dl	m
Z d dlZd dlmc mZ d dlmZ d„ Z ed¬«      d„ «       Zdd	œd
ej*                  dedefd„Z G d„ d«      Z G d„ d«      Zy)é    N)Údefaultdict)ÚStorageWeakRefc                  ó   ‡ — ˆ fd„}|S )zkLazily wrap a function with torch.compile on the first call

    This avoids eagerly importing dynamo.
    c                 óF   •‡ — t        j                  ‰ «      ˆˆ fd„«       }|S )Nc                  ó    •— t        j                  ‰fi ‰¤Ž} t        j                  ‰«      |«      t	        «       ‰j
                  <    || i |¤ŽS ©N)ÚtorchÚcompileÚ	functoolsÚwrapsÚglobalsÚ__name__)ÚargsÚkwargsÚcompiled_fnÚcompile_kwargsÚfns      €€úe/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/utils/_content_store.pyÚcompile_hookz7lazy_compile.<locals>.decorate_fn.<locals>.compile_hook4   sF   ø€ äŸ-™-¨Ñ=¨nÑ=ˆKØ%8¤Y§_¡_°RÓ%8¸Ó%EŒG‹I�b—k‘kÑ"Ù Ð/¨Ñ/Ð/ó    )r   r   )r   r   r   s   ` €r   Údecorate_fnz!lazy_compile.<locals>.decorate_fn3   s&   ù€ Ü	�‰˜Ó	ô	0ó 
ð	0ð
 Ðr   © )r   r   s   ` r   Úlazy_compiler   -   s   ø€ ôð Ðr   T)Údynamicc                 óÈ  — t        j                  dd| j                  | j                  t         j                  ¬«      j                  «       }|dz  dz   j                  «       }t        j                  dd| j                  | j                  t         j                  ¬«      j                  «       j                  «       }t        j                  || z  |z   j                  «       dg«      S )Ni   €l        )ÚdeviceÚdtypeiÿÿÿé   r   )
r	   ÚrandintÚshaper   Úint32ÚabsÚlongÚprimsÚxor_sumÚint)ÚxÚaÚbs      r   Úhash_storage_kernelr*   C   s£   € ô
 	�‰Ø�%˜Ÿ™¨¯©¼¿¹ô	ç	�cƒeð ð ˆy‰/˜QÑ	×$Ñ$Ó&€Aä�‰�h  q§w¡w°q·x±xÄuÇ{Á{ÔSß	‰‹ß	‰‹ð ô �=‰=˜!˜a™% !™)Ÿ™Ó*¨Q¨CÓ0Ð0r   F©Ústable_hashÚstorager,   Úreturnc                ó  — dd l }ddlm} | j                  j                  }|s ||«      s…| j                  «       }t        j                  |j                  «       z  j                  |j                  «       «      }t        j                  d¬«      }|j                  |«       |j                  «       S |dk(  r|j                  j                   }n”|dk(  r.|j"                  j$                  | j                  j&                     }na|dk(  r|j(                  j+                  «       }nA|dk(  r.|j,                  j$                  | j                  j&                     }nt/        d	|› �«      ‚|j1                  «       }		 |j3                  d«        |j4                  d|j6                  | j                  ¬
«      j9                  | «      }
|
j;                  «        dz  }|dkD  rt=        j>                  |
d|fdd«      }
|
jA                  |jB                  «      }
d}tE        |«      D �cg c]  }tG        |
«      jI                  «       ‘Œ }}tK        jL                  dd|z  z   g|¢­Ž jO                  «       |jQ                  |	«       S c c}w # |jQ                  |	«       w xY w)Nr   )Úis_compile_supportedF)ÚusedforsecurityÚcpuÚcudaÚmpsÚxpuzunhandled device type ©r   r   é   Úconstanté   ú>Úi))Útorch._dynamoÚtorch._dynamo.utilsr0   r   Útyper2   ÚctypesÚc_byteÚnbytesÚfrom_addressÚdata_ptrÚhashlibÚsha1ÚupdateÚ	hexdigestÚ_CÚdefault_generatorr3   Údefault_generatorsÚindexr4   Ú_get_default_mps_generatorr5   ÚAssertionErrorÚ	get_stateÚmanual_seedÚemptyÚuint8Úset_ÚnumelÚFÚpadÚviewr!   Úranger*   ÚitemÚstructÚpackÚhexÚ	set_state)r-   r,   r	   r0   Údevice_typeÚcpu_storageÚbufrE   Ú	generatorÚstater'   rU   ÚITERÚ_Úcss                  r   Úhash_storagere   ^   s  € ÛÝ8à—.‘.×%Ñ%€KÙÑ.¨{Ô;Ø—k‘k“mˆô �}‰}˜{×1Ñ1Ó3Ñ3×AÑAØ× Ñ Ó"ó
ˆô �|‰|¨EÔ2ˆØ�‰�CÔØ�~‰~ÓÐð �eÒØ—H‘H×.Ñ.‰	Ø	˜Ò	Ø—J‘J×1Ñ1°'·.±.×2FÑ2FÑG‰	Ø	˜Ò	Ø—I‘I×8Ñ8Ó:‰	Ø	˜Ò	Ø—I‘I×0Ñ0°·±×1EÑ1EÑF‰	äÐ5°k°]ÐCÓDÐDØ×ÑÓ!€Eð#Ø×Ñ˜aÔ ØˆE�K‰K˜ §¡°W·^±^ÔD×IÑIÈ'ÓRˆð �w‰w‹yˆj˜1‰nˆØ�Š7Ü—‘�a˜!˜S˜ :¨qÓ1ˆAØ�F‰F�5—;‘;Óˆð ˆÜ5:¸4³[ÖA°Ô! !Ó$×)Ñ)Õ+ÐAˆÐAÜ�{‰{˜3  t¡Ñ+Ð1¨bÒ1×5Ñ5Ó7à×Ñ˜EÕ"ùò Bøð 	×Ñ˜EÕ"ús   Å1B&I9 È I4È7+I9 É4I9 É9Jc                   ó�   — e Zd Zddededdfd„Zdej                  defd„Zddej                  fd	„Z
d
edej                  ddfd„Zy)ÚContentStoreWriterÚlocr,   r.   Nc                 ó>   — || _         t        «       | _        || _        y r   )rh   ÚsetÚseen_storage_hashesr,   )Úselfrh   r,   s      r   Ú__init__zContentStoreWriter.__init__”   s   € ØˆŒÜ-0«UˆÔ Ø&ˆÕr   r-   c                 óº  — t        || j                  ¬«      }|| j                  v r|S t        j                  j                  | j                  d«      }t        j                  |d¬«       t        j                  j                  ||«      }t        j                  j                  |«      r|S t        j                  ||«       | j                  j                  |«       |S )Nr+   ÚstoragesT©Úexist_ok)re   r,   rk   ÚosÚpathÚjoinrh   ÚmakedirsÚexistsr	   ÚsaveÚadd)rl   r-   ÚhÚ	subfolderÚtargets        r   Úwrite_storagez ContentStoreWriter.write_storageš   sŸ   € Ü˜¨d×.>Ñ.>Ô?ˆØ�×(Ñ(Ñ(ØˆHô —G‘G—L‘L §¡¨:Ó6ˆ	Ü
�‰�I¨Õ-Ü—‘—‘˜i¨Ó+ˆÜ�7‰7�>‰>˜&Ô!ØˆHÜ�
‰
�7˜FÔ#Ø× Ñ ×$Ñ$ QÔ'Øˆr   Útc                 ó  — |€%t        |j                  «       | j                  ¬«      }|j                  ||j	                  «       t        |j                  «      |j                  «       t        j                  j                  |«      fS )Nr+   )re   Úuntyped_storager,   r   Ústorage_offsetÚtupler    Ústrider	   Ú_utilsÚget_tensor_metadata)rl   r}   ry   s      r   Úcompute_tensor_metadataz*ContentStoreWriter.compute_tensor_metadata©   sh   € Øˆ9Ü˜Q×.Ñ.Ó0¸d×>NÑ>NÔOˆAà�G‰GØØ×ÑÓÜ�!—'‘'‹NØ�H‰H‹JÜ�L‰L×,Ñ,¨QÓ/ð
ð 	
r   Únamec                 óœ  — |j                  «       }| j                  |«      }t        j                  j	                  |«      \  }}| j                  ||¬«      }t        j                  j                  | j                  d|«      }t        j                  |d¬«       t        j                  |t        j                  j                  ||«      «       y )N)ry   ÚtensorsTrp   )r   r|   rr   rs   Úsplitr…   rt   rh   ru   r	   rw   )	rl   r†   r}   r-   ry   ÚdÚfÚpayloadrz   s	            r   Úwrite_tensorzContentStoreWriter.write_tensorµ   s�   € Ø×#Ñ#Ó%ˆØ×Ñ˜wÓ'ˆä�w‰w�}‰}˜TÓ"‰ˆˆ1Ø×.Ñ.¨q°AÐ.Ó6ˆÜ—G‘G—L‘L §¡¨9°aÓ8ˆ	Ü
�‰�I¨Õ-Ü�
‰
�7œBŸG™GŸL™L¨°AÓ6Õ7r   )Fr   )r   Ú
__module__Ú__qualname__ÚstrÚboolrm   r	   ÚUntypedStorager|   ÚTensorr…   r�   r   r   r   rg   rg   �   sc   „ ñ'˜Cð '¨dð '¸tó 'ð U×%9Ñ%9ð ¸có ñ

¨¯©ó 

ð8 ð 8¨¯©ð 8¸$ô 8r   rg   c                   ó‚   — e Zd Zddœdeddfd„Zddœdedej                  fd	„Zd
efd„Zddœd
edej                  fd„Z
y)ÚContentStoreReaderT)Úcacherh   r.   Nc                óN   — || _         d | _        |rt        t        «      | _        y y r   )rh   Ústorage_cacher   Údict)rl   rh   r–   s      r   rm   zContentStoreReader.__init__Á   s-   € ØˆŒð ð 	Ôñ Ü!,¬TÓ!2ˆDÕð r   ©r   ry   c          	      óF  — |�t        j                  |«      }| j                  �| j                  |   j                  |«      nd }|�-t         j                  j                  |j                  «      }|�|S t        j                  t        j                  j                  | j                  d|«      d|¬«      j                  }|€:t        d|› dt        j                  j                  | j                  d«      › d�«      ‚| j                  �t        |«      | j                  |   |<   |S )Nro   T)Úweights_onlyÚmap_locationzexpected storage for hash z in z
, got None)r	   r   r˜   Úgetr’   Ú_new_with_weak_ptrÚcdataÚloadrr   rs   rt   rh   Ú_untyped_storagerM   r   )rl   ry   r   ÚwsÚss        r   Úread_storagezContentStoreReader.read_storageÉ   s  € ØÐÜ—\‘\ &Ó)ˆFð ×!Ñ!Ð-ð ×Ñ˜vÑ&×*Ñ*¨1Ô-àð 	ð ˆ>Ü×$Ñ$×7Ñ7¸¿¹ÓAˆAØˆ}Ø�Ü�J‰JÜ�G‰G�L‰L˜Ÿ™ :¨qÓ1ØØô
÷ Ñ
ð	 	
ð
 ˆ9Ü Ø,¨Q¨C¨t´B·G±G·L±LÀÇÁÈ:Ó4VÐ3WÐWaÐbóð ð ×ÑÐ)Ü,:¸1Ó,=ˆD×Ñ˜vÑ& qÑ)Øˆr   r†   c                 óÚ   — t         j                  j                  | j                  d|«      }t         j                  j	                  |«      st        |«      ‚t        j                  |d¬«      S )Nrˆ   T)rœ   )rr   rs   rt   rh   rv   ÚFileNotFoundErrorr	   r¡   )rl   r†   r   s      r   Úread_tensor_metadataz'ContentStoreReader.read_tensor_metadataã   sH   € Ü�W‰W�\‰\˜$Ÿ(™( I¨tÓ4ˆÜ�w‰w�~‰~˜bÔ!Ü# BÓ'Ð'Ü�z‰z˜"¨4Ô0Ð0r   c                ó  — | j                  |«      \  }}}}}}| j                  ||¬«      }	t        j                  g ||	j                  ¬«      }
|
j                  |	|||«       t        j                  j                  |
|«       |
S )Nrš   r6   )r¨   r¥   r	   Útensorr   rR   rƒ   Úset_tensor_metadata)rl   r†   r   r   ry   r€   Úsizer‚   Úmetadatar-   r}   s              r   Úread_tensorzContentStoreReader.read_tensoré   sz   € Ø;?×;TÑ;TØó<
Ñ8ˆˆq�. $¨°ð ×#Ñ# A¨fÐ#Ó5ˆÜ�L‰L˜ 5°·±Ô@ˆØ	�‰ˆw˜¨¨fÔ5Ü�‰×(Ñ(¨¨HÔ5Øˆr   )r   rŽ   r�   r�   rm   r	   r’   r¥   r¨   r“   r®   r   r   r   r•   r•   À   s^   „ Ø*.ò 3˜Cð 3°4ó 3ð .2ò ˜cð °e×6JÑ6Jó ð41¨ó 1ð 04ò  ð ¸¿¹ô r   r•   )r?   r   rD   Úos.pathrr   rY   Úcollectionsr   r	   Útorch._primsÚ_primsr$   Útorch._utilsÚtorch.nn.functionalÚnnÚ
functionalrT   Ú torch.multiprocessing.reductionsr   r   r*   r’   r‘   r�   re   rg   r•   r   r   r   ú<module>r¸      s‡   ðó> Û Û Û Û Ý #ã Ý Û ß Ð Ý ;òñ, �dÔñ1ó ð1ð4 HMò ,#˜%×.Ñ.ð ,#Àð ,#ÐQTó ,#÷^08ñ 08÷f1ò 1r   