Ë
    L²j×L  ã                   ó’  — d dl Z d dlZd dlZd dlZ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
mZ d dlmZmZmZ d dl mZ d dlmZmZmZ d dlZd dlZd dlmZ d dlmZ d dlmZ d	d
lmZ d	dlm Z m!Z! d	dl"m#Z# erd	dl$m%Z% d	dl&m'Z'm(Z(  ejR                  e*«      Z+dejX                  dedede-e.ef   fd„Z/e G d„ d«      «       Z0 G d„ dejb                  «      Z2 G d„ dejf                  «      Z4e G d„ d«      «       Z5de.de6fd„Z7e G d„ d «      «       Z8	 d.d!ed"e9e9ed#f   e-e.ef   f   d$e#d%e
ejt                  jv                  e<ejz                     ge!f   d&e>dz  de8fd'„Z?e G d(„ d)«      «       Z@e G d*„ d+«      «       ZAd!ej„                  j†                  d,e<e@   d$e#d%e
ejt                  jv                  e<ejz                     ge!f   deAf
d-„ZDy)/é    N)ÚCallableÚSequence)ÚAbstractContextManagerÚ	ExitStackÚnullcontext)Ú	dataclass)ÚAnyÚOptionalÚTYPE_CHECKING)ÚGraphRuntimeEnv)Ú_graph_device_type)Ú
SystemInfoé   )Úconvert_frame)Ú&BundledAOTAutogradSerializableCallableÚSerializableCallable)ÚHooks)ÚGuardManagerWrapper)ÚSerializedCodeÚ
SourceInfoÚ	signatureÚargsÚkwargsÚreturnc                 ó^   —  | j                   |i |¤Ž}|j                  «        |j                  S ©N)ÚbindÚapply_defaultsÚ	arguments)r   r   r   Úbound_argumentss       úX/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/_dynamo/aot_compile.pyÚbind_localsr"   %   s1   € ð %�i—n‘n dÐ5¨fÑ5€OØ×"Ñ"Ô$Ø×$Ñ$Ð$ó    c                   óì   — e Zd ZU ej                  ed<   ed   ed<   eed<   eed<   e	ed<   e
j                  ed<   eed<   d	ed
<   eed<   eed<    ej                  ej                   ¬«      Zeed<   dd„Zy)ÚCompileArtifactsr   r   Úguard_managerÚguards_stateÚ
backend_idÚcompiled_fnÚoriginal_codeÚruntime_envr   Úsource_infoÚdevice_typeÚbackend_name)Údefault_factoryÚsystem_infoNc                 óx   — t        j                  «       }|j                  | j                  | j                  «       y r   )r   ÚcurrentÚcheck_compatibilityr0   r-   )ÚselfÚcurrent_systems     r!   r3   z$CompileArtifacts.check_compatibility;   s,   € Ü#×+Ñ+Ó-ˆØ×*Ñ*¨4×+;Ñ+;¸T×=MÑ=MÕNr#   ©r   N)Ú__name__Ú
__module__Ú__qualname__ÚinspectÚ	SignatureÚ__annotations__r
   ÚbytesÚstrr   ÚtypesÚCodeTyper   ÚdataclassesÚfieldr   r2   r0   r3   © r#   r!   r%   r%   -   sp   … à× Ñ Ó ØÐ1Ñ2Ó2ØÓØƒOØ%Ó%Ø—>‘>Ó!Ø Ó ØÓØÓØÓØ/˜k×/Ñ/À
×@RÑ@RÔS€K�ÓSôOr#   r%   c                   ó¤  ‡ — e Zd Zdeeef   dej                  ddfˆ fd„Zdede	ez  dz  fd„Z
ededefd	„«       Zed
ededej                  fd„«       Zededej"                  fd„«       Zedddej&                  fd„«       Zedej&                  dededeedf   dz  deej,                  df   dz  dej.                  fd„«       Zdedefd„Zˆ xZS )ÚAOTCompilePicklerÚexternal_dataÚbufr   Nc                 ó°   •— t         ‰| �  |«       || _        |j                  «       D ��ci c]  \  }}t	        |«      |“Œ c}}| _        i | _        y c c}}w r   )ÚsuperÚ__init__rF   ÚitemsÚidÚid_mapÚerrors)r4   rF   rG   ÚkeyÚvalueÚ	__class__s        €r!   rJ   zAOTCompilePickler.__init__A   sR   ø€ Ü‰Ñ˜ÔØ*ˆÔà-:×-@Ñ-@Ó-B÷'
Ù)˜s EŒBˆu‹I�s‰Nó'
ˆŒð ˆ�ùó'
s   «AÚobjc                 óð   — t        |«      | j                  v r| j                  t        |«         S t        |t        j                  j
                  «      r#|| j                  t        |«      <   t        |«      S y r   )rL   rM   Ú
