Ë
    ÄÓ^j8R  ã                  óF  — d dl m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 d dlmZmZmZ ed   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 d dlmZm 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+ erd dl,m-Z-m.Z. d dl/m0Z0 d dlm1Z1  ejd                  e3«      Z4 G d„ de	«      Z5 G d„ de5«      Z6 G d„ de5«      Z7d#d„Z8	 d$	 	 	 	 	 	 	 d%d„Z9ejt                  	 d$	 	 	 	 	 	 	 d&d„«       Z;dddd œ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d'd!„Z<	 	 d(	 	 	 	 	 d)d"„Z=y)*é    )ÚannotationsN)ÚABCÚabstractmethod)ÚAbstractContextManagerÚnullcontext)ÚAnyÚLiteralÚTYPE_CHECKING)Úfrom_example_inputsÚfrom_tracing_contextÚ
from_graph)Ú&BundledAOTAutogradSerializableCallable)Údynamo_timed)Únormalize_path_separator)ÚBoxedDeviceIndex)Útemporary_cache_dir)Ú	BoxedBoolÚ	InputType)ÚFakeTensorMode)ÚShapeEnv)Ú._share_torchbind_and_process_group_on_deepcopyé   )Úconfig)Ú"_functionalize_inplace_collectivesÚ_unbox_process_group_torchbinds)ÚCallableÚSequence)Ú	CacheInfo)ÚGraphModulec                  óv   — e Zd ZdZ	 	 	 	 d	d„Zed
d„«       Zeddœ	 	 	 	 	 dd„«       Zeddœ	 	 	 	 	 dd„«       Z	y)ÚCompiledArtifacta¤  
    CompiledArtifact class represents the inductor cache artifacts that
    can be invoked in order to avoid repeated compilation.

    CompiledArtifact can be obtained by calling standalone_compile(gm, example_inputs)
    to create a fresh CompiledArtifact from a GraphModule and example inputs.

    Later this CompiledArtifact can be saved to disk, either as a binary or unpacked
    into the provided folder via the CompiledArtifact.save function.

    CompiledArtifact.load provides a way to create a CompiledArtifact from the
    binary or unpacked data.

    Finally, the CompiledArtifact can be invoked via the __call__ method
    to execute the cached artifact.
    c                ó    — || _         || _        y ©N©Ú_compiled_fnÚ
