Ë
    ÃÓ^j0  ã                   ó`  — U d dl 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 d dlZd dlZd dlmZ dd	lmZ  ej&                  e«      Ze G d
„ d«      «       Zi Zeeef   ed<   dededef   deeeegeeee
f   dz     f   ddfd„Zdededefd„Zdede
fd„Zdedededeeee
f   dz     fd„Zdee ejB                  f   fd„Z"de#e df   fd„Z$de%dejL                  deee
f   fd„Z'de%deejL                     deee
f   fd„Z(dede
deee
f   fd „Z)dedeee
f   fd!„Z*dejB                  deee
f   fd"„Z+dejX                  deee
f   fd#„Z-dej\                  deee
f   fd$„Z/ddd%d%d&œdededede%d'ede
f   d(e#e
   d)eee
f   d*eee
f   dz  d+eee
f   dz  d,e%d-e%defd.„Z0y)/é    N)ÚCallable)Ú	dataclass)ÚPath)ÚAny)Úmock)Úis_cpu_deviceé   )Ú	cache_dirc                   óR   — e Zd ZU edef   ed<   eeeegeeeef   dz     f   ed<   y)ÚAOTICompileBackend.Ú
compile_fnNÚload_fn)	Ú__name__Ú
__module__Ú__qualname__r   ÚstrÚ__annotations__ÚlistÚdictr   © ó    úe/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/_inductor/aoti_eager.pyr   r      s9   … à˜˜c˜Ñ"Ó"Ø�s˜C �o t¨D°°c°©N¸TÑ,AÑ'BÐBÑCÔCr   r   Ú_aoti_compile_backendsÚdevice_typer   .r   Úreturnc                 ó,   — t        ||¬«      t        | <   y )N)r   r   )r   r   )r   r   r   s      r   Úregister_aoti_compile_backendr      s   € ô
 +=ØØô+Ô˜;Ò'r   Ú	namespaceÚdevicec                 ó:   — t        t        «       «      dz  | z  |z  S )NÚ
aoti_eager)r   r
   )r   r   s     r   Úaoti_eager_cache_dirr"   (   s   € Ü”	“Ó˜|Ñ+¨iÑ7¸&Ñ@Ð@r   Úop_func_name_with_overloadc                 ó†   — ddl m}m} ddlm} | › d�} |«       } |t
        j                  j                  ||«      |¬«      S )Nr   )Úget_lock_dirÚLOCK_TIMEOUT)ÚFileLockz.lock)Útimeout)Útorch._inductor.codecacher%   r&   Útorch.utils._filelockr'   ÚosÚpathÚjoin)r#   r%   r&   r'   Úop_conf_lock_fileÚlock_dirs         r   Úaoti_eager_op_conf_lockr0   ,   s:   € çDÝ.à5Ð6°eÐ<ÐÙ‹~€HÙ”B—G‘G—L‘L Ð+<Ó=À|ÔTÐTr   Únsc                 óê  — t         j                  |«      }|r|j                  | ||«      S t        | |«      }||› d�z  }|j	                  «       sg S 	 t        |«      5  t        |«      5 }t        j                  |«      }|D �]  }||d   z  }	|	j                  «       |d<   |	j	                  «       sg c cd d d «       cd d d «       S |d   D ]¼  }
|
j                  d«      rt        d«      ‚d|
v r|
d   dk(  rd|
d	<   d
D ]/  }||
v sŒt        t        |
|   j                  d«      d   «      |
|<   Œ1 d|
v r(t        t        |
d   j                  d«      d   «      |
d<   d|
v sŒ•t        t        |
d   j                  d«      d   «      |
d<   Œ¾ �Œ |cd d d «       cd d d «       S # 1 sw Y   nxY w	 d d d «       y # 1 sw Y   y xY w# t        $ r&}d|› �}t        j!                  |«       g cY d }~S d }~ww xY w)Nú.jsonÚkernel_pathÚ	meta_infoÚ
is_dynamicú!Only support static shape for nowr   ÚcpuéÿÿÿÿÚdevice_index)ÚdtypeÚdtype_valueú.Úlayout_valueÚmemory_format_valuez!Failed to load aoti eager cache: )r   Úgetr   r"   Úexistsr0   ÚopenÚjsonÚloadÚas_posixÚNotImplementedErrorÚgetattrÚtorchÚsplitÚ	ExceptionÚlogÚ	exception)r1   r#   r   ÚbackendÚdevice_kernel_cacheÚop_confÚfÚ	json_dataÚitemÚkernel_lib_abs_pathÚmetadataÚ	dtype_keyÚeÚerr_msgs                 r   Úload_aoti_eager_cacherX   6   sG  € ô %×(Ñ(¨Ó5€GÙØ�‰˜rÐ#=¸{ÓKÐKä.¨r°;Ó?ÐØ!Ð'AÐ&BÀ%Ð$HÑH€GØ�>‰>ÔØˆ	ð)Ü$Ð%?Ó@ñ $	!Ü�g“ð #! !Ü ŸI™I a›L�	Ø%ó �Dà*=ÀÀ]Ñ@SÑ*SÐ'Ø*=×*FÑ*FÓ*H�D˜Ñ'ð /×5Ñ5Ô7Ø!™	÷#!ð #!÷$	!ñ $	!ð %)¨Ñ$5ò ˜Ø#Ÿ<™<¨Ô5Ü"5Ø Có#ð ð *¨XÑ5Ø (¨Ñ 7¸5Ò @à79˜H ^Ñ4Ø)Aò "˜IØ(¨HÒ4Ü6=Ü$)¨8°IÑ+>×+DÑ+DÀSÓ+IÈ"Ñ+Mó7" ¨Ò 3ð"ð
 *¨XÑ5Ü7>Ü % x°Ñ'?×'EÑ'EÀcÓ'JÈ2Ñ'Nó8˜H ^Ñ4ð 1°HÒ<Ü>EÜ % xÐ0EÑ'F×'LÑ'LÈSÓ'QÐRTÑ'Uó?˜HÐ%:Ò;ò)ððB !÷G#!ð #!÷$	!ñ $	!÷#!ð #!úð #!÷$	!÷ $	!ñ $	!ûôJ ò Ø5°a°SÐ9ˆÜ�‰�gÔØ�	ûðúsz   ÁG ÁF7Á)A
F!Â3	F7Â<	G Ã>F!ÄAF!Å .F!Æ	F7Æ	G Æ!F*	Æ&F7Æ.G Æ7G Æ<G Ç G Ç	G2ÇG-Ç'G2Ç-G2c                  ó~   — t         t        j                  t        t        j                  t        t        j                  iS ©N)ÚintrH   Úint32ÚfloatÚboolr   r   r   Ú#supported_builtin_dtype_torch_dtyper_   n   s!   € Ü”—‘œe¤U§[¡[´$¼¿
¹
ÐCÐCr   c                  óH   — t        «       } t        | j                  «       «      S rZ   )r_   ÚtupleÚkeys)Útype_to_torch_dtypes    r   Úsupported_scalar_typesrd   r   s    € Ü=Ó?ÐÜÐ$×)Ñ)Ó+Ó,Ð,r   ÚdynamicÚinputc                 óä  — i }| |d<   t        |t        j                  «      sJ ‚|j                  j                  › |d<   t        |g«      rd|d<   n|j                  j                  |d<   |j                  › |d<   t        |j                  «       «      |d<   t        |j                  «       «      |d<   |j                  |d<   t        j                  j                  |«      j                  «       |d	<   |S )
Nr6   r   r9   r:   r;   ÚsizesÚstridesÚrequires_gradÚdispatch_key_set)Ú
isinstancerH   ÚTensorr   Útyper   Úindexr;   r   ÚsizeÚstriderj   Ú_CÚ_dispatch_keysÚraw_repr)re   rf   rT   s      r   Úextract_tensor_metadataru   w   sÖ   € Ø!€HØ$€Hˆ\Ñä�eœUŸ\™\Ô*Ð*Ð*Ø!&§¡×!2Ñ!2Ð 3€Hˆ]ÑÜ�e�WÔØ#%ˆ�Ò à#(§<¡<×#5Ñ#5ˆ�Ñ Ø Ÿ;™;˜-€HˆWÑÜ˜UŸZ™Z›\Ó*€HˆWÑÜ˜uŸ|™|›~Ó.€HˆYÑØ %× 3Ñ 3€Hˆ_ÑÜ#(§8¡8×#:Ñ#:¸5Ó#A×#JÑ#JÓ#L€HÐÑ Ø€Or   c                 ó”   — g }|D ]9  }t        |t        j                  «      sJ ‚|j                  t	        | |«      «       Œ; i }||d<   |S )NÚtensor_list)rl   rH   rm   Úappendru   )re   rf   Úmetadata_listrR   rT   s        r   Úextract_tensor_list_metadatarz   ‰   sZ   € ð €MØò EˆÜ˜$¤§¡Ô-Ð-Ð-Ø×ÑÔ4°W¸dÓCÕDðEð  "€HØ+€Hˆ]ÑØ€Or   c                 ó¤   — t        |t        «       «      sJ ‚i }d|d<   | |d<   | dk(  rdnd|d<   t        «       }|t        |«         › |d<   ||d	<   |S )
NFr6   r   r8   r9   r   r:   r;   Úscalar_value)rl   rd   r_   rn   )r   rf   rT   rc   s       r   Úextract_scalar_metadatar}   —   sp   € Ü�eÔ3Ó5Ô6Ð6Ð6Ø!€HØ"€Hˆ\Ñà)€Hˆ]ÑØ%0°EÒ%9™r¸q€Hˆ^ÑÜ=Ó?ÐØ.¬t°E«{Ñ;Ð<€HˆWÑØ$€Hˆ^ÑØ€Or   c                 ó8   — t        | t        «      sJ ‚i }| |d<   |S )NÚstring_value)rl   r   ©rf   rT   s     r   Úextract_string_metadatar�   ¤   s&   € Ü�eœSÔ!Ð!Ð!Ø!€HØ$€Hˆ^ÑØ€Or   c                 óN   — t        | t        j                  «      sJ ‚i }| › |d<   |S )Nr<   )rl   rH   r;   r€   s     r   Úextract_dtype_metadatarƒ   «   s,   € Ü�eœUŸ[™[Ô)Ð)Ð)Ø!€HØ!& €Hˆ]ÑØ€Or   c                 ó€   — t        | t        j                  «      sJ ‚i }| j                  › |d<   | j                  |d<   |S )NÚdevice_type_valueÚdevice_index_value)rl   rH   r   rn   ro   r€   s     r   Úextract_device_metadatar‡   ²   s@   € Ü�eœUŸ\™\Ô*Ð*Ð*Ø!€HØ',§z¡z l€HÐ Ñ!Ø%*§[¡[€HÐ!Ñ"Ø€Or   c                 óN   — t        | t        j                  «      sJ ‚i }| › |d<   |S )Nr>   )rl   rH   Úlayoutr€   s     r   Úextract_layout_metadatarŠ   º   s,   € Ü�eœUŸ\™\Ô*Ð*Ð*Ø!€HØ"' €Hˆ^ÑØ€Or   F©Údynamic_shapesÚoptionsÚremove_runtime_assertionsÚdisable_constraint_solverrP   ÚargsÚkwargsrŒ   r�   rŽ   r�   c                ó6	  — t         j                  |«      }|r|j                  | |||||||||	|
¬«      S |rJ d«       ‚t        |«      t        |j	                  «       «      z   }t        d„ |D «       «      s%d|› �}t        j                  |«       t        |«      ‚|D ]J  }t        |t        «      sŒt        d„ |D «       «      rŒ'd|› �}t        j                  |«       t        |«      ‚ t        | |«      }|j                  «       s|j                  d¬«       |d	z  }|j                  «       s|j                  «        t        j                  j                  t         j"                  d
|j%                  «       j'                  «       i«      5  	 t(        j*                  j-                  |||||	|
d¬«      }t        |t.        «      sJ ‚g }t1        |«      D �]:  \  }}t        |t(        j2                  «      rt5        ||«      }n÷t        |t        «      r!t        d„ |D «       «      sJ ‚t7        ||«      }nÆt        |t9        «       «      rt;        ||«      }n¥t        |t.        «      rt=        |«      }n‰t        |t(        j>                  «      rtA        |«      }nct        |t(        jB                  «      rtE        |«      }n=t        |t(        jF                  «      rtI        |«      }nt        dtK        |«      › �«      ‚||d<   |jM                  |«       �Œ= i }||d<   tO        |«      jQ                  |«      j'                  «       |d<   g }d}||› d�z  }|j                  «       rdnd}tS        |«      5  tU        ||«      5 }	 tW        jX                  |«      }t        |t        «      sJ ‚|D ]   }t        |t        «      sJ ‚|d   |k(  sŒd} n ddd«       |r>|jM                  |«       tU        |d«      5 }tW        j\                  ||d¬«       ddd«       ddd«       |cddd«       S # tZ        $ r g }Y ŒŸw xY w# 1 sw Y   ŒmxY w# 1 sw Y   Œ9xY w# 1 sw Y   Œ=xY w# tZ        $ r/}d|› d|› �}t        j                  |«       Y d}~ddd«       yd}~ww xY w# 1 sw Y   yxY w)zO
    Compile the given function with persistent cache for AOTI eager mode.
    r‹   r7   c              3   óÒ   K  — | ]_  }t        |t        «       t        j                  t        t
        t        j                  t        j                  t        j                  f«      –— Œa y ­wrZ   )	rl   rd   rH   rm   r   r   r;   r   r‰   )Ú.0rf   s     r   ú	<genexpr>z5aoti_compile_with_persistent_cache.<locals>.<genexpr>ä   sO   è ø€ ò ð ô 	Øä&Ó(Ü—‘ÜÜÜ—‘Ü—‘Ü—‘ð÷	
ñùs   ‚A%A'zUnsupported input types: c              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wrZ   ©rl   rH   rm   ©r”   rR   s     r   r•   z5aoti_compile_with_persistent_cache.<locals>.<genexpr>ø   s    è ø€ ò /
Ø/3ŒJ�tœUŸ\™\×*ñ/
ùó   ‚$&z<_impl_with_aoti_compile encounters unsupported input types: T)ÚparentsÚlibÚTORCHINDUCTOR_CACHE_DIRF)rŒ   rŽ   r�   Úsame_signaturec              3   óP   K  — | ]  }t        |t        j                  «      –— Œ  y ­wrZ   r—   r˜   s     r   r•   z5aoti_compile_with_persistent_cache.<locals>.<genexpr>   s   è ø€ ÒPÀ$œz¨$´·±×=ÑPùr™   zUnsupported input type: Ú	arg_orderr5   r4   r3   ÚrÚwNé   )ÚindentzFailed to compile z: Ú )/r   r@   r   r   ÚvaluesÚallrK   rL   rF   rl   r"   rA   Úmkdirr   Úpatchr   r+   ÚenvironÚabsoluterE   rH   Ú_exportÚaot_compiler   Ú	enumeraterm   ru   rz   rd   r}   r�   r;   rƒ   r   r‡   r‰   rŠ   rn   rx   r   Úrelative_tor0   rB   rC   rD   rJ   Údump)r1   r#   r   re   rP   r�   r‘   rŒ   r�   rŽ   r�   rM   Úflattened_inputsrW   rf   Úpersistent_cacheÚpersistent_cache_libÚkernel_lib_pathÚkernel_metadata_itemsÚidxrT   Úkernel_meta_inforQ   Úupdate_jsonrO   ÚmodeÚop_conf_filerR   rV   s                                r   Ú"aoti_compile_with_persistent_cacherº   Á   s¬  € ô" %×(Ñ(¨Ó5€GÙØ×!Ñ!ØØ&ØØØØØØ)ØØ&?Ø&?ð "ó 
ð 	
ñ Ð;Ð;Ó;ˆ;Ü˜D“z¤D¨¯©«Ó$9Ñ9ÐÜñ ð &ôô ð .Ð.>Ð-?Ð@ˆÜ�‰�gÔÜ! 'Ó*Ð*à!ò /ˆÜ�eœTÕ"¬3ñ /
Ø7<ô/
õ ,
ð UÐUeÐTfÐgˆGÜ�M‰M˜'Ô"Ü% gÓ.Ð.ð/ô ,¨B°Ó<ÐØ×"Ñ"Ô$Ø×Ñ tÐÔ,à+¨eÑ3ÐØ×&Ñ&Ô(Ø×"Ñ"Ô$ä	�‰�‰Ü
�
‰
Ø	"Ð$8×$AÑ$AÓ$C×$LÑ$LÓ$NÐOó
ñ MðI	Ü#Ÿm™m×7Ñ7ØØØØ-Ø*CØ*Cð  %ð 8ó ˆOô ˜o¬sÔ3Ð3Ð3à$&Ð!ä'Ð(8Ó9ó 7‘
��UÜ˜e¤U§\¡\Ô2Ü6°wÀÓF‘HÜ ¤tÔ,ÜÑPÈ%ÔPÔPÐPÐPÜ;¸GÀUÓK‘HÜ Ô'=Ó'?Ô@Ü6°{ÀEÓJ‘HÜ ¤sÔ+Ü6°uÓ=‘HÜ ¤u§{¡{Ô3Ü5°eÓ<‘HÜ ¤u§|¡|Ô4Ü6°uÓ=‘HÜ ¤u§|¡|Ô4Ü6°uÓ=‘Hä-Ð0HÌÈeËÈÐ.VÓWÐWà(+�˜Ñ%Ø%×,Ñ,¨XÖ6ð)7ð, 02ÐØ,AÐ˜[Ñ)ä�_Ó%×1Ñ1Ð2BÓC×LÑLÓNð ˜]Ñ+ð ˆIØˆKØ&Ð,FÐ+GÀuÐ)MÑMˆGØ!Ÿ.™.Ô*‘3°ˆDÜ(Ð)CÓDñ EÜ˜' 4Ó(ð "¨Lð'Ü$(§I¡I¨lÓ$;˜	ô & i´Ô6Ð6Ð6Ø )ò "˜Ü)¨$´Ô5Ð5Ð5à Ñ,Ð0EÓEØ*/˜KÙ!ð"÷"ñ Ø×$Ñ$Ð%5Ô6Ü˜g sÓ+ð E¨|ÜŸ	™	 )¨\À!ÕD÷E÷#Eð( #÷SMñ Møôr %ò 'Ø$&š	ð'ú÷"ð "ú÷ Eð Eú÷#Eð Eûô* ò 	Ø*Ð+EÐ*FÀbÈÈÐLˆGÜ�M‰M˜'Ô"Û÷[Mð MûðT	ú÷UMð Mús£   ÆRÆ	G QÍ)QÍ6P0Í8PÎ1P0Î?P0Ï'QÏ+P<ÐQÐ	QÐP-	Ð*P0Ð,P-	Ð-P0Ð0P9Ð5QÐ<QÑQÑQ	ÑQÑ	RÑRÑ:RÒRÒRÒR)1rC   Úloggingr+   Úcollections.abcr   Údataclassesr   Úpathlibr   Útypingr   Úunittestr   rH   Útorch._exportÚtorch._inductor.utilsr   Úruntime.runtime_utilsr
   Ú	getLoggerr   rK   r   r   r   r   r   r   r   r"   r0   rX   rn   r;   r_   ra   rd   r^   rm   ru   rz   r}   r�   rƒ   r   r‡   r‰   rŠ   rº   r   r   r   ú<module>rÅ      s  ðÜ Û Û 	Ý $Ý !Ý Ý Ý ã Û Ý /å ,ð €g×Ñ˜Ó!€ð ÷Dð Dó ðDð
 9;Ð ˜˜SÐ"4Ð4Ñ5Ó :ðØðà˜˜c˜Ñ"ðð �s˜C �o t¨D°°c°©N¸TÑ,AÑ'BÐBÑCðð 
ó	ðA Cð A°ð A¸ó AðU¸ð UÀó Uð5Øð5Ø),ð5Ø;>ð5à	ˆ$ˆs�Cˆx‰.˜4Ñ
Ñ ó5ðpD¨T°$¸¿¹Ð2CÑ-Dó Dð-  d¨C iÑ 0ó -ð
 Tð °%·,±,ð À4ÈÈSÈÁ>ó ð$Øðà�—‘Ñðð 
ˆ#ˆsˆ(�^óð
¨ð 
°Sð 
¸TÀ#ÀsÀ(¹^ó 
ð 3ð ¨4°°S°©>ó ð %§+¡+ð °$°s¸C°x±.ó ð 5§<¡<ð °D¸¸c¸±Nó ð 5§<¡<ð °D¸¸c¸±Nó ð  -1Ø%)Ø&+Ø&+òSØðSà #ðSð ðSð ð	Sð
 ��S�ÑðSð �‰*ðSð ��c�‰NðSð ˜˜c˜‘N TÑ)ðSð �#�s�(‰^˜dÑ"ðSð  $ðSð  $ðSð 	ôSr   