isinstanceÚtorchÚnnÚModulerN   )r4   rR   s     r!   Úpersistent_idzAOTCompilePickler.persistent_idI   sU   € Üˆc‹7�d—k‘kÑ!Ø—;‘;œr #›wÑ'Ð'Ü˜œUŸX™XŸ_™_Ô-Ø#&ˆD�K‰Kœ˜3›Ñ Ü�c“7ˆNàr#   Úvalc                 óV   ‡— dt         fˆfd„}|j                  €J ‚|j                  d   S )Nr   c                  ó   •— ‰ S r   rC   )rY   s   €r!   Ú_z+AOTCompilePickler._unpickle_cell.<locals>._T   s   ø€ ØˆJr#   r   )ÚobjectÚ__closure__)ÚclsrY   r\   s    ` r!   Ú_unpickle_cellz AOTCompilePickler._unpickle_cellR   s0   ø€ ð	”6õ 	ð �}‰}Ð(Ð(Ð(Ø�}‰}˜QÑÐr#   ÚfuncÚbasec                 ó.   — t        j                  ||«      S r   )r?   Ú
MethodType)r_   ra   rb   s      r!   Ú_unpickle_bound_methodz(AOTCompilePickler._unpickle_bound_methodZ   s   € ô ×Ñ  dÓ+Ð+r#   Únamec                 ó,   — t        j                  |«      S r   )Ú	importlibÚimport_module)r_   rf   s     r!   Ú_unpickle_modulez"AOTCompilePickler._unpickle_module_   s   € ä×&Ñ& tÓ,Ð,r#   Úserialized_coder   c                 ó2   — ddl m}  |j                  |«      S )Nr   ©r   )Útorch._dynamo.packager   Úto_code_object)r_   rk   r   s      r!   Ú_unpickle_codez AOTCompilePickler._unpickle_codec   s   € å8à,ˆ~×,Ñ,¨_Ó=Ð=r#   ÚcodeÚmoduleÚqualnameÚargdefs.Úclosurec                 ór   — t        j                  |«      j                  }t        j                  |||||«      S r   )rh   ri   Ú__dict__r?   ÚFunctionType)r_   rq   rr   rs   rt   ru   Ú	f_globalss          r!   Ú_unpickle_nested_functionz+AOTCompilePickler._unpickle_nested_functioni   s3   € ô ×+Ñ+¨FÓ3×<Ñ<ˆ	Ü×!Ñ! $¨	°8¸WÀgÓNÐNr#   c                 óŠ  — t        |t         d„ d«      j                  d   «      «      r"t        | «      j                  |j                  ffS t        j                  |«      r.ddlm} t        | «      j                   |j                  |«      ffS t        j                  |«      r"t        | «      j                  |j                  ffS t        j                  |«      rs	 |j                  }|j                   }t#        ||j                  «      }t        j                  |«      r|j                  }||urt        | «      j$                  ||ffS t2        S t        j&                  |«      r\d|j(                  v rNt        | «      j*                  |j,                  |j.                  |j(                  |j0                  |j                  ffS t2        S )Nc                 ó   ‡ — ˆ fd„S )Nc                  ó   •— ‰ S r   rC   ©Úxs   €r!   ú<lambda>zFAOTCompilePickler.reducer_override.<locals>.<lambda>.<locals>.<lambda>w   s   ø€ °1€ r#   rC   r~   s   `r!   r€   z4AOTCompilePickler.reducer_override.<locals>.<lambda>w   s   ø€ «9€ r#   r   rm   z<locals>)rT   Útyper^   r`   Úcell_contentsr:   Úiscodern   r   rp   Úfrom_code_objectÚismodulerj   r7   ÚismethodÚ__func__Ú__self__Úgetattrre   Ú
isfunctionr9   rz   Ú__code__r8   Ú__defaults__ÚNotImplemented)r4   rR   r   ra   Úmethod_selfÚ
inner_funcs         r!   Úreducer_overridez"AOTCompilePickler.reducer_overridev   s�  € Ü�cœ4Ò!4°aÓ 8× DÑ DÀQÑ GÓHÔIÜ˜“:×,Ñ,¨s×/@Ñ/@Ð.BÐBÐBÜ�^‰^˜CÔ Ý<ä˜“:×,Ñ,Ð/N¨~×/NÑ/NÈsÓ/SÐ.UÐUÐUä×Ñ˜cÔ"Ü˜“:×.Ñ.°·±°Ð?Ð?Ü×Ñ˜cÔ"ðð —<‘<ˆDØŸ,™,ˆKÜ  ¨d¯m©mÓ<ˆJÜ×Ñ 
Ô+Ø'×0Ñ0�
Ø˜:Ñ%Ü˜D“z×8Ñ8¸4ÀÐ:MÐMÐMô Ðô ×Ñ Ô$Ø˜S×-Ñ-Ñ-Ü˜D“z×;Ñ;Ø—L‘LØ—N‘NØ×$Ñ$Ø×$Ñ$Ø—O‘Oð>ð ð ô Ðr#   )r7   r8   r9   Údictr>   r]   ÚioÚBytesIOrJ   ÚintrX   Úclassmethodr`   r   r?   rd   re   Ú
ModuleTyperj   r@   rp   ÚtupleÚCellTyperx   rz   r	   r�   Ú__classcell__©rQ   s   @r!   rE   rE   @   sz  ø„ ð d¨3°¨;Ñ&7ð ¸b¿j¹jð ÈTõ ð ð ¨C°#©I¸Ñ,<ó ð ð  ð  ¨Fò  ó ð ð ð,¨(ð ,¸&ð ,ÀU×EUÑEUò ,ó ð,ð ð- Cð -¨E×,<Ñ,<ò -ó ð-ð ð>Ð-=ð >À%Ç.Á.ò >ó ð>ð
 ð	Oà�n‰nð	Oð ð	Oð ð		Oð
 �v˜s�{Ñ# dÑ*ð	Oð �u—~‘~ sÐ*Ñ+¨dÑ2ð	Oð 
×	Ñ	ò	Oó ð	Oð" Cð "¨C÷ "r#   rE   c                   óZ   ‡ — e Zd Zdeeef   dej                  defˆ fd„Zdedefd„Z	ˆ xZ
S )ÚAOTCompileUnpicklerrF   Úfiler   c                 ó2   •— t         ‰| �  |«       || _        y r   )rI   rJ   rF   )r4   rF   r�   rQ   s      €r!   rJ   zAOTCompileUnpickler.__init__œ   s   ø€ Ü‰Ñ˜ÔØ*ˆÕr#   rO   c                 ór   — || j                   vrt        d|› d| j                   › �«      ‚| j                   |   S )Nz-Missing required external reference to data: zS. Please load AOT compiled function with `external_data=<external data dictionary>`)rF   ÚRuntimeError)r4   rO   s     r!   Úpersistent_loadz#AOTCompileUnpickler.persistent_load    sP   € Ø�d×(Ñ(Ñ(ÜØ?À¸uð E=ð ×%Ñ%Ð&ð(óð ð ×!Ñ! #Ñ&Ð&r#   )r7   r8   r9   r‘   r>   r]   r’   r“   rJ   r¡   r™   rš   s   @r!   rœ   rœ   ›   s=   ø„ ð+ d¨3°¨;Ñ&7ð +¸r¿z¹zð +Èfõ +ð' 3ð '¨6÷ 'r#   rœ   c                   ó   — e Zd ZU eed<   y)ÚAOTCompileSaveResultÚserialized_dataN)r7   r8   r9   r=   r<   rC   r#   r!   r£   r£   «   s   … àÔr#   r£   Ú	file_pathÚdatac                 óp  — t         j                  j                  | «      xs d}t        j                  |dd¬«      5 }|j
                  }|j                  |«       |j                  «        t        j                  |j                  «       «       d d d «       t        j                  | «       y # 1 sw Y   Œ xY w)Nú.FÚwb)ÚdirÚdeleteÚmode)ÚosÚpathÚdirnameÚtempfileÚNamedTemporaryFilerf   ÚwriteÚflushÚfsyncÚfilenoÚreplace)r¥   r¦   Údir_nameÚ	temp_fileÚ	temp_paths        r!   Úatomic_write_binaryrº   °   sŠ   € Ü�w‰w�‰˜yÓ)Ò0¨S€Hä	×	$Ñ	$Ø˜U¨ô
