§
    �Štjb  ã                   ó  — d dl mZ d dlmZmZ d dlZd dlZd dlZd dlm	Z	 de
dee
         fd„Zdej        j        fd	„Zd
e
deeee         f         fd„Zd„ Zd„ Zdddœdefd„Zed„ ¦   «         Zdefd„Zdefd„Zdefd„ZdS )é    )Úcontextmanager)ÚAnyÚcastN)ÚTimerÚfilenameÚreturnc                 ó  ‡— d}d}d Šg }t          | ¦  «        5 }|                     ¦   «                              |¦  «        }t          |¦  «        D ]Ÿ\  }}|dk    rŒ|                     |¦  «        }|dk    rŒ(|d |…         }	||dz
                                ¦   «         d         Šˆfd„|	                     d¬¦  «        D ¦   «         }
|                     d	                     |
¦  «        ¦  «         Œ 	 d d d ¦  «         n# 1 swxY w Y   |S )
Nz<GRAPH_EXPORT>z</GRAPH_EXPORT>r   éÿÿÿÿé   c                 ó>   •— g | ]}|t          ‰¦  «        d …         ‘ŒS ©N)Úlen)Ú.0ÚxÚpfxs     €úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/utils/jit/log_extract.pyú
<listcomp>zextract_ir.<locals>.<listcomp>   s'   ø€ ÐGÐGÐG a�Q•s˜3‘x”x�y�y”\ÐGÐGÐGó    T)ÚkeependsÚ )ÚopenÚreadÚsplitÚ	enumerateÚfindÚ
splitlinesÚappendÚjoin)r   ÚBEGINÚENDÚgraphsÚfÚ
split_strsÚiÚ	split_strÚend_locÚsÚlinesr   s              @r   Ú
extract_irr)   	   sQ  ø€ Ø€EØ
€CØ
€CØ€FÝ	ˆh‰Œð *˜1Ø—V’V‘X”X—^’^ EÑ*Ô*ˆ
Ý% jÑ1Ô1ð 		*ð 		*‰LˆAˆyØ�AŠvˆvØØ—n’n SÑ)Ô)ˆGØ˜"Š}ˆ}ØØ˜(˜7˜(Ô#ˆAØ˜Q ™UÔ#×.Ò.Ñ0Ô0°Ô4ˆCØGÐGÐGÐG¨1¯<ª<À¨<Ñ+FÔ+FÐGÑGÔGˆEØ�MŠM˜"Ÿ'š' %™.œ.Ñ)Ô)Ð)Ð)ð		*ð*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ð €Ms   ™CC=Ã=DÄDÚinp_typec                 óZ  — |                       ¦   «         }|                      ¦   «         }|                      ¦   «         }|                      ¦   «         }|€t	          d¦  «        ‚|€t	          d¦  «        ‚|€t	          d¦  «        ‚|€t	          d¦  «        ‚t          j        ||||¬¦  «        S )NzFmake_tensor_from_type: 'size' is None (inp_type.sizes() returned None)zJmake_tensor_from_type: 'stride' is None (inp_type.strides() returned None)zImake_tensor_from_type: 'device' is None (inp_type.device() returned None)zGmake_tensor_from_type: 'dtype' is None (inp_type.dtype() returned None))ÚsizeÚstrideÚdeviceÚdtype)ÚsizesÚstridesr.   r/   ÚAssertionErrorÚtorchÚempty_strided)r*   r,   r-   r.   r/   s        r   Úmake_tensor_from_typer5      sª   € Ø�>Š>ÑÔ€DØ×ÒÑÔ€FØ�_Š_ÑÔ€FØ�NŠNÑÔ€EØ€|ÝÐeÑfÔfÐfØ€~ÝÐiÑjÔjÐjØ€~ÝÐhÑiÔiÐiØ€}ÝÐfÑgÔgÐgÝÔ D°ÀÈeÐTÑTÔTÐTr   Úirc                 ó¨  — t           j                             | d¬¦  «        }|                     ¦   «          g }|                     ¦   «         D �]¾}t          |                     ¦   «         t           j        j        ¦  «        r)|                     t          j
        dd¦  «        ¦  «         Œ]t          |                     ¦   «         t           j        j        ¦  «        r)|                     t          j        dd¦  «        ¦  «         Œ·t          |                     ¦   «         t           j        j        ¦  «        rUt          t           j        j        |                     ¦   «         ¦  «        }|                     t          |¦  «        ¦  «         �Œ=t          |                     ¦   «         t           j        j        ¦  «        r.|                     t          j        dd¦  «        dk    ¦  «         �Œœt#          d|                     ¦   «         › �¦  «        ‚t           j                             d|¦  «        }t           j                             |j        ¦  «         ||fS )	NT)Úparse_tensor_constantsgš™™™™™¹?éd   r   r   z,A default value is not implemented for type Úforward)r3   Ú_CÚparse_irÚmakeMultiOutputIntoTupleÚinputsÚ