_artifacts©ÚselfÚcompiled_fnÚ	artifactss      úm/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_inductor/standalone_compile.pyÚ__init__zCompiledArtifact.__init__>   ó   € ð
 (ˆÔØ#ˆ�ó    c                 ó   — y r#   © ©r(   Úargss     r+   Ú__call__zCompiledArtifact.__call__F   s   € Ø+.r.   Úbinary©Úformatc                ó   — y r#   r0   )r(   Úpathr6   s      r+   ÚsavezCompiledArtifact.saveI   s   € ð r.   c                ó@  — |dk(  rt         j                  | |¬«      S |dk(  sJ ‚t        | d«      5 }ddlm} ddlm} |j                  «       } ||«      }|j                  «       }|t        j                  k(  rZ|j                  «        |«       k(  sJ ‚|j                  «       }|j                  «       sJ ‚t        j                  |«      cd d d «       S |t         j                  k(  r’|j                  «        |«       k(  sJ ‚|j                  «       }	|j                  «       }
|j                  «       sJ ‚t        j                   j#                  |
«       t         j%                  t'        «       |	«      cd d d «       S t)        d	|j+                  d
«      z   «      ‚# 1 sw Y   y xY w)NÚunpacked©r8   r6   r4   Úrbr   ©ÚBytesReaderr   ©Ú	torch_keyzLInvalid header, expected CacheCompiledArtifact or AOTCompiledArtifact, got: úutf-8)ÚCacheCompiledArtifactÚloadÚopenÚ&torch.utils._appending_byte_serializerr?   Ú	codecacherA   ÚreadÚ
read_bytesÚAOTCompiledArtifactÚ
AOT_HEADERÚis_finishedÚdeserializeÚCACHE_HEADERÚread_strÚtorchÚcompilerÚload_cache_artifactsÚ
_load_implr   ÚRuntimeErrorÚdecode)r8   r6   Úfiler?   rA   Úresult_bytesÚreaderÚheaderÚartifactÚkeyÚartifact_bytess              r+   rD   zCompiledArtifact.loadN   s|  € ð �ZÒä(×-Ñ-°4ÀÐ-ÓGÐGà˜Ò!Ð!Ð!Ü�$˜Óð 	 ÝJå,àŸ9™9›;ˆLÙ  Ó.ˆFØ×&Ñ&Ó(ˆFØÔ,×7Ñ7Ò7Ø×(Ñ(Ó*©i«kÒ9Ð9Ð9Ø!×,Ñ,Ó.�Ø×)Ñ)Ô+Ð+Ð+Ü*×6Ñ6°xÓ@÷	ñ 	ð Ô0×=Ñ=Ò=Ø×(Ñ(Ó*©i«kÒ9Ð9Ð9Ø—o‘oÓ'�Ø!'×!2Ñ!2Ó!4�Ø×)Ñ)Ô+Ð+Ð+Ü—‘×3Ñ3°NÔCÜ,×7Ñ7¼»ÀsÓK÷)	ñ 	ô, #ØbØ—m‘m GÓ,ñ-óð ÷-	ð 	ús   °BFÃBFÅ7FÆFN©r)   úCallable[..., Any]r*   ztuple[bytes, CacheInfo] | None©r2   r   Úreturnr   ©r8   Ústrr6   úLiteral['binary', 'unpacked']r`   ÚNone©r8   rb   r6   rc   r`   r!   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r,   r   r3   r9   ÚstaticmethodrD   r0   r.   r+   r!   r!   ,   sŠ   „ ñð"$à'ð$ð 2ó$ð Ú.ó Ø.ààDLñØðØ$Aðà	òó ðð à>Fñ!Øð!Ø;ð!à	ò!ó ñ!r.   r!   c                  ó¼   — e Zd ZdZ ed d«      Z	 	 	 	 dd„Zdd„Zdd„Zddœ	 	 	 	 	 dd„Z	e
	 	 	 	 	 	 dd	„«       Ze
ddœ	 	 	 	 	 dd
„«       Ze
ddœ	 	 	 	 	 dd„«       Zy)rC   zN
    CompiledArtifact that depends on torch.compiler.save_cache_artifacts
    rB   c                ó    — || _         || _        y r#   r$   r'   s      r+   r,   zCacheCompiledArtifact.__init__z   r-   r.   c                ó    —  | j                   |Ž S r#   )r%   r1   s     r+   r3   zCacheCompiledArtifact.__call__‚   s   € Ø ˆt× Ñ  $Ð'Ð'r.   c                ój   — | j                   €y| j                   \  }}t        |j                  «      dk(  S )NFr   )r&   ÚlenÚaot_autograd_artifacts)r(   Ú_Ú
cache_infos      r+   Úis_saveablez!CacheCompiledArtifact.is_saveable…   s4   € Ø�?‰?Ð"ØØŸ™‰ˆˆ:ô �:×4Ñ4Ó5¸Ñ:Ð:r.   r4   r5   c          
     ó´  — t        d«      5  | j                  €t        d«      ‚| j                  \  }}t        |j                  «      dk(  rt        d|› �«      ‚t        |j                  «      dkD  rt        d|› �«      ‚|j                  d   }|dk(  rªt        j                  j                  |«      rJ ‚ddl	m
} dd	lm}  |«       }|j                  t        j                  «       |j                   |«       «       |j!                  |«       |j                  |«       dd
lm}	  |	||j'                  «       «       �np|dk(  sJ ‚t        j                  j)                  |«      r8t        j                  j                  |«      sJ ‚t+        j,                  |d¬«       ddlm}
 t1        |«      5  t2        j4                  j7                  |«      }|€J ‚|j8                  D ]Å  }|