ð %à	Ø—N‘Nˆ	Ø�‰˜ÔØ�‰ÔÜ
�‰�×!Ñ!Ó#Ô$÷%ô ‡J�Jˆy˜)Õ$÷%ð %ús   ¼AB,Â,B5c            
       óD  — e Zd ZU eed<   dZeed<   dZee	e
f   dz  ed<   de
de
dee	e
f   fd	„Zdededefd
„Zdd„Zdededefd„Zdd„Z	 dde	dee	ef   dz  defd„Ze	 ddd dee	ef   dz  defd„«       Ze	 	 ddedee	e
f   dz  dee	ef   dz  dd fd„«       Zdd„Zy)ÚAOTCompiledFunctionÚ
_artifactsTÚ_guard_check_enabledNÚ_extra_globalsr   r   r   c                 óæ  — i }| j                   j                  }|j                  r”|j                  j                  r5t        |j                  «      t        |j                  j                  «      k(  sJ ‚t        |j                  j                  |j                  «      D ��ci c]  \  }}||j                  “Œ }}}|j                  t        | j                   j                  g|¢­i |¤Ž«       |S c c}}w r   )r½   r+   ru   ÚbytecodeÚco_freevarsÚlenÚzipr‚   Úupdater"   r   )r4   r   r   Úf_localsÚenvrf   Úcells          r!   Úprepare_f_localsz$AOTCompiledFunction.prepare_f_localsÄ   sÍ   € Ø&(ˆØ�o‰o×)Ñ)ˆØ�;Š;Ø—<‘<×+Ò+´°C·K±KÓ0@ÄCØ—‘×(Ñ(óEò 1ð ð ô
 #& c§l¡l×&>Ñ&>ÀÇÁÓ"L÷á�D˜$ð �d×(Ñ(Ñ(ðˆHñ ð 	�‰œ D§O¡O×$=Ñ$=ÐOÀÒOÈÑOÔPØˆùós   ÂC-c                 ó    —  | j                   |i |¤Ž}| j                  j                  €J ‚| j                  j                  j                  |«      S r   )rÉ   r½   r&   Úcheck)r4   r   r   rÆ   s       r!   Úguard_checkzAOTCompiledFunction.guard_checkÒ   sJ   € Ø(�4×(Ñ(¨$Ð9°&Ñ9ˆØ�‰×,Ñ,Ð8Ð8Ð8Ø�‰×,Ñ,×2Ñ2°8Ó<Ð<r#   c                 óî  — ddl m}m} | j                  j	                  «        | j                  j
                  j                  | j                  j                  | j                  j                  | j                  ¬«      | _
        | j                  j                  €^ || j                  j                  «      } ||| j                  j                  | j                  j                  «      | j                  _        y y )Nr   )Úload_guard_managerÚload_guards_state)Úextra_globals)ÚpackagerÎ   rÏ   r½   r3   r+   Úforward_callabler(   r)   r¿   Úfnr&   r'   r*   Ú__globals__)r4   rÎ   rÏ   r'   s       r!   Ú__post_init__z!AOTCompiledFunction.__post_init__×   s²   € ßBà�‰×+Ñ+Ô-à—/‘/×-Ñ-×>Ñ>Ø�O‰O×&Ñ&Ø�O‰O×'Ñ'Ø×-Ñ-ð ?ó 
