§
    I�’jYT  ã                  ó  — 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j2        e3¦  «        Z4 G d„ de	¦  «        Z5 G d„ de5¦  «        Z6 G d„ de5¦  «        Z7d2d„Z8	 d3d4d%„Z9ej:        	 d3d5d(„¦   «         Z;d)d)dd*œd6d0„Z<	 	 d7d8d1„Z=dS )9é    )Ú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                  ón   — 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	dS )Ú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.
    Úcompiled_fnúCallable[..., Any]Ú	artifactsútuple[bytes, CacheInfo] | Nonec                ó"   — || _         || _        d S ©N©Ú_compiled_fnÚ
_artifacts©Úselfr"   r$   s      úPC:\Projects\DSCons\.venv\Lib\site-packages\torch\_inductor\standalone_compile.pyÚ__init__zCompiledArtifact.__init__>   ó   € ð
 (ˆÔØ#ˆŒˆˆó    Úargsr   Úreturnc                ó   — d S r'   © ©r,   r1   s     r-   Ú__call__zCompiledArtifact.__call__F   s   € Ø+.¨3r0   Úbinary©ÚformatÚpathÚstrr9   úLiteral['binary', 'unpacked']ÚNonec               ó   — d S r'   r4   )r,   r:   r9   s      r-   ÚsavezCompiledArtifact.saveI   s	   € ð ˆsr0   c                óâ  — |dk    rt                                | |¬¦  «        S |dk    sJ ‚t          | d¦  «        5 }ddlm} ddlm} |                     ¦   «         } ||¦  «        }|                     ¦   «         }|t          j
        k    rr|                     ¦   «          |¦   «         k    sJ ‚|                     ¦   «         }|                     ¦   «         sJ ‚t                               |¦  «        cd d d ¦  «         S |t           j        k    r²|                     ¦   «          |¦   «         k    sJ ‚|                     ¦   «         }	|                     ¦   «         }
|                     ¦   «         sJ ‚t          j                             |
¦  «         t                                t'          ¦   «         |	¦  «        cd d d ¦  «         S t)          d	|                     d
¦  «        z   ¦  «        ‚# 1 swxY w Y   d S )NÚunpacked©r:   r9   r7   Úrbr   ©ÚBytesReaderr   ©Ú	torch_keyzLInvalid header, expected CacheCompiledArtifact or AOTCompiledArtifact, got: úutf-8)ÚCacheCompiledArtifactÚloadÚopenÚ&torch.utils._appending_byte_serializerrE   Ú	codecacherG   ÚreadÚ
read_bytesÚAOTCompiledArtifactÚ
AOT_HEADERÚis_finishedÚdeserializeÚCACHE_HEADERÚread_strÚtorchÚcompilerÚload_cache_artifactsÚ
_load_implr   ÚRuntimeErrorÚdecode)r:   r9   ÚfilerE   rG   Úresult_bytesÚreaderÚheaderÚartifactÚkeyÚartifact_bytess              r-   rJ   zCompiledArtifact.loadN   sS  € ð �ZÒÐå(×-Ò-°4ÀÐ-ÑGÔGÐGà˜Ò!Ð!Ð!Ð!Ý�$˜ÑÔð 	 ØJÐJÐJÐJÐJÐJà,Ð,Ð,Ð,Ð,Ð,àŸ9š9™;œ;ˆLØ �[ Ñ.Ô.ˆFØ×&Ò&Ñ(Ô(ˆFØÕ,Ô7Ò7Ð7Ø×(Ò(Ñ*Ô*¨i¨i©k¬kÒ9Ð9Ð9Ð9Ø!×,Ò,Ñ.Ô.�Ø×)Ò)Ñ+Ô+Ð+Ð+Ð+Ý*×6Ò6°xÑ@Ô@ð	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð Õ0Ô=Ò=Ð=Ø×(Ò(Ñ*Ô*¨i¨i©k¬kÒ9Ð9Ð9Ð9Ø—o’oÑ'Ô'�Ø!'×!2Ò!2Ñ!4Ô!4�Ø×)Ò)Ñ+Ô+Ð+Ð+Ð+Ý”×3Ò3°NÑCÔCÐCÝ,×7Ò7½¹¼ÀsÑKÔKð)	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	õ, #ØbØ—m’m GÑ,Ô,ñ-ñô ð ð-	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   »B5G$Ã=B5G$Æ?%G$Ç$G(Ç+G(N©r"   r#   r$   r%   ©r1   r   r2   r   ©r:   r;   r9   r<   r2   r=   ©r:   r;   r9   r<   r2   r!   )
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r.   r   r6   r?   ÚstaticmethodrJ   r4   r0   r-   r!   r!   ,   s¢   € € € € € ðð ð"$ð $ð $ð $ð Ø.Ð.Ð.ñ „^Ø.ààDLðð ð ð ð ñ „^ðð à>Fð!ð !ð !ð !ð !ñ „\ð!ð !ð !r0   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dS )&rI   zN
    CompiledArtifact that depends on torch.compiler.save_cache_artifacts
    rH   r"   r#   r$   r%   c                ó"   — || _         || _        d S r'   r(   r+   s      r-   r.   zCacheCompiledArtifact.__init__z   r/   r0   r1   r   r2   c                ó   —  | j         |Ž S r'   )r)   r5   s     r-   r6   zCacheCompiledArtifact.__call__‚   s   € Ø ˆtÔ  $Ð'Ð'r0   Úboolc                óX   — | j         €dS | j         \  }}t          |j        ¦  «        dk    S )NFr   )r*   ÚlenÚaot_autograd_artifacts)r,   Ú_Ú