isinstanceÚtypeÚ	FloatTyper   ÚrandomÚuniformÚIntTypeÚrandintÚ
TensorTyper   r5   ÚBoolTypeÚNotImplementedErrorÚ_create_function_from_graphÚ!_jit_pass_erase_shape_informationÚgraph)r6   rK   r>   ÚinpÚ
tensorTypeÚfuncs         r   Úload_graph_and_inputsrO   -   sË  € ÝŒH×Ò˜b¸ÐÑ>Ô>€EØ	×"Ò"Ñ$Ô$Ð$Ø€FØ�|Š|‰~Œ~ð cñ cˆÝ�c—h’h‘j”j¥%¤(Ô"4Ñ5Ô5ð 
	cØ�MŠM�&œ.¨¨SÑ1Ô1Ñ2Ô2Ð2Ð2Ý˜Ÿš™
œ
¥E¤HÔ$4Ñ5Ô5ð 	cØ�MŠM�&œ.¨¨CÑ0Ô0Ñ1Ô1Ð1Ð1Ý˜Ÿš™
œ
¥E¤HÔ$7Ñ8Ô8ð 	cÝ�eœhÔ1°3·8²8±:´:Ñ>Ô>ˆJØ�MŠMÕ/°
Ñ;Ô;Ñ<Ô<Ð<Ñ<Ý˜Ÿš™
œ
¥E¤HÔ$5Ñ6Ô6ð 	cØ�MŠM�&œ.¨¨AÑ.Ô.°!Ò3Ñ4Ô4Ð4Ñ4å%Ð&aÐUX×U]ÒU]ÑU_ÔU_Ð&aÐ&aÑbÔbÐbåŒ8×/Ò/°	¸5ÑAÔA€DÝ	„H×.Ò.¨t¬zÑ:Ô:Ð:Ø�&ˆ>Ðr   c                 óf   — t          d| |dœ¬¦  «        }|                     ¦   «         }|j        dz  S )Nzfn(*inputs))Úfnr>   )ÚstmtÚglobalséè  )r   Úblocked_autorangeÚmedian)rQ   r>   Ú	test_runsÚtÚtimess        r   Ú	time_cudarZ   B   s:   € Ý�=°ÀÐ*GÐ*GÐHÑHÔH€AØ×ÒÑ!Ô!€EØŒ<˜$ÑÐr   c                 ó’   — t          j        ¦   «         }t          |¦  «        D ]} | |Ž  Œt          j        ¦   «         }||z
  |z  dz  S )NrT   )ÚtimeÚperf_counterÚrange)rQ   r>   rW   r'   Ú_Úes         r   Útime_cpura   G   sV   € ÝÔÑÔ€AÝ�9ÑÔð ð ˆØ
ˆˆFˆˆˆÝÔÑÔ€AØ�‰E�YÑ Ñ%Ð%r   é
   é   )Úwarmup_runsrW   c                ó(  — t          | ¦  «        \  }}t          |¦  «        D ]} ||Ž  Œd }|D ].}t          |t          j        ¦  «        r|j        j        dk    } nŒ/|€t          d¦  «        ‚|rt          |||¦  «        nt          |||¦  «        }|S )NÚcpuzNo tensor found in inputs)