ˆŒð �?‰?×(Ñ(Ð0Ù,¨T¯_©_×-IÑ-IÓJˆLÙ,>ØØ—‘×-Ñ-Ø—‘×#Ñ#ó-ˆD�O‰OÕ)ð 1r#   c                 ó.  — | j                   j                  €J ‚| j                  r` | j                  |i |¤ŽsN | j                  |i |¤Ž}t        | j                   j                  j                  |«      «      }t        d|› �«      ‚ | j                  |i |¤ŽS )Nz#GuardManager check failed, reason: )	r½   r&   r¾   rÌ   rÉ   r>   Úcheck_verboser    rÓ   )r4   r   r   rÆ   Úreasons        r!   Ú__call__zAOTCompiledFunction.__call__ê   s•   € Ø�‰×,Ñ,Ð8Ð8Ð8Ø×$Ò$Ð-=¨T×-=Ñ-=¸tÐ-NÀvÒ-NØ,�t×,Ñ,¨dÐ=°fÑ=ˆHÜ˜Ÿ™×6Ñ6×DÑDÀXÓNÓOˆFÜÐ!DÀVÀHÐMÓNÐNØˆt�w‰w˜Ð' Ñ'Ð'r#   c                 ó.   — | j                   j                  S r   )r½   r,   ©r4   s    r!   r,   zAOTCompiledFunction.source_infoò   s   € Ø�‰×*Ñ*Ð*r#   r®   rF   c                 óh   — t        | «      j                  | |«      }t        ||j                  «       |S r   )r�   Ú	serializerº   r¤   )r4   r®   rF   Úresults       r!   Úsave_compiled_functionz*AOTCompiledFunction.save_compiled_functionõ   s/   € ô �d“×%Ñ% d¨MÓ:ˆÜ˜D &×"8Ñ"8Ô9Øˆr#   rÓ   c                 óˆ  — ddl m} |j                  j                  j	                  «       }d |d<   t        j                  |d    |j                  |d   j                  «      ¬«      |d<   |d   }t        |«      j                  t        |«      j                  |«      f|d<    |j                  |d   «      |d<   t        j                  «       }t        |xs i |«      }|j                  |«       |j                   r0t#        dt%        |j                   j'                  «       «      › d	�«      ‚t)        |j+                  «       ¬
«      S )Nr   rm   r&   r+   ©rÁ   r)   r*   z+Failed to serialize the following objects: zI
Please mark these as external data by using `external_data={'key': ...}`)r¤   )rn   r   r½   rw   ÚcopyrA   r¶   r„   rÁ   r�   Údeserialize_compile_artifactsÚserialize_compile_artifactsr’   r“   rE   ÚdumprN   r    ÚlistÚvaluesr£   Úgetvalue)r_   rÓ   rF   r   Ústater)   rG   Úpicklers           r!   rÝ   zAOTCompiledFunction.serializeü   s/  € õ 	9à—‘×&Ñ&×+Ñ+Ó-ˆØ!%ˆˆoÑÜ*×2Ñ2Ø�-Ñ Ø4�^×4Ñ4°U¸=Ñ5I×5RÑ5RÓSô 
ˆˆmÑð ˜MÑ*ˆä�Ó×;Ñ;Ü�Ó×9Ñ9¸+ÓFð 
ˆˆmÑð "A ×!@Ñ!@ÀÀÑAWÓ!XˆˆoÑÜ�j‰j‹lˆÜ# MÒ$7°R¸Ó=ˆØ�‰�UÔØ�>Š>ÜØ=¼dÀ7Ç>Á>×CXÑCXÓCZÓ>[Ð=\ð ][ð [óð ô $°C·L±L³NÔCÐCr#   r¦   ry   Úexternal_closure_datac                 ó,  — ddl m} t        j                  |«      }|j	                  d«       t        |xs i |«      }|j                  «       }|j                  «        t        j                  |d    |j                  |d   j                  «      ¬«      |d<   |d   \  }}	t        j                  j                  j                  d¬«      5   ||	«      |d<   d d d «        |j                  |d   «      |d<   t!        d
i |¤Ž}
 | |