cache_infos      r-   Úis_saveablez!CacheCompiledArtifact.is_saveable…   s2   € ØŒ?Ð"Ø�5Øœ‰ˆˆ:õ �:Ô4Ñ5Ô5¸Ò:Ð:r0   r7   r8   r:   r;   r9   r<   r=   c          
     ó"  — t          d¦  «        5  | j        €t          d¦  «        ‚| j        \  }}t          |j        ¦  «        dk    rt          d|› �¦  «        ‚t          |j        ¦  «        dk    rt          d|› �¦  «        ‚|j        d         }|dk    rÃt          j                             |¦  «        rJ ‚ddl	m
} dd	lm}  |¦   «         }|                     t          j        ¦  «         |                      |¦   «         ¦  «         |                     |¦  «         |                     |¦  «         dd
lm}	  |	||                     ¦   «         ¦  «         �nœ|dk    sJ ‚t          j                             |¦  «        r7t          j                             |¦  «        sJ ‚t+          j        |d¬¦  «         ddlm}
 t1          |¦  «        5  t2          j                             |¦  «        }|€J ‚|j        D ]å}|
                     |¦  «        }t          j                             |¦  «        sJ ‚t=          t          j        |¦  «        ¦  «        D ]‹}tA          t          j         !                    ||¦  «        d¦  «        5 }tE          j#        |¦  «        }d d d ¦  «         n# 1 swxY w Y   | $                    ¦   «         }tJ           &                    d|¦  «         ŒŒŒæ	 d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )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. r7   ©ÚBytesWriterrF   ©Úwrite_atomicrA   T)Úignore_errors)ÚFxGraphCacherC   zOutput code written to: %s)'r   r*   rZ   rq   rr   ÚAssertionErrorÚosr:   ÚisdirrL   rx   rM   rG   Úwrite_bytesrI   rT   Ú	write_strÚtorch._inductor.codecacherz   Úto_bytesÚexistsÚshutilÚrmtreer|   r   rV   rW   rX   Úinductor_artifactsÚ_get_tmp_dir_for_keyÚsortedÚlistdirrK   ÚjoinÚpicklerJ   Úwrite_to_diskÚlogÚinfo)r,   r:   r9   rb   rt   ra   rx   rG   Úwriterrz   r|   Úloaded_cache_infoÚsubdirÚfÚgraphÚoutput_files                   r-   r?   zCacheCompiledArtifact.saveŽ   s?  € õ Ð1Ñ2Ô2ð =	Pð =	PØŒÐ&Ý"Ø\ñô ð ð *.¬Ñ&ˆN˜JÝ�:Ô4Ñ5Ô5¸Ò:Ð:Ý"ð$ð "ð	$ð $ñô ð õ �:Ô4Ñ5Ô5¸Ò9Ð9Ý$ðGØ:DðGð Gñô ð ð Ô3°AÔ6ˆCà˜Ò!Ð!åœ7Ÿ=š=¨Ñ.Ô.Ð.Ð.Ð.àNÐNÐNÐNÐNÐNà0Ð0Ð0Ð0Ð0Ð0à$˜™œ�Ø×"Ò"Õ#8Ô#EÑFÔFÐFØ×"Ò" 9 9¡;¤;Ñ/Ô/Ð/Ø× Ò  Ñ%Ô%Ð%Ø×"Ò" >Ñ2Ô2Ð2àBÐBÐBÐBÐBÐBà�˜T 6§?¢?Ñ#4Ô#4Ñ5Ô5Ð5Ñ5à Ò+Ð+Ð+Ð+Ý”7—>’> $Ñ'Ô'ð <Ýœ7Ÿ=š=¨Ñ.Ô.Ð.Ð.Ð.Ý”M $°dÐ;Ñ;Ô;Ð;à3Ð3Ð3Ð3Ð3Ð3å(¨Ñ.Ô.ð Pð På(-¬×(KÒ(KØ&ñ)ô )Ð%ð -Ð8Ð8Ð8ð  1ÔCð Pð P˜Ø!-×!BÒ!BÀ3Ñ!GÔ!G˜Ý!œwŸ~š~¨fÑ5Ô5Ð5Ð5Ð5Ý$*­2¬:°fÑ+=Ô+=Ñ$>Ô$>ð Pð P˜DÝ!%¥b¤g§l¢l°6¸4Ñ&@Ô&@À$Ñ!GÔ!Gð 7È1Ý(.¬°A©¬ ð7ð 7ð 7ñ 7ô 7ð 7ð 7ð 7ð 7ð 7ð 7øøøð 7ð 7ð 7ð 7à*/×*=Ò*=Ñ*?Ô*?˜KÝŸHšHÐ%AÀ;ÑOÔOÐOÐOð	PðPðPð Pð Pñ Pô Pð Pð Pð Pð Pð Pð Pøøøð Pð Pð Pð Pð]=	Pð =	Pð =	Pñ =	Pô =	Pð =	Pð =	Pð =	Pð =	Pð =	Pð =	Pð =	Pøøøð =	Pð =	Pð =	Pð =	Pð =	Pð =	Ps[   �F>LÇB4K,ÊJ#ÊK,Ê#J'Ê'K,Ê*J'Ê+4K,Ë LË,K0	Ë0LË3K0	Ë4LÌLÌLÚcache_dir_ctxúAbstractContextManager[Any]ra   r!   c                óø  ‡	— | 5  t          j        d¬¦  «        5  t          j        j                              d¬¦  «        5  ddlm} |                     |ddg i d ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   |€J ‚|\  }}dd	lm}  |t          d¦  «        t          d¦  «        ¬