j;                  |«      }t        j                  j)                  |«      sJ ‚t=        t        j>                  |«      «      D ]p  }tA        t        j                  jC                  ||«      d«      5 }tE        jF                  |«      }d d d «       jI                  «       }tJ        jM                  d|«       Œr ŒÇ 	 d d d «       d d d «       y # 1 sw Y   ŒExY w# 1 sw Y   ŒxY w# 1 sw Y   y xY w)NzCompiledArtifact.savezFCompiledArtifact.save failed to save since there's no artifact to saver   a  CompiledArtifact.save failed to save due to no aot_autograd artifacts. This likely means there was something that was not serializable in the graph passed to standalone_compile. This can generally be fixed by ensuring that your model only uses constructs that are serializable. r   zhCompiledArtifact.save failed to save because there was more than one artifact but we only expected one. r4   ©ÚBytesWriterr@   ©Úwrite_atomicr;   T)Úignore_errors)ÚFxGraphCacher=   zOutput code written to: %s)'r   r&   rT   ro   rp   ÚAssertionErrorÚosr8   ÚisdirrF   rv   rG   rA   Úwrite_bytesrC   rN   Ú	write_strÚtorch._inductor.codecacherx   Úto_bytesÚexistsÚshutilÚrmtreerz   r   rP   rQ   rR   Úinductor_artifactsÚ_get_tmp_dir_for_keyÚsortedÚlistdirrE   ÚjoinÚpicklerD   Úwrite_to_diskÚlogÚinfo)r(   r8   r6   r\   rr   r[   rv   rA   Úwriterrx   rz   Úloaded_cache_infoÚsubdirÚfÚgraphÚoutput_files                   r+   r9   zCacheCompiledArtifact.saveŽ   s“  € ô Ð1Ó2ñ =	PØ�‰Ð&Ü"Ø\óð ð *.¯©Ñ&ˆN˜JÜ�:×4Ñ4Ó5¸Ò:Ü"ð\ð "�lð	$óð ô �:×4Ñ4Ó5¸Ò9Ü$ð:Ø:D¸ðGóð ð ×3Ñ3°AÑ6ˆCà˜Ò!äŸ7™7Ÿ=™=¨Ô.Ð.Ð.åNå0á$›�Ø×"Ñ"Ô#8×#EÑ#EÔFØ×"Ñ"¡9£;Ô/Ø× Ñ  Ô%Ø×"Ñ" >Ô2åBá˜T 6§?¡?Ó#4Ö5à Ò+Ð+Ð+Ü—7‘7—>‘> $Ô'ÜŸ7™7Ÿ=™=¨Ô.Ð.Ð.Ü—M‘M $°dÕ;å3ä(¨Ó.ñ Pä(-¯©×(KÑ(KØ&ó)Ð%ð -Ð8Ð8Ð8ð  1×CÑCò P˜Ø!-×!BÑ!BÀ3Ó!G˜Ü!Ÿw™wŸ~™~¨fÔ5Ð5Ð5Ü$*¬2¯:©:°fÓ+=Ó$>ò P˜DÜ!%¤b§g¡g§l¡l°6¸4Ó&@À$Ó!Gð 7È1Ü(.¯©°A« ÷7à*/×*=Ñ*=Ó*?˜KÜŸH™HÐ%AÀ;ÕOñ	PñP÷P÷]=	Pð =	P÷t7ð 7ú÷Pð Pú÷]=	Pð =	Pús=   ŒF KÆ,B0KÉJ6É22KÊ%KÊ6J?Ê;KËK	ËKËKc                ó¸  ‡	— | 5  t        j                  d¬«      5  t        j                  j                   j                  d¬«      5  ddlm} |j                  |ddg i d ¬«      }d d d «       €J ‚|\  }}dd	lm}  |t        d«      t        d«      ¬
«      }t        j                  j                  t        t        «       ¬«      «      }t        j                  j                  |«      5  |j!                  g |j"                  |«      Š	d d d «       d d d «       d d d «       t%        ˆ	fd„d «      S # 1 sw Y   ŒÉxY w# 1 sw Y   Œ4xY w# 1 sw Y   Œ8xY w# 1 sw Y   Œ<xY w)NT)Ú&unsafe_skip_cache_dynamic_shape_guards)Ústrict_autograd_cacher   )ÚAOTAutogradCacheF)ÚlocalÚremoter2   rr   Ú
aot_configr   )Ú_CompileFxKwargs)Ú
cudagraphsÚboxed_forward_device_index©Ú	shape_envc                 ó&   •—  ‰t        | «      «      S r#   )Úlist)r2   r)   s    €r+   ú<lambda>z2CacheCompiledArtifact._load_impl.<locals>.<lambda>õ   s   ø€ ±;¼tÀD»zÓ3J€ r.   )r   ÚpatchrP   Ú
_functorchÚ-torch._functorch._aot_autograd.autograd_cacher—   Ú_lookupÚ
compile_fxr›   r   r   Ú_guardsÚTracingContextr   r   ÚtracingÚwrap_post_compileÚsanitized_aot_configrC   )
Úcache_dir_ctxr[   r—   ÚresultÚentryrq   r›   Ú	fx_configÚcontextr)   s
            @r+   rS   z CacheCompiledArtifact._load_implÐ   sF  ø€ ð
 ñ 	ä�L‰LÀÔEñ 	ô ×!Ñ!×(Ñ(×.Ñ.ÀTÐ.ÓJñ õð *×1Ñ1ØØØ ØØ!Ø#ð 2ó �÷ð Ð%Ð%Ð%Ø‰JˆU�Aå4á(Ü$ UÓ+Ü+;¸AÓ+>ôˆIô
 —m‘m×2Ñ2´>ÌHËJÔ3WÓXˆGÜ—‘×&Ñ& wÓ/ñ Ø#×5Ñ5Ø˜×2Ñ2°Ió�÷÷; 	÷  	ôB %Ó%JÈDÓQÐQ÷;ð ú÷2ð ú÷; 	ð  	ú÷  	ð  	úsS   „E›+EÁD,Á$BEÃ'D8ÄEÄEÄ,D5Ä1EÄ8EÄ=EÅE	Å	EÅEc                óˆ  — t        | «      } t        d«      5  |dk(  rÚt        j                  j	                  | «      rJ ‚t        | d«      5 }|j                  «       }ddd«       ddlm} ddl	m
}  |«      }|j                  «        |«       k(  sJ ‚|j                  «       }|j                  «       }|j                  «       sJ ‚t        j                  j!                  |«       |t#        «       fcddd«       S |d	k(  sJ ‚t        j                  j	                  | «      sJ ‚t        j                  j%                  | d
«      }	t        j                  j	                  |	«      sJ ‚t'        t        j(                  |	«      «      }
t+        |
«      dk(  sJ ‚|
d   }t-        | «      }||fcddd«       S # 1 sw Y   �ŒRxY w# 1 sw Y   yxY w)zU
        Do format specific prep and loads, return a context manager and key
        zCompiledArtifact.loadr4   r=   Nr   r>   r   r@   r;   Úaotautograd)r   r   r|   r8   r}   rE   rH   rF   r?   rG   rA   rI   rO   rL   rP   rQ   rR   r   r‰   r¡   rˆ   ro   r   )r8   r6   rV   r*   r?   rA   rX   r[   r\   Úautograd_cache_dirÚfilesr­   s               r+   Ú_prepare_loadz#CacheCompiledArtifact._prepare_load÷   s‡  € ô (¨Ó-ˆÜÐ1Ó2ñ 	*Ø˜Ò!äŸ7™7Ÿ=™=¨Ô.Ð.Ð.Ü˜$ Ó%ð ,¨Ø $§	¡	£�I÷,åNå0á$ YÓ/�Ø×(Ñ(Ó*©i«kÒ9Ð9Ð9Ø—o‘oÓ'�Ø!'×!2Ñ!2Ó!4�Ø×)Ñ)Ô+Ð+Ð+ä—‘×3Ñ3°NÔCØœK›MÐ)÷#	*ñ 	*ð&  Ò+Ð+Ð+Ü—w‘w—}‘} TÔ*Ð*Ð*Ü%'§W¡W§\¡\°$¸Ó%FÐ"Ü—w‘w—}‘}Ð%7Ô8Ð8Ð8ÜœRŸZ™ZÐ(:Ó;Ó<�Ü˜5“z Q’Ð&�Ø˜A‘h�Ü 3°DÓ 9�Ø˜MÐ)÷7	*ñ 	*÷,ñ ,ú÷		*ð 	*ús+   —3F8Á
F+ÁBF8Ã7B*F8Æ+F5	Æ0F8Æ8Gc                ób   — t         j                  | |¬«      \  }}t         j                  ||«      S )Nr<   )rC   r¶   rS   )r8   r6   r[   r­   s       r+   rD   zCacheCompiledArtifact.load  s9   € ô 3×@Ñ@Ø˜fð Aó 
Ñˆˆ]ô %×/Ñ/°¸sÓCÐCr.   Nr]   r_   )r`   Úboolra   )r­   zAbstractContextManager[Any]r[   rb   r`   r!   )r8   rb   r6   rc   r`   z'tuple[str, AbstractContextManager[Any]]re   )rf   rg   rh   ri   ÚbytesrN   r,   r3   rs   r9   rj   rS   r¶   rD   r0   r.   r+   rC   rC   s   sú   „ ññ Ð0°'Ó:€Lð$à'ð$ð 2ó$ó(ó;ð EMñ@PØð@PØ$Að@Pà	ó@PðD ð$RØ2ð$RØ9<ð$Rà	ò$Ró ð$RðL à>Fñ"*Øð"*Ø;ð"*à	0ò"*ó ð"*ðH à>FñDØðDØ;ðDà	òDó ñDr.   rC   c                  ó¤   — e Zd ZdZ ed d«      Z	 	 dd„Ze	 	 	 	 dd„«       Zdd„Z	ddœ	 	 	 	 	 dd„Z
dd	„Zedd
„«       Zeddœ	 	 	 	 	 dd„«       Zy)rJ   a9  
    Similar to CompiledArtifact, but the object is a single, bundled precompiled function.
    This object is always a serializable callable function.

    This object is essentially a wrapper for BundledAOTAutogradSerializableCallable, which
    is used by torch._dynamo.aot_compile for AOT Precompilation.
    rB   c                ó2   — t        |«      | _        d | _        y r#   )r   Úinner_fnr&   )r(   r)   s     r+   r,   zAOTCompiledArtifact.__init__1  s   € ô ?¸{ÓKˆŒàð 	�r.   c                ó,   — t        | j                  «      S r#   )rJ   r)   )Ú
bundled_fns    r+   Úfrom_bundled_callablez)AOTCompiledArtifact.from_bundled_callable:  s   € ô # :×#9Ñ#9Ó:Ð:r.   c                ó    —  | j                   |Ž S r#   )r¼   r1   s     r+   r3   zAOTCompiledArtifact.__call__@  s   € Øˆt�}‰}˜dÐ#Ð#r.   r4   r5   c               ó0  — |dk(  rt        d«      ‚| j                  «       }ddlm} ddlm}  |«       }|j                  t        j                  «       |j                   |«       «       |j                  |«       ddl	m
}  |||j                  «       «       y )Nr;   ú8AOTCompiledArtifact does not support unpacked format yetr   ru   r   r@   rw   )rT   Ú	serializerF   rv   rG   rA   r~   rJ   rK   r€   rx   r�   )r(   r8   r6   rW   rv   rA   rŽ   rx   s           r+   r9   zAOTCompiledArtifact.saveC  s€   € ð �ZÒÜØJóð ð —~‘~Ó'ˆÝFå(á“ˆØ×ÑÔ.×9Ñ9Ô:Ø×Ñ™9›;Ô'Ø×Ñ˜<Ô(å:ñ 	�T˜6Ÿ?™?Ó,Õ-r.   c                ó@   — t        j                  | j                  «      S r#   )r   Úserialize_compile_artifactsr¼   )r(   s    r+   rÃ   zAOTCompiledArtifact.serializeY  s   € Ü5×QÑQØ�M‰Mó
ð 	
r.   c                óz   — t        j                  | «      }t        |t         «      sJ ‚t        j	                  |«      S r#   )r   Údeserialize_compile_artifactsÚ
isinstancerJ   r¿   )rW   Údeserializeds     r+   rM   zAOTCompiledArtifact.deserialize^  s>   € ô 3×PÑPØóð 	ô
 ˜,Ô(NÔOÐOÐOÜ"×8Ñ8¸ÓFÐFr.   c                óš  — |dk(  rt        d«      ‚t        | d«      5 }ddlm} ddlm} |j                  «       } ||«      }|j                  «       }|t        j                  k(  sJ ‚|j                  «        |«       k(  sJ ‚|j                  «       }|j                  «       sJ ‚t        j                  |«      cd d d «       S # 1 sw Y   y xY w)Nr;   rÂ   r=   r   r>   r   r@   )rT   rE   rF   r?   rG   rA   rH   rI   rJ   rK   rL   rM   )	r8   r6   rV   r?   rA   rW   rX   rY   rZ   s	            r+   rD   zAOTCompiledArtifact.loadh  sÄ   € ð �ZÒÜØJóð ô �$˜Óð 	= ÝJå,àŸ9™9›;ˆLÙ  Ó.ˆFØ×&Ñ&Ó(ˆFØÔ0×;Ñ;Ò;Ð;Ð;Ø×$Ñ$Ó&©)«+Ò5Ð5Ð5Ø×(Ñ(Ó*ˆHØ×%Ñ%Ô'Ð'Ð'Ü&×2Ñ2°8Ó<÷	=÷ 	=ò 	=ús   �BCÃC
N)r)   r^   )r¾   r   r`   rJ   r_   ra   )r`   r¹   )rW   r¹   r`   rJ   re   )rf   rg   rh   ri   r¹   rK   r,   rj   r¿   r3   r9   rÃ   rM   rD   r0   r.   r+   rJ   rJ   &  sº   „ ññ Ð,¨gÓ6€Jð
à'ó
ð ð;Ø:ð;à	ò;ó ð;ó
$ð EMñ.Øð.Ø$Að.à	ó.ó,
ð
 òGó ðGð à>Fñ=Øð=Ø;ð=à	ò=ó ñ=r.   rJ   c                ó   — | dk(  S )Nr   r0   )Údynamic_shapess    r+   Ú_resolve_ignore_shape_envrÍ     s   € ð Ð2Ñ2Ð2r.   c                ó~  — |dk(  r/|�|j                   €t        d«      ‚|S t        t        «       ¬«      S |�t        d«      ‚|dk(  rBt        j
                  j                  j                  «       }|j                  €J ‚|j                  S |dk(  �r!t        t        t        | j                  j                  «      «      «      }|j                  dk(  sJ ‚t        |j                   «      dk(  sJ ‚t#        |j                   d	   t        j$                  j&                  «      r|j                   d	   gn|j                   d	   }|D ]\  }d
|j(                  v sŒ|j(                  d
   }t#        |t        j*                  j,                  j.                  «      sŒP|j                  c S  t        t        «       ¬«      S t        d|› d�«      ‚)Nr   zgstandalone_compile requires `fake_mode` to have a ShapeEnv when `dynamic_shapes="from_example_inputs"`.rž   zastandalone_compile only supports passing `fake_mode` when `dynamic_shapes="from_example_inputs"`.r   r   Úoutputr   r   Úexample_valuezJstandalone_compile got unsupported `dynamic_shapes` value: dynamic_shapes=ú.)rŸ   Ú
ValueErrorr   r   rP   r¨   r©   ÚgetÚ	fake_modeÚnextÚiterÚreversedr’   ÚnodesÚopro   r2   rÈ   ÚfxÚNodeÚmetaÚ_subclassesÚfake_tensorÚ
FakeTensor)ÚgmrÌ   rÔ   r±   Ú	last_noderØ   ÚnodeÚmaybe_tensors           r+   Ú_resolve_fake_moderä   …  s®  € ð
 Ð.Ò.ØÐ Ø×"Ñ"Ð*Ü ðCóð ð ÐÜ¬«
Ô3Ð3Ø	Ð	Üð6ó
ð 	
ð 
Ð1Ò	1ô —-‘-×.Ñ.×2Ñ2Ó4ˆØ× Ñ Ð,Ð,Ð,Ø× Ñ Ð Ø	˜<Ó	'ô
 œœh r§x¡x§~¡~Ó6Ó7Ó8ˆ	Ø�|‰|˜xÒ'Ð'Ð'Ü�9—>‘>Ó" aÒ'Ð'Ð'ô ˜)Ÿ.™.¨Ñ+¬U¯X©X¯]©]Ô;ð �^‰^˜AÑÑà—‘ Ñ"ð 	ð
 ò 	2ˆDØ $§)¡)Ò+Ø#Ÿy™y¨Ñ9�Ü˜l¬E×,=Ñ,=×,IÑ,I×,TÑ,TÕUØ'×1Ñ1Ò1ð		2ô ¬«