|¬	«      S # 1 sw Y   Œ6xY w)Nr   rm   r+   rá   r)   T)Úenable_autograd_for_aotr*   )r¿   rC   )rn   r   r’   r“   Úseekrœ   ÚloadÚcloserA   r¶   ro   rÁ   rU   Ú	_inductorÚconfigÚpatchr%   )r_   r¦   ry   rë   r   ÚfÚ	unpicklerré   ÚdeserializerÚcompiled_fn_stateÚ	artifactss              r!   ÚdeserializezAOTCompiledFunction.deserialize  s  € õ 	9ä�J‰J�tÓˆØ	�‰ˆqŒ	Ü'Ð(=Ò(CÀÀQÓGˆ	Ø—‘Ó ˆØ	�‰Œ	Ü*×2Ñ2Ø�-Ñ Ø2�^×2Ñ2°5¸Ñ3G×3PÑ3PÓQô 
ˆˆmÑð +0°Ñ*>Ñ'ˆÐ'Ü�_‰_×#Ñ#×)Ñ)À$Ð)ÓGñ 	CÙ#/Ð0AÓ#BˆE�-Ñ ÷	Cà!> ×!>Ñ!>¸uÀ_Ñ?UÓ!VˆˆoÑä$Ñ- uÑ-ˆ	Ù�9¨YÔ7Ð7÷	Cð 	Cús   Ã	D
Ä
Dc                 ó   — d| _         y )NF)r¾   rÛ   s    r!   Údisable_guard_checkz'AOTCompiledFunction.disable_guard_check2  s
   € Ø$)ˆÕ!r#   r6   )r   r   r   )NN)r7   r8   r9   r%   r<   r¾   Úboolr¿   r‘   r>   r]   rÉ   r	   rÌ   rÕ   rÙ   r,   r£   rß   r•   rÝ   r=   rù   rû   rC   r#   r!   r¼   r¼   ¾   s`  … à Ó Ø!%Ð˜$Ó%Ø/3€N�D˜˜f˜Ñ%¨Ñ,Ó3ð fð ¸ð À4ÈÈVÈÑCTó ð= ð =°ð =¸ó =ó