rO   r^   r?   r3   ÚTensorr.   r@   r2   ra   rZ   )	r6   r>   rd   rW   rK   r_   Úis_cpuÚinputÚouts	            r   Úrun_testrk   N   s»   € Ý$ RÑ(Ô(�H€Eˆ1Ý�;ÑÔð ð ˆØˆˆvˆˆˆà€FØð ð ˆÝ�e�Uœ\Ñ*Ô*ð 	Ø”\Ô&¨%Ò/ˆFØˆEð	ð €~ÝÐ8Ñ9Ô9Ð9à06Ð
_�(�5˜& )Ñ
,Ô
,Ð
,½IÀeÈVÐU^Ñ<_Ô<_€CØ€Jr   c               /   óØ   K  — t           j                             d¦  «        }	 d V — t           j                             |¦  «         d S # t           j                             |¦  «         w xY w)NF)r3   r;   Ú_get_graph_executor_optimize)ÚargsÚkwargsÚold_optimizes      r   Úno_fuserrq   ^   sa   è è € å”8×8Ò8¸Ñ?Ô?€Lð<ØˆˆˆåŒ×-Ò-¨lÑ;Ô;Ð;Ð;Ð;ø�Œ×-Ò-¨lÑ;Ô;Ð;Ð;øøøs   £A Á!A)c                 ór   — t          ¦   «         5  t          | |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r   )rq   rk   ©r6   r>   s     r   Úrun_baseline_no_fusionrt   f   s}   € Ý	‰Œð $ð $Ý˜˜FÑ#Ô#ð$ð $ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s   �,¬0³0c                 óª  — 	 |rdgndg}t           j                             |¦  «        }t           j                             d¦  «        5  t	          | |¦  «        cd d d ¦  «         t           j                             |¦  «         S # 1 swxY w Y   	 t           j                             |¦  «         d S # t           j                             |¦  «         w xY w)N)ÚDYNAMICrb   )ÚSTATICrb   Úfuser1)r3   ÚjitÚset_fusion_strategyÚfuserrk   )r6   r>   ÚdynamicÚstratÚ	old_strats        r   Úrun_nncr   k   s  € ð1Ø%,ÐB�Ð!Ð!°>Ð2BˆÝ”I×1Ò1°%Ñ8Ô8ˆ	ÝŒY�_Š_˜XÑ&Ô&ð 	(ð 	(Ý˜B Ñ'Ô'ð	(ð 	(ð 	(ð 	(ñ 	(ô 	(ð 	(õ 	Œ	×%Ò% iÑ0Ô0Ð0Ð0ð	(ð 	(ð 	(ð 	(øøøð 	(ð 	(ð 	(ð 	(ð 	(õ 	Œ	×%Ò% iÑ0Ô0Ð0Ð0Ð0ø�Œ	×%Ò% iÑ0Ô0Ð0Ð0øøøs0   ‚AB1 ÁBÁB1 ÂBÂB1 ÂBÂB1 Â1!Cc                 ó”   — t           j                             d¦  «        5  t          | |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )NÚfuser2)r3   ry   r{   rk   rs   s     r   Úrun_nvfuserr‚   t   s‡   € Ý	Œ�Š˜Ñ	"Ô	"ð $ð $Ý˜˜FÑ#Ô#ð$ð $ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð $ð $s    =½AÁA)Ú
contextlibr   Útypingr   r   rB   r3   r\   Útorch.utils.benchmarkr   ÚstrÚlistr)   r;   rF   r5   ÚtuplerO   rZ   ra   Úfloatrk   rq   rt   r   r‚   © r   r   ú<module>r‹      s–  ðà %Ð %Ð %Ð %Ð %Ð %Ø Ð Ð Ð Ð Ð Ð Ð Ø €€€Ø €€€Ø €€€Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'ð˜ð   c¤ð ð ð ð ð*U E¤HÔ$7ð Uð Uð Uð Uð˜cð  e¨C°°c´¨NÔ&;ð ð ð ð ð*ð ð ð
&ð &ð &ð )+°bð ð ð ¸Uð ð ð ð ð  ð<ð <ñ „ð<ð$¨%ð $ð $ð $ð $ð
1 Eð 1ð 1ð 1ð 1ð$˜uð $ð $ð $ð $ð $ð $r   