Ô3Ð3äØXÐYgÐXhÐhiÐjó
ð 	
r.   c           	   #  ó  K  — ddl m} t        | ||«      }t        j                  j                  |«      }t        j                  j                  |«      5  |j                  «       5  t        j                  dd«      5  t        j                  j                  j                  |ddœ«      5  d –— d d d «       d d d «       d d d «       d d d «       y # 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   y xY w­w)Nr   )ÚCacheArtifactManagerztriton.autotune_at_compile_timeT)Úbundled_autograd_cacheÚ force_non_lazy_backward_lowering)Útorch.compiler._cacheræ   rä   rP   r¨   r©   rª   Úwith_fresh_cacher   r£   r¤   )rà   rÌ   ÚaotrÔ   ræ   Úresolved_fake_modeÚtracing_contexts          r+   Ú_standalone_contextrî   ¿  sß   è ø€ õ ;ä+¨B°À	ÓJÐÜ—m‘m×2Ñ2Ð3EÓF€Oä�‰×Ñ˜oÓ.ñà×-Ñ-Ó/ñô 	�‰Ð6¸Ó=ñô 	×Ñ×Ñ×%Ñ%à*-ð
 59ñó		
ñ	ó 	÷÷ ÷ ÷ ÷ ñ ú÷ ð ú÷ ð ú÷ ð üsf   ‚AC?ÁC3Á%C'Á<-CÂ)C	Â.CÂ6C'Â>C3Ã	C?ÃCÃCÃC$Ã C'Ã'C0	Ã,C3Ã3C<Ã8C?F)rë   Údonate_graph_modulerÔ   c               ó  — ddl m } t        |«      }t        | |||«      5  |s(t        «       5  t	        j
                  | «      } ddd«       t        | «      } t        | «      }  || |fd|i|¤Ž}	t        |	«      sJ ‚|r+t        |	d«      st        d«      ‚t        |	«      cddd«       S t        j                  j                  «       }
