Ë
    g^(h‚+  ã                   óÐ  — d dl Z d dlZd dlZd dlmZ d dlmZmZ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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ef         fd„Zd
eeej6                  f   fd„Zd
eedf   fd„Zdedej@                  d
eeef   fd„Z!dedeej@                     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j6                  d
eeef   fd„Z%dejL                  d
eeef   fd„Z'dejP                  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ef      d#eeeef      d$ed%ed
efd&„Z*y)'é    N)ÚPath)ÚAnyÚCallableÚOptional)Úmock)Úis_cpu_deviceé   )Ú	cache_dirÚ	namespaceÚdeviceÚreturnc                 ó:   — t        t        «       «      dz  | z  |z  S )NÚ
aoti_eager)r   r
   )r   r   s     úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_inductor/aoti_eager.pyÚaoti_eager_cache_dirr      s   € Ü”	“Ó˜|Ñ+¨iÑ7¸&Ñ@Ð@ó    Ú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_lockr       s:   € çDÝ.à5Ð6°eÐ<ÐÙ‹~€HÙ”B—G‘G—L‘L Ð+<Ó=À|ÔTÐTr   ÚnsÚdevice_typec                 ó–  — 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   Úexistsr    ÚopenÚjsonÚloadÚas_posixÚgetÚNotImplementedErrorÚgetattrÚtorchÚsplitÚ	ExceptionÚlogÚ	exception)r!   r   r"   Údevice_kernel_cacheÚop_confÚfÚ	json_dataÚitemÚkernel_lib_abs_pathÚmetadataÚ	dtype_keyÚeÚerr_msgs                r   Úload_aoti_eager_cacherH       s   € ô /¨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ÔØ�	ûðúsw   ¨F ³F¿A