¦  «        }t          j                             t          t          ¦   «         ¬¦  «        ¦  «        }t          j                             |¦  «        5  |                     g |j        |¦  «        Š	d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t%          ˆ	fd„d ¦  «        S )NT)Ú&unsafe_skip_cache_dynamic_shape_guards)Ústrict_autograd_cacher   )ÚAOTAutogradCacheF)ÚlocalÚremoter1   rt   Ú
aot_configr   )Ú_CompileFxKwargs)Ú
cudagraphsÚboxed_forward_device_index©Ú	shape_envc                 ó4   •—  ‰t          | ¦  «        ¦  «        S r'   )Úlist)r1   r"   s    €r-   ú<lambda>z2CacheCompiledArtifact._load_impl.<locals>.<lambda>õ   s   ø€ °;°;½tÀD¹z¼zÑ3JÔ3J€ r0   )r   ÚpatchrV   Ú
_functorchÚ-torch._functorch._aot_autograd.autograd_cacher›   Ú_lookupÚ
compile_fxrŸ   r   r   Ú_guardsÚTracingContextr   r   ÚtracingÚwrap_post_compileÚsanitized_aot_configrI   )
r–   ra   r›   ÚresultÚentryrs   rŸ   Ú	fx_configÚcontextr"   s
            @r-   rY   z CacheCompiledArtifact._load_implÐ   s«  ø€ ð
 ð 	ð  	åŒLÀÐEÑEÔEð 	ð  	õ Ô!Ô(×.Ò.ÀTÐ.ÑJÔJð ð ðð ð ð ð ð ð *×1Ò1ØØØ ØØ!Ø#ð 2ñ ô �ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð Ð%Ð%Ð%Ø‰JˆU�Aà4Ð4Ð4Ð4Ð4Ð4à(Ð(Ý$ UÑ+Ô+Ý+;¸AÑ+>Ô+>ðñ ô ˆIõ
 ”m×2Ò2µ>ÍHÉJÌJÐ3WÑ3WÔ3WÑXÔXˆGÝ”×&Ò& wÑ/Ô/ð ð Ø#×5Ò5Ø˜Ô2°Iñô �ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð; 	ð  	ð  	ñ  	ô  	ð  	ð  	ð  	ð  	ð  	ð  	øøøð  	ð  	ð  	ð  	ð  	ð  	ð  	ñ  	ô  	ð  	ð  	ð  	ð  	ð  	ð  	øøøð  	ð  	ð  	ð  	õB %Ð%JÐ%JÐ%JÐ%JÈDÑQÔQÐQs}   „Eš&EÁ "A.Á"EÁ.A2Á2EÁ5A2Á6BEÄD0Ä$EÄ0D4Ä4EÄ7D4Ä8EÄ;EÅE	ÅEÅE	ÅEÅE"Å%E"ú'tuple[str, AbstractContextManager[Any]]c                ó  — t          | ¦  «        } t          d¦  «        5  |dk    �rt          j                             | ¦  «        rJ ‚t          | d¦  «        5 }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   ddlm} ddl	m
}  ||¦  «        }|                     ¦   «          |¦   «         k    sJ ‚|                     ¦   «         }|                     ¦   «         }|                     ¦   «         sJ ‚t          j                             |¦  «         |t#          ¦   «         fcddd¦  «         S |d	k    sJ ‚t          j                             | ¦  «        sJ ‚t          j                             | d
¦  «        }	t          j                             |	¦  «        sJ ‚t'          t          j        |	¦  «        ¦  «        }
t+          |
¦  «        dk    sJ ‚|
d         }t-          | ¦  «        }||fcddd¦  «         S # 1 swxY w Y   dS )zU
        Do format specific prep and loads, return a context manager and key
        zCompiledArtifact.loadr7   rC   Nr   rD   r   rF   rA   Úaotautograd)r   r   r~   r:   r   rK   rN   rL   rE   rM   rG   rO   rU   rR   rV   rW   rX   r   r‹   r¥   rŠ   rq   r   )r:   r9   r\   r$   rE   rG   r^   ra   rb   Úautograd_cache_dirÚfilesr–   s               r-   Ú_prepare_loadz#CacheCompiledArtifact._prepare_load÷   s—  € õ (¨Ñ-Ô-ˆÝÐ1Ñ2Ô2ð 	*ð 	*Ø˜Ò!Ñ!åœ7Ÿ=š=¨Ñ.Ô.Ð.Ð.Ð.Ý˜$ Ñ%Ô%ð ,¨Ø $§	¢	¡¤�Ið,ð ,ð ,ñ ,ô ,ð ,ð ,ð ,ð ,ð ,ð ,øøøð ,ð ,ð ,ð ,àNÐNÐNÐNÐNÐNà0Ð0Ð0Ð0Ð0Ð0à$˜ YÑ/Ô/�Ø×(Ò(Ñ*Ô*¨i¨i©k¬kÒ9Ð9Ð9Ð9Ø—o’oÑ'Ô'�Ø!'×!2Ò!2Ñ!4Ô!4�Ø×)Ò)Ñ+Ô+Ð+Ð+Ð+å”×3Ò3°NÑCÔCÐCØ�K™MœMÐ)ð#	*ð 	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð&  Ò+Ð+Ð+Ð+Ý”w—}’} TÑ*Ô*Ð*Ð*Ð*Ý%'¤W§\¢\°$¸Ñ%FÔ%FÐ"Ý”w—}’}Ð%7Ñ8Ô8Ð8Ð8Ð8Ý�RœZÐ(:Ñ;Ô;Ñ<Ô<�Ý˜5‘z”z Q’���Ø˜A”h�Ý 3°DÑ 9Ô 9�Ø˜MÐ)ð7	*ð 	*ð 	*ð 	*ñ 	*ô 	*ð 	*ð 	*ð 	*ð 	*ð 	*ð 	*øøøð 	*ð 	*ð 	*ð 	*ð 	*ð 	*s=   Ÿ9G=ÁA9Á-G=Á9A=	Á=G=Â A=	ÂB(G=Ä6B:G=Ç=HÈHc                óv   — t                                | |¬¦  «        \  }}t                                ||¦  «        S )NrB   )rI   rº   rY   )r:   r9   ra   r–   s       r-   rJ   zCacheCompiledArtifact.load  sA   € õ 3×@Ò@Ø˜fð Añ 