|
€t        j!                  d«       ddd«       t#        	
«      S # 1 sw Y   Œ®xY w# 1 sw Y   Œ!xY w)z=
    Implementation of torch.inductor.standalone_compile
    r   ©r§   NÚignore_shape_envrÃ   z<Compiled function should have serialize method when aot=Truez‚standalone_compile artifact generation failed, cannot save. Run with TORCH_LOGS=+torch._inductor.codecache to identify the problem)r§   rÍ   rî   r   ÚcopyÚdeepcopyr   r   ÚcallableÚhasattrrT   rJ   rP   rQ   Úsave_cache_artifactsrŒ   ÚwarningrC   )rà   Úexample_inputsrÌ   Úoptionsrë   rï   rÔ   r§   rò   r)   r*   s              r+   Ústandalone_compilerû   Ü  s  € õ 'ä0°Ó@ÐÜ	˜R °°iÓ	@ñ !ñ #Ü?ÓAñ 'Ü—]‘] 2Ó&�÷'ô 0°Ó3ˆÜ,¨RÓ0ˆÙ Ø�ñ
Ø1Að
ØELñ
ˆô ˜Ô$Ð$Ð$ÙÜ˜;¨Ô4Ü"ØRóð ô ' {Ó3÷7!ñ !ô8 —N‘N×7Ñ7Ó9ˆ	ØÐÜ�K‰KðYô÷=!ôF ! ¨iÓ8Ð8÷7'ð 'ú÷!ð !ús)    C<­C0ÁAC<Â'5C<Ã0C9	Ã5C<Ã<Dc                ó”   — ddl m} t        |«      }t        | |||«      5  |j	                  | ||¬«      cd d d «       S # 1 sw Y   y xY w)Nr   rñ   )rò   )Ú r§   rÍ   rî   Úautograd_cache_key)r’   rù   rÌ   rë   rÔ   r§   rò   s          r+   rþ   rþ     sQ   € õ ä0°Ó@ÐÜ	˜U N°C¸Ó	Cñ 
Ø×,Ñ,ØØØ-ð -ó 
÷
÷ 
ò 
ús	    >¾A)rÌ   ÚDynamicShapesTyper#   )rà   r   rÌ   rÿ   rÔ   úFakeTensorMode | Noner`   r   )rà   r   rÌ   rÿ   rë   r¸   rÔ   r   )rà   r   rù   zSequence[InputType]rÌ   rÿ   rú   r   rë   r¸   rï   r¸   rÔ   r   r`   r!   )FN)rÌ   rÿ   rë   r¸   rÔ   r   )>Ú
__future__r   Ú
contextlibró   Úloggingr|   rŠ   rƒ   Úabcr   r   r   r   Útypingr   r	   r
   rÿ   Útorch.fxrP   Útorch._dynamo.aot_compile_typesr   Útorch._dynamo.utilsr   Útorch._inductor.cpp_builderr   Útorch._inductor.cudagraph_utilsr   Ú'torch._inductor.runtime.cache_dir_utilsr   Útorch._inductor.utilsr   r   Útorch._subclassesr   Ú%torch.fx.experimental.symbolic_shapesr   Útorch.fx.graph_moduler   rý   r   Ú_functionalize_collectivesr   r   Úcollections.abcr   r   ré   r   r   Ú	getLoggerrf   rŒ   r!   rC   rJ   rÍ   rä   Úcontextmanagerrî   rû   rþ   r0   r.   r+   ú<module>r     s­  ðÝ "ã Û Û Û 	Û Û ß #ß :ß .Ñ .ð ÐWÑXÐ ã Ý RÝ ,Ý @Ý <Ý Gß 6Ý ,Ý :Ý På ÷ñ ß2å/Ý$ð €g×Ñ˜Ó!€ôD�sô DôNpDÐ,ô pDôfV=Ð*ô V=ór3ð (,ð7
Øð7
à%ð7
ð %ð7
ð ó	7
ðt ×Ñð
 (,ð	Øðà%ðð 
ðð %ò	ó ððD Ø %Ø'+ñ39Øð39à'ð39ð &ð	39ð
 ð39ð 
ð39ð ð39ð %ð39ð ó39ðt Ø'+ð
ð &ð
ð 
ð	
ð
 %ô
r.   