E7Â		FÂ	F Â>E7ÃAE7Ä6.E7Å$	FÅ-	F Å7F 	Å<FÆF ÆFÆF ÆF Æ	GÆ"GÆ=GÇGc                  ó~   — t         t        j                  t        t        j                  t        t        j                  iS ©N)Úintr9   Úint32ÚfloatÚbool© r   r   Ú#supported_builtin_dtype_torch_dtyperP   T   s!   € Ü”—‘œe¤U§[¡[´$¼¿
¹
ÐCÐCr   .c                  óH   — t        «       } t        | j                  «       «      S rJ   )rP   ÚtupleÚkeys)Útype_to_torch_dtypes    r   Úsupported_scalar_typesrU   X   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 )
Nr'   r"   r*   r+   r,   ÚsizesÚstridesÚrequires_gradÚdispatch_key_set)Ú
isinstancer9   ÚTensorr   Útyper   Úindexr,   ÚlistÚsizeÚstrider[   Ú_CÚ_dispatch_keysÚraw_repr)rV   rW   rD   s      r   Úextract_tensor_metadatarg   ]   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)r]   r9   r^   Úappendrg   )rV   rW   Úmetadata_listrB   rD   s        r   Úextract_tensor_list_metadatarl   o   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 )
NFr'   r"   r)   r*   r   r+   r,   Úscalar_value)r]   rU   rP   r_   )r"   rW   rD   rT   s       r   Úextract_scalar_metadataro   }   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)r]   Ústr©rW   rD   s     r   Úextract_string_metadatart   Š   s&   € Ü�eœSÔ!Ð!Ð!Ø!€HØ$€Hˆ^ÑØ€Or   c                 óN   — t        | t        j                  «      sJ ‚i }| › |d<   |S )Nr-   )r]   r9   r,   rs   s     r   Úextract_dtype_metadatarv   ‘   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)r]   r9   r   r_   r`   rs   s     r   Úextract_device_metadatarz   ˜   s@   € Ü�eœUŸ\™\Ô*Ð*Ð*Ø!€HØ',§z¡z l€HÐ Ñ!Ø%*§[¡[€HÐ!Ñ"Ø€Or   c                 óN   — t        | t        j                  «      sJ ‚i }| › |d<   |S )Nr/   )r]   r9   Úlayoutrs   s     r   Úextract_layout_metadatar}       s,   € Ü�eœUŸ\™\Ô*Ð*Ð*Ø!€HØ"' €Hˆ^ÑØ€Or   F)Údynamic_shapesÚoptionsÚremove_runtime_assertionsÚdisable_constraint_solverr@   ÚargsÚkwargsr~   r   r€   r�   c          
      óÐ  — |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 }t+        |«      D �]:  \  }}t        |t"        j,                  «      rt/        ||«      }n÷t        |t         «      r!t        d„ |D «       «      sJ ‚t1        ||«      }nÆt        |t3        «       «      rt5        ||«      }n¥t        |t(        «      rt7        |«      }n‰t        |t"        j8                  «      rt;        |«      }nct        |t"        j<                  «      rt?        |«      }n=t        |t"        j@                  «      rtC        |«      }nt        dtE        |«      › �«      ‚||d<   |jG                  |«       �Œ= i }||d<   tI        |«      jK                  |«      j!                  «       |d<   g }d}||› d�z  }|j                  «       rdnd}tM        |«      5  tO        ||«      5 }	 tQ        jR                  |«      }t        |t         «      sJ ‚|D ]   }t        |t        «      sJ ‚|d   |k(  sŒd
} n ddd«       |r>|jG                  |«       tO        |d«      5 }tQ        jV                  ||d¬«       ddd«       ddd«       |cddd«       S # tT        $ 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# tT        $ 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(   c              3   óÒ   K  — | ]_  }t        |t        «       t        j                  t        t
        t        j                  t        j                  t        j                  f«      –— Œa y ­wrJ   )	r]   rU   r9   r^   ra   rr   r,   r   r|   )Ú.0rW   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rJ   ©r]   r9   r^   ©r†   rB   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rJ   r‰   rŠ   s     r   r‡   z5aoti_compile_with_persistent_cache.<locals>.<genexpr>ö   s   è ø€ ÒPÀ$œz¨$´·±×=ÑPùr‹   zUnsupported input type: Ú	arg_orderr&   r%   r$   ÚrÚwNé   )ÚindentzFailed to compile z: Ú ),ra   ÚvaluesÚallr<   r=   r7   r]   r   r1   Úmkdirr   ÚpatchÚdictr   ÚenvironÚabsoluter5   r9   Ú_exportÚaot_compilerr   Ú	enumerater^   rg   rl   rU   ro   rt   r,   rv   r   rz   r|   r}   r_   rj   r   Úrelative_tor    r2   r3   r4   r;   Údump)r!   r   r"   rV   r@   r‚   rƒ   r~   r   r€   r�   Úflattened_inputsrG   rW   Úpersistent_cacheÚpersistent_cache_libÚkernel_lib_pathÚkernel_metadata_itemsÚidxrD   Úkernel_meta_inforA   Úupdate_jsonr?   ÚmodeÚop_conf_filerB   rF   s                               r   Ú"aoti_compile_with_persistent_cacher­   §   s^  € ñ" Ð;Ð;Ó;ˆ;Ü˜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£   ÅQÅG P!Ì6PÍO=ÍO,Í1O=ÎO=Î'PÎ8P	ÏPÏ	P!Ï,O:	Ï7O=Ï9O:	Ï:O=Ï=PÐPÐ	PÐPÐP	ÐP!Ð!	QÐ*QÑQÑQÑQÑQ%)+r3   Úloggingr   Úpathlibr   Útypingr   r   r   Úunittestr   r9   Útorch._exportÚtorch._inductor.utilsr   Úruntime.runtime_utilsr
   Ú	getLoggerÚ__name__r<   rr   r   r    ra   r›   rH   r_   r,   rP   rR   rU   rN   r^   rg   rl   ro   rt   rv   r   rz   r|   r}   r­   rO   r   r   ú<module>r·      sŠ  ðÛ Û Û 	Ý ß *Ñ *Ý ã Û Ý /å ,ð €g×Ñ˜Ó!€ðA Cð A°ð A¸ó AðU¸ð UÀó Uð1Øð1Ø),ð1Ø;>ð1à	ˆ(�4˜˜S˜‘>Ñ
"Ñ#ó1ðh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ó ð  04Ø(,Ø&+Ø&+òCØðCà #ðCð ðCð ð	Cð
 ��S�ÑðCð �‰*ðCð ��c�‰NðCð ˜T # s (™^Ñ,ðCð �d˜3 ˜8‘nÑ%ðCð  $ðCð  $ðCð 	ôCr   