ð&(˜cð (¨Sð (°Só (ó+ð AEñØðØ(,¨S°#¨X©¸Ñ(=ðà	óð àOSñDØ&ðDØ7;¸CÀ¸H±~ÈÑ7LðDà	òDó ðDð6 ð /3Ø7;ñ	8àð8ð ˜˜V˜Ñ$ tÑ+ð8ð  $ C¨ H™~°Ñ4ð	8ð
 
ò8ó ð8ô2*r#   r¼   ÚmodelÚexample_inputs.ÚhooksÚbackendÚdynamicc                 ó8	  ‡— ddl mŠ ddlm} ddlm}m} ddlm} ddl	m
}	 |\  }
}t        «       }|�ddlm}  ||«      } |«       5   |d«      5  t        j                  j                   j#                  d	¬
«      5  |5  |5  t%        j&                  | |
|«      }|j(                  }|j*                  €J ‚|j,                  s)ddlm} dt2        |   dt2        t4           fˆfd„}||_        t%        j6                  | «      \  }}|j8                  }|€J ‚|j:                  |j<                  _        tA        |j<                  jB                  «      }|jD                  jF                  |j*                  jF                  u sJ ‚ |	|jD                  «      }|jH                  |_$        t        jJ                  jM                  |«      5  t        j                  j                   j#                  d	d	d	d	d	dœ«      5   ||j<                  |jN                  «      }tQ        |t        jR                  «      sftU        |d«      rBtQ        |jV                  t        jX                  jZ                  j\                  j^                  «      stU        |d«      r|j`                  �tc        |«      }d d d «       d d d «       tQ        td        «      s:tU        |d«      r|jV                  }n|}tg        dti        |«      › d�d|› d�z   «      ‚tk        «       }|jl                  r|jo                  |jq                  «       «       |5  |js                  |jt                  |d	d	¬«      }d d d «       jv                  €J ‚ |ty        «       ¬«      }|jz                  D ]  }|j}                  |«       Œ t        t%        j€                  |«      |j‚                  |jv                  |j:                  ||jt                  |j…                  «       ||t‡        |dd«      ¬«
      }t‰        ||jŠ                  ¬«      }d d d «       d d d «       d d d «       d d d «       d d d «       S # 1 sw Y   �Œ¦xY w# 1 sw Y   �Œ«xY w# 1 sw Y   �ŒxY w# 1 sw Y   ŒRxY w# 1 sw Y   ŒVxY w# 1 sw Y   ŒZxY w# 1 sw Y   Œ^xY w# 1 sw Y   S xY w)Nr   )ÚCheckFunctionManager)r   )Údynamo_timedÚget_metrics_context)Ú#torch_function_mode_stack_state_mgr)ÚTracingContext)Úset_enable_dynamicÚfullgraph_captureT)Ústrict_autograd_cache)ÚGuardFilterEntryÚguard_entriesr   c                 óx   •— | D �cg c])  }|j                   xs |j                  ‰j                  v  ‘Œ+ c}S c c}w r   )Ú	is_globalÚ
guard_typeÚ%UNSUPPORTED_SERIALIZATION_GUARD_TYPES)r  Úgr  s     €r!   Únew_guard_filter_fnz2aot_compile_fullgraph.<locals>.new_guard_filter_fn[  sL   ø€ ð +ö	ð ð ŸK™Kò ZØ Ÿ|™|Ø3×YÑYð Zòò	ð 	ùò 	s   †.7)r
  Úbypass_autograd_cache_keyÚbundled_autograd_cacheÚ force_non_lazy_backward_loweringÚforce_autograd_cacheÚcompiler_fnrÝ   zCompiled function type z (produced zfrom backend z*) does not implement SerializableCallable.)rÿ   ÚsaveÚstrict_error)Úinlined_sourcesÚcompiler_nameÚunknown)
r   r&   r'   r(   r)   r*   r+   r,   r-   r.   )r½   r¿   )FÚtorch._dynamo.guardsr  rn   r   Útorch._dynamo.utilsr  r  Ú&torch._dynamo.variables.torch_functionr  Útorch._guardsr  r   Útorch._dynamo.eval_framer  rU   Ú
_functorchrò   ró   r   r	  Úgraph_capture_outputÚoutput_graphÚguard_filter_fnÚtorch._dynamo.typesr  r   rü   Úget_traced_fnÚbackend_inputr(   Úgraph_moduleÚ_backend_idr   ÚgraphÚ	fake_modeÚ	shape_envÚtensor_to_contextÚ_guardsÚtracingrþ   rT   Ú_TorchCompileInductorWrapperÚhasattrr  Ú_dynamoÚbackendsÚcommonÚAotAutogradrÝ   r   r   r    r�   r   ÚstackÚenter_contextÚtemp_restore_stackÚbuild_guardsr‹   r'   ÚsetÚtraced_codeÚadd_coder%   Ú_get_signaturer&   Úget_runtime_envr‰   r¼   rÔ   ) rý   rþ   rÿ   r   r  r   r  r  r  r  r   r   Údynamic_ctxr  Úcapture_outputr#  r  r  rÓ   r\   r(  r-   Útracing_contextr)   r  Úbuild_guards_ctxÚcheck_fnr,   r<  rø   Úaot_compiled_fnr  s                                   @r!   Úaot_compile_fullgraphrF  6  s~  ø€ õ :Ý0ßEõõ -à!�L€Dˆ&ä“-€KØÐÝ?á(¨Ó1ˆñ 	Óñu
áÐ(Ó)ñu
ô 	×Ñ×Ñ×%Ñ%¸DÐ%ÓAñu
ð 	ñ	u
ð
 	,ñu
ô '×8Ñ8¸ÀÀfÓMˆØ-×BÑBÐØ#×0Ñ0Ð<Ð<Ð<à×$Ò$Ý<ðÜ'Ð(8Ñ9ðäœ$‘õð %8ˆEÔ!ä×+Ñ+¨EÓ2‰ˆˆAà&×4Ñ4ˆØÐ(Ð(Ð(Ø1>×1IÑ1Iˆ×"Ñ"Ô.Ü(¨×)CÑ)C×)IÑ)IÓJˆà×#Ñ#×-Ñ-Ø#×0Ñ0×:Ñ:ñ;ð	
ð;ñ )¨×)@Ñ)@ÓAˆØ,9×,KÑ,KˆÔ)ä�M‰M×!Ñ! /Ó2ñ	Rä×Ñ×#Ñ#×)Ñ)à-1Ø15Ø.2Ø8<Ø,0ñóñ	Rñ "Ø×*Ñ*¨M×,HÑ,HóˆKô ˜7¤E×$FÑ$FÔGä˜G ]Ô3Ü"Ø×+Ñ+¬U¯]©]×-CÑ-C×-JÑ-J×-VÑ-Vôô
 ˜K¨Ô5Ø#×-Ñ-Ð9ô EÀ[ÓQ�÷?	R÷ 	RôB ˜+Ô';Ô<Ü�w Ô.Ø%×1Ñ1‘à%�ÜØ)¬$¨{Ó*;Ð)<¸KÐHØ! + Ð.XÐYñZóð ô %›;ÐØ.×4Ò4Ø×*Ñ*Ø3×FÑFÓHôð ñ 	Ø+×8Ñ8Ø—‘ 5¨tÀ$ð 9ó ˆH÷	ð
 ×$Ñ$Ð0Ð0Ð0á ´³Ô7ˆØ/×;Ñ;ò 	.ˆKØ× Ñ  Õ-ð	.ô %Ü#×2Ñ2°2Ó6Ø"×0Ñ0Ø!×.Ñ.Ø$×/Ñ/Ø#ØŸ+™+Ø,×<Ñ<Ó>Ø#Ø#Ü  ¨/¸9ÓEô