ô 
Ñˆˆ]õ %×/Ò/°¸sÑCÔCÐCr0   Nrc   rd   )r2   ro   re   )r–   r—   ra   r;   r2   r!   )r:   r;   r9   r<   r2   rµ   rf   )rg   rh   ri   rj   ÚbytesrT   r.   r6   ru   r?   rk   rY   rº   rJ   r4   r0   r-   rI   rI   s   s(  € € € € € ðð ð �5Ð0°'Ñ:Ô:€Lð$ð $ð $ð $ð(ð (ð (ð (ð;ð ;ð ;ð ;ð EMð@Pð @Pð @Pð @Pð @Pð @PðD ð$Rð $Rð $Rñ „\ð$RðL à>Fð"*ð "*ð "*ð "*ð "*ñ „\ð"*ðH à>FðDð Dð Dð Dð Dñ „\ðDð Dð Dr0   rI   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dS )#rP   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.
    rH   r"   r#   c                ó<   — t          |¦  «        | _        d | _        d S r'   )r   Úinner_fnr*   )r,   r"   s     r-   r.   zAOTCompiledArtifact.__init__1  s!   € õ ?¸{ÑKÔKˆŒàð 	Œˆˆr0   Ú
bundled_fnr   r2   c                ó*   — t          | j        ¦  «        S r'   )rP   r"   )rÀ   s    r-   Úfrom_bundled_callablez)AOTCompiledArtifact.from_bundled_callable:  s   € õ # :Ô#9Ñ:Ô:Ð:r0   r1   r   c                ó   —  | j         |Ž S r'   )r¿   r5   s     r-   r6   zAOTCompiledArtifact.__call__@  s   € ØˆtŒ}˜dÐ#Ð#r0   r7   r8   r:   r;   r9   r<   r=   c               ón  — |dk    rt          d¦  «        ‚|                      ¦   «         }ddlm} ddlm}  |¦   «         }|                     t          j        ¦  «         |                      |¦   «         ¦  «         |                     |¦  «         ddl	m
}  |||                     ¦   «         ¦  «         d S )NrA   ú8AOTCompiledArtifact does not support unpacked format yetr   rw   r   rF   ry   )rZ   Ú	serializerL   rx   rM   rG   r€   rP   rQ   r‚   rz   rƒ   )r,   r:   r9   r]   rx   rG   r�   rz   s           r-   r?   zAOTCompiledArtifact.saveC  sà   € ð �ZÒÐÝØJñô ð ð —~’~Ñ'Ô'ˆØFÐFÐFÐFÐFÐFà(Ð(Ð(Ð(Ð(Ð(à�‘”ˆØ×ÒÕ.Ô9Ñ:Ô:Ð:Ø×Ò˜9˜9™;œ;Ñ'Ô'Ð'Ø×Ò˜<Ñ(Ô(Ð(à:Ð:Ð:Ð:Ð:Ð:ð 	ˆ�T˜6Ÿ?š?Ñ,Ô,Ñ-Ô-Ð-Ð-Ð-r0   r¼   c                ó4   — t          j        | j        ¦  «        S r'   )r   Úserialize_compile_artifactsr¿   )r,   s    r-   rÆ   zAOTCompiledArtifact.serializeY  s   € Ý5ÔQØŒMñ
ô 
ð 	
r0   r]   c                óŒ   — t          j        | ¦  «        }t          |t           ¦  «        sJ ‚t                               |¦  «        S r'   )r   Údeserialize_compile_artifactsÚ
isinstancerP   rÂ   )r]   Údeserializeds     r-   rS   zAOTCompiledArtifact.deserialize^  sI   € õ 3ÔPØñô ð 	õ
 ˜,Õ(NÑOÔOÐOÐOÐOÝ"×8Ò8¸ÑFÔFÐFr0   r!   c                óî  — |dk    rt          d¦  «        ‚t          | d¦  «        5 }ddlm} ddlm} |                     ¦   «         } ||¦  «        }|                     ¦   «         }|t          j	        k    sJ ‚|                     ¦   «          |¦   «         k    sJ ‚|                     ¦   «         }| 
                    ¦   «         sJ ‚t                               |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )NrA   rÅ   rC   r   rD   r   rF   )rZ   rK   rL   rE   rM   rG   rN   rO   rP   rQ   rR   rS   )	r:   r9   r\   rE   rG   r]   r^   r_   r`   s	            r-   rJ   zAOTCompiledArtifact.loadh  sZ  € ð �ZÒÐÝØJñô ð õ �$˜ÑÔð 	= ØJÐJÐJÐJÐJÐJà,Ð,Ð,Ð,Ð,Ð,àŸ9š9™;œ;ˆLØ �[ Ñ.Ô.ˆFØ×&Ò&Ñ(Ô(ˆFØÕ0Ô;Ò;Ð;Ð;Ð;Ø×$Ò$Ñ&Ô&¨)¨)©+¬+Ò5Ð5Ð5Ð5Ø×(Ò(Ñ*Ô*ˆHØ×%Ò%Ñ'Ô'Ð'Ð'Ð'Ý&×2Ò2°8Ñ<Ô<ð	=ð 	=ð 	=ð 	=ñ 	=ô 	=ð 	=ð 	=ð 	=ð 	=ð 	=ð 	=øøøð 	=ð 	=ð 	=ð 	=ð 	=ð 	=s   ¦B7C*Ã*C.Ã1C.N)r"   r#   )rÀ   r   r2   rP   rd   re   )r2   r¼   )r]   r¼   r2   rP   rf   )rg   rh   ri   rj   r¼   rQ   r.   rk   rÂ   r6   r?   rÆ   rS   rJ   r4   r0   r-   rP   rP   &  s  € € € € € ðð ð �Ð,¨gÑ6Ô6€Jð
ð 
ð 
ð 
ð ð;ð ;ð ;ñ „\ð;ð
$ð $ð $ð $ð EMð.ð .ð .ð .ð .ð .ð,
ð 
ð 
ð 
ð
 ðGð Gð Gñ „\ðGð à>Fð=ð =ð =ð =ð =ñ „\ð=ð =ð =r0   rP   Údynamic_shapesÚDynamicShapesTypec                ó   — | dk    S )Nr   r4   )rÎ   s    r-   Ú_resolve_ignore_shape_envrÑ     s   € ð Ð2Ò2Ð2r0   Úgmr   Ú	fake_modeúFakeTensorMode | Noner2   r   c                óH  — |dk    r6|�|j         €t          d¦  «        ‚|S t          t          ¦   «         ¬¦  «        S |�t          d¦  «        ‚|dk    r3t          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 ]E}d
|j        v r:|j        d
         }t#          |t          j        j        j        ¦  «        r	|j        c S ŒFt          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   rV   r¬   r­   ÚgetrÓ   ÚnextÚiterÚreversedr”   ÚnodesÚoprq   r1   rË   ÚfxÚNodeÚmetaÚ_subclassesÚfake_tensorÚ
FakeTensor)rÒ   rÎ   rÓ   r´   Ú	last_noderÞ   ÚnodeÚmaybe_tensors           r-   Ú_resolve_fake_moderé   …  sÓ  € ð
 Ð.Ò.Ð.ØÐ ØÔ"Ð*Ý ðCñô ð ð ÐÝ­©
¬
Ð3Ñ3Ô3Ð3Ø	Ð	Ýð6ñ
ô 
ð 	
ð 
Ð1Ò	1Ð	1õ ”-Ô.×2Ò2Ñ4Ô4ˆØÔ Ð,Ð,Ð,ØÔ Ð Ø	˜<Ò	'Ñ	'õ
 ��h r¤x¤~Ñ6Ô6Ñ7Ô7Ñ8Ô8ˆ	ØŒ|˜xÒ'Ð'Ð'Ð'Ý�9”>Ñ"Ô" aÒ'Ð'Ð'Ð'õ ˜)œ.¨Ô+­U¬X¬]Ñ;Ô;ð#ˆYŒ^˜AÔÐÐà” Ô"ð 	ð
 ð 	2ð 	2ˆDØ $¤)Ð+Ð+Ø#œy¨Ô9�Ý˜l­EÔ,=Ô,IÔ,TÑUÔUð 2Ø'Ô1Ð1Ð1Ð1øå­©
¬
Ð3Ñ3Ô3Ð3åØjÐYgÐjÐjÐjñ
ô 
ð 	
r0   Úaotro   c           	   #  ó  K  — ddl m} t          | ||¦  «        }t          j                             |¦  «        }t          j                             |¦  «        5  |                     ¦   «         5  t          j	        dd¦  «        5  t          j
        j         	                    |ddœ¦  «        5  d V — d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nr   )ÚCacheArtifactManagerztriton.autotune_at_compile_timeT)Úbundled_autograd_cacheÚ force_non_lazy_backward_lowering)Útorch.compiler._cacherì   ré   rV   r¬   r­   r®   Úwith_fresh_cacher   r§   r¨   )rÒ   rÎ   rê   rÓ   rì   Úresolved_fake_modeÚtracing_contexts          r-   Ú_standalone_contextró   ¿  s  è è € ð ;Ð:Ð:Ð:Ð:Ð:å+¨B°À	ÑJÔJÐÝ”m×2Ò2Ð3EÑFÔF€OåŒ×Ò˜oÑ.Ô.ðð à×-Ò-Ñ/Ô/ðð õ 	ŒÐ6¸Ñ=Ô=ðð õ 	ÔÔ×%Ò%à*-ð
 59ðð ñ		
ô 		
ð	ð ð 	ˆˆˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s~   ÁDÁ-C*Â(CÂ+B<	Â0CÂ<C Ã CÃC ÃCÃC*ÃCÃC*ÃCÃC*ÃDÃ*C.	Ã.DÃ1C.	Ã2DÄDÄ	DF)rê   Údonate_graph_modulerÓ   Úexample_inputsúSequence[InputType]Úoptionsr   rô   c               óz  — ddl m } t          |¦  «        }t          | |||¦  «        5  |s:t          ¦   «         5  t	          j        | ¦  «        } ddd¦  «         n# 1 swxY w Y   t          | ¦  «        } t          | ¦  «        }  || |fd|i|¤Ž}	t          |	¦  «        sJ ‚|r:t          |	d¦  «        st          d¦  «        ‚t          |	¦  «        cddd¦  «         S t          j                             ¦   «         }
|
€t                               d¦  «         ddd¦  «         n# 1 swxY w Y   t#          |	|
¦  «        S )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ÚhasattrrZ   rP   rV   rW   Úsave_cache_artifactsrŽ   ÚwarningrI   )rÒ   rõ   rÎ   r÷   rê   rô   rÓ   r«   rú   r"   r$   s              r-   Ústandalone_compiler  Ü  s  € ð 'Ð&Ð&Ð&Ð&Ð&å0°Ñ@Ô@ÐÝ	˜R °°iÑ	@Ô	@ð !ð !ð #ð 	'Ý?ÑAÔAð 'ð 'Ý”] 2Ñ&Ô&�ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'õ 0°Ñ3Ô3ˆÝ,¨RÑ0Ô0ˆØ �jØ�ð
ð 
Ø1Að
ØELð
ð 
ˆõ ˜Ñ$Ô$Ð$Ð$Ð$Øð 	4Ý˜;¨Ñ4Ô4ð Ý"ØRñô ð õ ' {Ñ3Ô3ð7!ð !ð !ð !ñ !ô !ð !ð !õ8 ”N×7Ò7Ñ9Ô9ˆ	ØÐÝ�KŠKðYñô ð ð=!ð !ð !ñ !ô !ð !ð !ð !ð !ð !ð !øøøð !ð !ð !ð !õF ! ¨iÑ8Ô8Ð8s;   ¨D"¹AÁD"ÁA	ÁD"Á!A	Á"A-D"Ã:D"Ä"D&Ä)D&c                ó´   — ddl m} t          |¦  «        }t          | |||¦  «        5  |                     | ||¬¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr   rù   )rú   )Ú r«   rÑ   ró   Úautograd_cache_key)r”   rõ   rÎ   rê   rÓ   r«   rú   s          r-   r  r    s½   € ð ÐÐÐÐÐå0°Ñ@Ô@ÐÝ	˜U N°C¸Ñ	CÔ	Cð 
ð 
Ø×,Ò,ØØØ-ð -ñ 
ô 
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   ¨AÁAÁA)rÎ   rÏ   r'   )rÒ   r   rÎ   rÏ   rÓ   rÔ   r2   r   )rÒ   r   rÎ   rÏ   rê   ro   rÓ   rÔ   )rÒ   r   rõ   rö   rÎ   rÏ   r÷   r   rê   ro   rô   ro   rÓ   rÔ   r2   r!   )FN)rÎ   rÏ   rê   ro   rÓ   rÔ   )>Ú
__future__r   Ú
contextlibrû   Úloggingr~   rŒ   r…   Úabcr   r   r   r   Útypingr   r	   r
   rÏ   Útorch.fxrV   Ú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   Ú	getLoggerrg   rŽ   r!   rI   rP   rÑ   ré   Úcontextmanagerró   r  r  r4   r0   r-   ú<module>r     sK  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø #Ð #Ð #Ð #Ð #Ð #Ð #Ð #Ø :Ð :Ð :Ð :Ð :Ð :Ð :Ð :Ø .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .Ð .ð ÐWÔXÐ à €€€Ø RÐ RÐ RÐ RÐ RÐ RØ ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø @Ð @Ð @Ð @Ð @Ð @Ø <Ð <Ð <Ð <Ð <Ð <Ø GÐ GÐ GÐ GÐ GÐ GØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø ,Ð ,Ð ,Ð ,Ð ,Ð ,Ø :Ð :Ð :Ð :Ð :Ð :Ø PÐ PÐ PÐ PÐ PÐ Pà Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð %Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à/Ð/Ð/Ð/Ð/Ð/Ø$Ð$Ð$Ð$Ð$Ð$ð €gÔ˜Ñ!Ô!€ðDð Dð Dð Dð D�sñ Dô Dð DðNpDð pDð pDð pDð pDÐ,ñ pDô pDð pDðfV=ð V=ð V=ð V=ð V=Ð*ñ V=ô V=ð V=ðr3ð 3ð 3ð 3ð (,ð7
ð 7
ð 7
ð 7
ð 7
ðt Ôð
 (,ð	ð ð ð ñ ÔððD Ø %Ø'+ð39ð 39ð 39ð 39ð 39ð 39ðt Ø'+ð
ð 
ð 
ð 
ð 
ð 
ð 
r0   