ˆ	ô .Ø °·±ô
ˆ÷gu
÷ u
÷ u
÷ u
÷ u
ðn Ð÷[	Rñ 	Rú÷ 	Rñ 	Rú÷d	ñ 	ú÷yu
ð u
ú÷ u
ð u
ú÷ u
ð u
ú÷ u
ð u
ú÷ u
ðn Ðús¸   Á	RÁ+RÁ<Q7Á?Q+	ÂD9QÆ;0QÇ+B)P8ÊQÊB	QÌ% QÍC	QÐQ+	ÐQ7ÐRÐ&RÐ8QÐ=QÑQÑ
QÑQÑQÑQ(Ñ$Q+	Ñ+Q4Ñ0Q7Ñ7R Ñ<RÒR	ÒRÒRc                   óL   — e Zd ZU dZee   ed<   eeef   ed<   e	e
e      ed<   y)Ú
ModelInputa%  
    WIP type: represents a single model input
    Which consists of a tuple of arguments and a set of contexts in which to run the model.

    For each ModelInput, we'll compile one full graph of the model, and then use the guards generated
    to dispatch between the compiled graphs.


    r   r   ÚcontextsN)r7   r8   r9   Ú__doc__r—   r	   r<   r‘   r>   ræ   r   rC   r#   r!   rH  rH  Ç  s2   … ñð �‰*ÓØ��c�‰NÓØÐ)¨#Ñ.Ñ/Ô/r#   rH  c                   ó¶   — e Zd ZU ej                  j
                  ed<   ee   ed<   de	de	de	fd„Z
defd„Zedej                  j
                  dedd fd	„«       Zy
)ÚAOTCompiledModelrý   Úcompiled_resultsr   r   r   c                 óÚ   — | j                   D ]:  } |j                  | j                  g|¢­i |¤ŽsŒ$ || j                  g|¢­i |¤Žc S   | j                   d   | j                  g|¢­i |¤ŽS )Nr   )rM  rÌ   rý   )r4   r   r   rÞ   s       r!   rÙ   zAOTCompiledModel.__call__ß  sv   € Ø×+Ñ+ò 	;ˆFØ!ˆv×!Ñ! $§*¡*Ð>¨tÒ>°vÓ>Ù˜dŸj™jÐ:¨4Ò:°6Ñ:Ò:ð	;ð (ˆt×$Ñ$ QÑ'¨¯
©
ÐD°TÒD¸VÑDÐDr#   c                 ó®   — g }| j                   D ]0  }|j                  t        j                  |«      j                  «       Œ2 t        j                  |«      S r   )rM  Úappendr¼   rÝ   r¤   ÚpickleÚdumps)r4   r¦   rÞ   s      r!   rÝ   zAOTCompiledModel.serializeæ  sK   € ØˆØ×+Ñ+ò 	OˆFØ�K‰KÔ+×5Ñ5°fÓ=×MÑMÕNð	Oä�|‰|˜DÓ!Ð!r#   r¦   c                 óX  — ddl m} ddlm}m} t        j                  |«      }g }|D ]`  } | |t        j                  i «      «      «      5   |«       5  |j                  t        j                  |«      «       d d d «       d d d «       Œb  | ||«      S # 1 sw Y   ŒxY w# 1 sw Y   Œ�xY w)Nr   )r  )Úcompile_contextÚCompileContext)r  r  r   rT  rU  rQ  Úloadsr   Úget_compile_idrP  r¼   rù   )	r_   rý   r¦   r  rT  rU  ÚresultsrM  rÞ   s	            r!   rù   zAOTCompiledModel.deserializeì  s¯   € å;ßAä%Ÿ|™|¨DÓ1ˆØÐØò 	QˆFá¡¬}×/KÑ/KÈBÓ/OÓ PÓQñQá#Ó%ñQð !×'Ñ'Ô(;×(GÑ(GÈÓ(OÔP÷	Q÷ Qð Qð	Qñ �5Ð*Ó+Ð+÷Qð Qú÷ Qð Qús$   ÁB Á%BÁ9B ÂBÂB Â B)	N)r7   r8   r9   rU   rV   rW   r<   ræ   r¼   r	   rÙ   r=   rÝ   r•   rù   rC   r#   r!   rL  rL  Ø  sz   … ð �8‰8�?‰?ÓØÐ.Ñ/Ó/ðE˜cð E¨Sð E°Só Eð"˜5ó "ð ð, §¡§¡ð ,°uð ,ÐASò ,ó ñ,r#   rL  Úinputsc                 óÔ   ‡ ‡‡— dt         dt        fˆˆˆ fd„}g }|D ]/  }t        j                  d|«       |j	                   ||«      «       Œ1 t        |«      dkD  sJ ‚t        ‰ |«      S )zi
    Compiles a single nn.Module with any number of inputs, and returns a compiled forward function.
    Úmodel_inputr   c                 óî   •— | j                   | j                  f}‰j                  }t        «       5 }| j                  D ]  }|j                  |«       Œ t        ||‰‰¬«      cd d d «       S # 1 sw Y   y xY w)N)rÿ   r   )r   r   Úforwardr   rI  r8  rF  )r[  rþ   Úorig_forwardr7  Úctxr   rÿ   rý   s        €€€r!   Úcompile_single_graphz0aot_compile_module.<locals>.compile_single_graph  su   ø€ Ø%×*Ñ*¨K×,>Ñ,>Ð?ˆØ—}‘}ˆÜ‹[ð 	˜EØ"×+Ñ+ò )�Ø×#Ñ# CÕ(ð)ä(ØØØØô	÷	÷ 	ò 	ús   °1A+Á+A4zCompiling input %s..r   )rH  r¼   ÚlogÚinforP  rÃ   rL  )rý   rY  rÿ   r   r`  rM  r[  s   ` ``   r!   Úaot_compile_modulerc  ü  sw   ú€ ð¬*ð Ô9L÷ ð ÐØò CˆÜ�‰Ð'¨Ô5Ø×ÑÑ 4°[Ó AÕBðCô ÐÓ  1Ò$Ð$Ð$ä˜EÐ#3Ó4Ð4r#   r   )ErA   rh   r:   r’   Úloggingr­   rQ  r°   r?   Úcollections.abcr   r   Ú
contextlibr   r   r   r   Útypingr	   r
   r   rU   Útorch.fxÚtorch._dynamo.convert_framer   Útorch._dynamo.graph_utilsr   rn   r   Ú r   Úaot_compile_typesr   r   rÿ   r   Úguardsr   rÑ   r   r   Ú	getLoggerr7   ra  r;   r‘   r>   r"   r%   ÚPicklerrE   Ú	Unpicklerrœ   r£   r=   rº   r¼   r—   ÚfxÚGraphModuleræ   ÚTensorrü   rF  rH  rL  rV   rW   rc  rC   r#   r!   ú<module>rt     sK  ðÛ Û Û Û 	Û Û 	Û Û Û ß .ß EÑ EÝ !ß /Ñ /ã Û Ý 7Ý 8Ý ,å ÷õ ñ Ý+ß3ð €g×Ñ˜Ó!€ð%Ø× Ñ ð%Ø),ð%Ø8;ð%à	ˆ#ˆsˆ(�^ó%ð ÷Oð Oó ðOô$X˜Ÿ™ô Xôv'˜&×*Ñ*ô 'ð  ÷ð ó ðð% 3ð %¨eó %ð ÷t*ð t*ó ðt*ðx  ñNØðNà˜%  S ™/¨4°°S°©>Ð9Ñ:ðNð ðNð �u—x‘x×+Ñ+¨T°%·,±,Ñ-?Ð@ÐBVÐVÑWð	Nð
 �D‰[ðNð óNðb ÷0ð 0ó ð0ð  ÷ ,ð  ,ó ð ,ðF5Ø�8‰8�?‰?ð5à�Ñð5ð ð5ð �u—x‘x×+Ñ+¨T°%·,±,Ñ-?Ð@ÐBVÐVÑWð	5ð
 ô5r#   