Ë
    ÌÓ^j‹P  ã                   ó:	  — d dl Z d dlZd dlmZ d dlmZ d dlmZm	Z	mZ d dl
mZ d dlmZ d dlmZmZmZ d dlmZmZ d d	lmZ d d
lmZmZ d dlmZ d„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!g d¢Z"ejF                  jI                  ddejJ                  jL                  ¬«       ejF                  jO                  dd«      d„ «       Z(ejF                  jO                  dd«      d„ «       Z)ejF                  jO                  dd«      d„ «       Z*ejF                  jW                  d«      d„ «       Z,d„ Z-d„ Z.d„ Z/ed „ «       Z0d!„ Z1d"„ Z2d#„ Z3d$„ Z4d%„ Z5d&„ Z6d'„ Z7d(„ Z8d)„ Z9d*„ Z:d+„ Z;d,„ Z<d-„ Z=d.„ Z> e«       Z?d/„ Z@d0„ ZAd1„ ZBd2„ ZCd3„ ZDd4„ ZE ed5d6e>e= eejŒ                  ejŽ                  «      d7d7d7d7d7d7d7¬8«       ed9d6e1e/ eejŒ                  ejŽ                  «      d7d7d7d7d7d:d7¬8«       ed;d6ee eejŒ                  ejŽ                  «      d7d7d7d7d7¬<«
       ed;d=ee eejŒ                  ejŽ                  «      d7d7d7d7d7¬<«
       ed;d>e e eejŒ                  ejŽ                  «      d7d7d7d7d7¬<«
       ed?d6e.e- eejŒ                  ejŽ                  «      d7d7d7d7d7d:d7¬8«       ed@d6e@e/ eejŒ                  ejŽ                  «      d7d7d7d7d7d:d7¬8«       edAd6eAe/ eejŒ                  ejŽ                  «      d7d7d7d7d7d:d7¬8«       edBd6e9e8 eejŒ                  ejŽ                  «      d7d7d7d7d7d7¬C«       edDd6e:e8 eejŒ                  ejŽ                  «      d7d7d7d7d7d7¬C«       edEd6e3e2 eejŒ                  ejŽ                  «      d7d7d7d7d7d7¬C«       edQdFd6ee4dGœ e!ej�                  ej’                  «      ¤d7d7d7d7d7dHœ¤Ž edQdId6e7e5dGœ e!ej�                  ej’                  «      ¤d7d7d7d7d7d7d7dJœ¤Ž edQdIdKe7e6dGœ e!ej�                  ej’                  «      ¤d7d7d7d7d7d7d7dJœ¤Ž edQdLd6e<e;dGœej”                  j—                  «       r e!ej�                  ej’                  «      ndM e«       i¤d7d7d7d7d7dHœ¤Ž edNd6eCeB eejŒ                  ejŽ                  «      d7d7d7d7d7d7¬C«       edQdOd6eEeDdGœ e!ej’                  «      ¤d7d7d7d7d7d7dPœ¤ŽgZLy)Ré    N©Úmap)Úflex_attention)Ú_create_empty_block_maskÚcreate_block_maskr   )Úmake_tensor)Úinline_asm_elementwise)Úall_types_andÚcustom_typesÚempty_types)ÚOpInfoÚSampleInput)Úmark_compile_region)ÚInvokeQuantÚinvoke_quant_packed©Úregister_hook_opc           
   +   ó¼   K  — t        j                  t        |||¬«      }t         |ddddd¬«       |ddddd¬«      g |ddd¬«       |ddd¬«      f¬«      –— y ­w)N©ÚdeviceÚdtypeÚrequires_gradé   çš™™™™™¹?©ÚlowÚhighé   ©Úargs©Ú	functoolsÚpartialr   r   ©Úopinfor   r   r   ÚkwargsÚmake_args         úi/var/www/ramen.bs-engineer-server.com/venv/lib/python3.12/site-packages/torch/testing/_internal/hop_db.pyÚsample_inputs_mapr)      sj   è ø€ Ü× Ñ Ü˜F¨%¸}ô€Hô Ù	�!�Q˜˜s¨Ô	+©X°a¸¸AÀ3ÈQÔ-OÐPÙ�q˜c¨Ô*©H°Q¸CÀaÔ,HÐIôó ùs   ‚AAc                 óÔ   — | d   j                  «       j                  d«      |z  | d   |j                  «       z   j                  «       j	                  | d   j                  «       «      gS )Nr   ç      ð?r   )ÚcosÚadd_ÚsinÚcos_ÚviewÚsize©ÚxÚy0Úy1s      r(   Úinner_fr6   "   sQ   € Øˆa‰D�H‰H‹J�O‰O˜CÓ  2Ñ%¨¨!©¨r¯v©v«x©×'=Ñ'=Ó'?×'DÑ'DÀQÀqÁTÇYÁYÃ[Ó'QÐRÐRó    c                 ó$   — d„ }t        || ||«      S )Nc                 ó   — t        | ||«      S ©N©r6   r2   s      r(   Úfzsimple_map.<locals>.f'   s   € Ü�q˜"˜bÓ!Ð!r7   r   )Úxsr4   r5   r<   s       r(   Ú
simple_mapr>   &   s   € ò"ô ˆq�"�b˜"ÓÐr7   c                 ó$   — d„ }t        || ||«      S )Nc                 ó$   — d„ }t        || ||«      S )Nc                 ó   — t        | ||«      S r:   r;   r2   s      r(   Úf2z"nested_map.<locals>.f1.<locals>.f2/   s   € Ü˜1˜b "Ó%Ð%r7   r   ©Úxxr4   r5   rB   s       r(   Úf1znested_map.<locals>.f1.   s   € ò	&ô �2�r˜2˜rÓ"Ð"r7   r   ©r=   r4   r5   rE   s       r(   Ú
nested_maprG   -   s   € ò#ô ˆr�2�r˜2ÓÐr7   c                 ó$   — d„ }t        || ||«      S )Nc                 ó$   — d„ }t        || ||«      S )Nc                 ó$   — d„ }t        || ||«      S )Nc                 ó   — t        | ||«      S r:   r;   r2   s      r(   rB   z5triple_nested_map.<locals>.f0.<locals>.f1.<locals>.f2:   s   € Ü˜q " bÓ)Ð)r7   r   rC   s       r(   rE   z)triple_nested_map.<locals>.f0.<locals>.f19   s   € ò*ô �r˜2˜r 2Ó&Ð&r7   r   rF   s       r(   Úf0ztriple_nested_map.<locals>.f08   s   € ò	'ô �2�r˜2˜rÓ"Ð"r7   r   )r=   r4   r5   rL   s       r(   Útriple_nested_maprM   7   s   € ò#ô ˆr�2�r˜2ÓÐr7   c                  ó:   — t        «       t        | Ž t        «       dœS )N)ÚdtypesÚdtypesIfCUDAÚdtypesIfXPU)r   r   )rO   s    r(   Úcuda_only_dtypesrR   D   s   € ä“-Ü$ fÐ-Ü"“}ñð r7   )"Úcustom_function_callÚautograd_function_applyÚrun_and_save_rng_stateÚrun_with_rng_stateÚrun_dtensor_rng_opÚgraphsafe_run_with_rng_stateÚ	out_dtypeÚtrace_wrappedÚtag_activation_checkpointÚexecutorch_call_delegateÚwrapÚwrap_with_set_grad_enabledÚauto_functionalized_v2Úassociative_scanÚ
flat_applyÚwrap_with_autocastÚwrap_activation_checkpointÚrun_const_graphÚauto_functionalizedr   Úmap_implÚwith_effectsÚstrict_modeÚ_export_tracepointÚcall_torchbindÚtriton_kernel_wrapper_mutationÚ triton_kernel_wrapper_functionalÚhints_wrapperÚdynamo_bypassing_wrapperÚforeach_mapÚaoti_call_delegateÚprintÚinductor_compiled_codeÚinvoke_leaf_functionztestlib::mutating_custom_opz8(Tensor(a!) x, Tensor(b!) z) -> (Tensor, Tensor, Tensor))ÚtagsÚcpuc                 óŽ   — | j                  d«       |j                  d«       | j                  «       |j                  «       | |z   fS ©Né   ©r-   Úclone©r3   Úzs     r(   Úfoo_impl_cpur}   †   ó5   € à‡F�Fˆ1„IØ‡F�Fˆ1„IØ�7‰7‹9�a—g‘g“i  Q¡Ð&Ð&r7   Úcudac                 óŽ   — | j                  d«       |j                  d«       | j                  «       |j                  «       | |z   fS rw   ry   r{   s     r(   Úfoo_impl_cudar�   �   r~   r7   Úxpuc                 óŽ   — | j                  d«       |j                  d«       | j                  «       |j                  «       | |z   fS rw   ry   r{   s     r(   Úfoo_impl_xpur„   ”   r~   r7   c                 óJ   — | j                  «       |j                  «       | |z   fS r:   ©rz   r{   s     r(   Úfoo_impl_abstractr‡   ›   s   € à�7‰7‹9�a—g‘g“i  Q¡Ð&Ð&r7   c           	   +   óv   K  — t        j                  t        |||¬«      }t         |ddddd¬«      «      –— y ­w©Nr   r   r   r   r!   r$   s         r(   Úsample_inputs_condrŠ       ó9   è ø€ Ü× Ñ Ü˜F¨%¸}ô€Hô ‘h˜q ! Q¨C°aÔ8Ó
9Ó9ùó   ‚79c                 óZ   — t        j                  | j                  «       dkD  d„ d„ | g«      S )Nr   c                 ó$   — | j                  «       fS r:   ©r,   ©r3   s    r(   ú<lambda>zsimple_cond.<locals>.<lambda>¨   s   € ¨a¯e©e«g¨Z€ r7   c                 ó$   — | j                  «       fS r:   )r.   r�   s    r(   r‘   zsimple_cond.<locals>.<lambda>¨   s   € ÀAÇEÁEÃGÀ:€ r7   )ÚtorchÚcondÚsumr�   s    r(   Úsimple_condr–   §   s&   € Ü�:‰:�a—e‘e“g ‘kÑ#7Ñ9MÐPQÈsÓSÐSr7   c           	   +   óv   K  — t        j                  t        |||¬«      }t         |ddddd¬«      «      –— y ­wr‰   r!   r$   s         r(   Úsample_inputs_invoke_subgraphr˜   «   r‹   rŒ   c                 ó,   — t        j                  | «      S r:   ©r“   r.   r�   s    r(   Úfn_for_invoke_subgraphr›   ²   s   € ä�9‰9�Q‹<Ðr7   c                 ó   — t        | «      S r:   )r›   r�   s    r(   Úsimple_invoke_subgraphr�   ·   s   € Ü! !Ó$Ð$r7   c           
   +   óŽ   K  — t        j                  t        ||d¬«      }t         |ddddd¬«       |ddddd¬«      «      –— y ­w)NFr   r   r   r   r!   r$   s         r(   Ú sample_inputs_auto_functionalizerŸ   »   sM   è ø€ Ü× Ñ Ü˜F¨%¸uô€Hô Ù��A�q˜c¨Ô*©H°Q¸¸1À#ÈAÔ,Nóó ùó   ‚AAc                 óV   — t         j                  j                  j                  | |«      S r:   )r“   ÚopsÚtestlibÚmutating_custom_opr{   s     r(   Úsimple_auto_functionalizer¥   Ä   s   € Ü�9‰9×Ñ×/Ñ/°°1Ó5Ð5r7   c              +   ó¸   ‡
K  — t        j                  t        |||¬«      Š
d„ }ˆ
fd„t        d«      D «       \  }}}t	        ||«      }	t        |||||	«      –— y ­w)Nr   c                 ó   — | |z   S r:   © ©ÚscoreÚbÚhÚmÚns        r(   Ú	score_modz/sample_inputs_flex_attention.<locals>.score_modÍ   s   € Ø�q‰yÐr7   c           	   3   ó:   •K  — | ]  } ‰d d dddd ¬«      –— Œ y­w)r   é€   é   r   r   Nr¨   ©Ú.0Ú_r'   s     €r(   ú	<genexpr>z/sample_inputs_flex_attention.<locals>.<genexpr>Ð   s#   øè ø€ ÒI¸1‰x˜˜1˜c 1¨#°A×6Ð6ÑIùó   ƒé   )r"   r#   r   Úranger   r   )r%   r   r   r   r&   r¯   ÚqÚkÚvÚ
block_maskr'   s             @r(   Úsample_inputs_flex_attentionr¾   È   s[   øè ø€ Ü× Ñ Ü˜F¨%¸}ô€Hòó JÄÀaÃÔI�G€A€qˆ!Ü)¨!¨QÓ/€JÜ
�a˜˜A˜y¨*Ó
5Ó5ùs   ƒAAc              +   óÌ  ‡K  — t        j                  t        ||d¬«      Šd„ }d„ }ˆfd„t        d«      D «       \  }}}	t	        |dddd|¬	«      }
d
|j                  d«      dz  z  }t        |||	||
j                  «       |i «      \  }}}t        |||	|j                  «       |j                  «       t        j                  |«      d |d |
j                  «       |i ddf¬«      –— y ­w)NFr   c                 ó   — | S r:   r¨   r©   s        r(   r¯   z8sample_inputs_flex_attention_backward.<locals>.score_modÜ   ó   € Øˆr7   c                 ó   — ||k\  S r:   r¨   )r«   r¬   r­   r®   s       r(   Úmask_modz7sample_inputs_flex_attention_backward.<locals>.mask_modß   s   € Ø�A‰vˆr7   c           	   3   ó:   •K  — | ]  } ‰d d dddd ¬«      –— Œ y­w©r   r±   é   r   r   Nr¨   r³   s     €r(   r¶   z8sample_inputs_flex_attention_backward.<locals>.<genexpr>â   ó#   øè ø€ ÒJ¸A‰x˜˜1˜c 2¨3°Q×7Ð7ÑJùr·   r¸   r   r±   ©ÚBÚHÚQ_LENÚKV_LENr   r+   éÿÿÿÿç      à?r¨   r   )r"   r#   r   r¹   r   r1   Úflex_attention_hopÚas_tupler   Údetachr“   Ú	rand_like)r%   r   r   r   r&   r¯   rÃ   rº   r»   r¼   r½   ÚscaleÚoutÚ	logsumexprµ   r'   s                  @r(   Ú%sample_inputs_flex_attention_backwardrÖ   Õ   sí   øè ø€ ô × Ñ Ü˜F¨%¸uô€Hòòó KÄÀqÃÔJ�G€A€qˆ!Ü" 8¨q°A¸SÈÐU[Ô\€JØ�!—&‘&˜“* Ñ#Ñ#€EÜ*Ø	ˆ1ˆa�˜J×/Ñ/Ó1°5¸"óÑ€Cˆ�Aô Ø	àˆq�#—*‘*“, 	× 0Ñ 0Ó 2´E·O±OÀCÓ4HÈ$Ø�t˜Z×0Ñ0Ó2Ø�2�r˜2ð
ôó ùs   ƒC!C$c              +   ó   ‡‡K  — t        j                  t        ||d¬«      Št        j                  dd|t        j
                  ¬«      Šd„ }ˆfd„}ˆfd„t        d	«      D «       \  }}}	t        |d
d
dd|¬«      }
d|j                  d«      dz  z  }t        |||	||
j                  «       |i «      \  }}}t        |||	|j                  «       |j                  «       t        j                  |«      d |d |
j                  «       |i ddf¬«      –— y ­w)NFr   r¨   r±   )r   r   c                 ó   — | S r:   r¨   r©   s        r(   r¯   zIsample_inputs_flex_attention_backward_explicit_buffers.<locals>.score_modú   rÁ   r7   c                 ó   •— |‰z   |k\  S r:   r¨   )r«   r¬   r­   r®   Úmask_offsets       €r(   rÃ   zHsample_inputs_flex_attention_backward_explicit_buffers.<locals>.mask_modý   s   ø€ Ø�;‰ !Ñ#Ð#r7   c           	   3   ó:   •K  — | ]  } ‰d d dddd ¬«      –— Œ y­wrÅ   r¨   r³   s     €r(   r¶   zIsample_inputs_flex_attention_backward_explicit_buffers.<locals>.<genexpr>   rÇ   r·   r¸   r   rÈ   r+   rÍ   rÎ   r   )r"   r#   r   r“   ÚfullÚint32r¹   r   r1   rÏ   rÐ   r   rÑ   rÒ   )r%   r   r   r   r&   r¯   rÃ   rº   r»   r¼   r½   rÓ   rÔ   rÕ   rµ   r'   rÚ   s                  @@r(   Ú6sample_inputs_flex_attention_backward_explicit_buffersrÞ   ò   s  ùè ø€ ô × Ñ Ü˜F¨%¸uô€Hô —*‘*˜R ¨V¼5¿;¹;ÔG€Kòô$ó KÄÀqÃÔJ�G€A€qˆ!Ü" 8¨q°A¸SÈÐU[Ô\€JØ�!—&‘&˜“* Ñ#Ñ#€EÜ*Ø	ˆ1ˆa�˜J×/Ñ/Ó1°5¸"óÑ€Cˆ�Aô Ø	àˆq�#—*‘*“, 	× 0Ñ 0Ó 2´E·O±OÀCÓ4HÈ$Ø�t˜Z×0Ñ0Ó2Ø�2�r˜2ð
ôó ùs   „D
Dc                 ón   — t         j                  j                  j                  | |||||||||	|
|||«      S r:   )r“   r¢   Úhigher_orderÚflex_attention_backward)ÚqueryÚkeyÚvaluerÔ   rÕ   Úgrad_outÚgrad_logsumexpÚfw_graphÚjoint_graphr½   rÓ   Úkernel_optionsÚscore_mod_other_buffersÚmask_mod_other_bufferss                 r(   Úsimple_flex_attention_backwardrì     sK   € ô  �9‰9×!Ñ!×9Ñ9ØØØØØØØØØØØØØØóð r7   c           
   +   óž   K  — t        j                  t        ||d¬«      }t        t	        j
                  d«       |ddddd¬«      «      –— y ­w)NFr   r¸   r   é   r   r   )r"   r#   r   r   r“   Útensorr$   s         r(   Úsample_inputs_while_looprð   2  sI   è ø€ Ü× Ñ Ü˜F¨%¸uô€Hô Ü�‰�Q‹Ù��A�q˜c¨Ô*óó ùs   ‚AAc                 óT   — d„ }d„ }t         j                  j                  ||| |f«      S )Nc                 ó   — | dkD  S ©Nr   r¨   ©Úiter_tr3   s     r(   Úcond_fnz"simple_while_loop.<locals>.cond_fn=  ó   € Ø˜‰zÐr7   c                 ó,   — | dz
  |j                  «       fS ©Nr   r�   rô   s     r(   Úbody_fnz"simple_while_loop.<locals>.body_fn@  ó   € Ø˜‰z˜1Ÿ5™5›7Ð"Ð"r7   )r“   Ú_higher_order_opsÚ
while_loop©rõ   r3   rö   rú   s       r(   Úsimple_while_looprÿ   <  s-   € òò#ô ×"Ñ"×-Ñ-¨g°wÀÈÀÓLÐLr7   c                 óf   — d„ }d„ }t         j                  j                  ||| |ft        «       «      S )Nc                 ó   — | dkD  S ró   r¨   rô   s     r(   rö   z/simple_while_loop_stack_output.<locals>.cond_fnG  r÷   r7   c                 ó,   — | dz
  |j                  «       fS rù   r�   rô   s     r(   rú   z/simple_while_loop_stack_output.<locals>.body_fnJ  rû   r7   )r“   rü   Úwhile_loop_stack_outputÚtuplerþ   s       r(   Úsimple_while_loop_stack_outputr  F  s6   € òò#ô ×"Ñ"×:Ñ:Ø�˜6 1˜+¤u£wóð r7   c           
   +   óŽ   K  — t        j                  t        ||d¬«      }t         |ddddd¬«       |ddddd¬«      «      –— y ­w)NFr   r   r¸   rî   r   r   r!   r$   s         r(   Úsample_inputs_local_map_hopr  R  sN   è ø€ ä× Ñ Ü˜F¨%¸uô€Hô Ù��A�q˜c¨Ô*Ù��A�q˜c¨Ô*óó ùr    c                 óT  — d„ }t         j                  j                  |«      }t         j                  j	                  «       st        d«      ‚ddlm}  |«        |«        |«       f |«        |«        |«       ffdœ|j                  d<   t         j                  j                  || |«      S )Nc                 óD   — | j                  «       |j                  «       z   S r:   )r,   r.   )Úinp1Úinp2s     r(   Úbody_gmz%simple_local_map_hop.<locals>.body_gm^  s   € Ø�x‰x‹z˜DŸH™H›JÑ&Ð&r7   z*Expected torch.distributed to be availabler   )Ú	Replicate)Úin_placementsÚout_placementsÚlocal_map_kwargs)r“   ÚfxÚsymbolic_traceÚdistributedÚis_availableÚAssertionErrorÚ(torch.distributed.tensor.placement_typesr  Úmetarü   Úlocal_map_hop)r
  r  r  Úgmr  s        r(   Úsimple_local_map_hopr  ]  s‘   € ò'ô 
�‰×	 Ñ	  Ó	)€Bä×Ñ×)Ñ)Ô+ÜÐIÓJÐJÝBñ $›+¡y£{±I³KÐ@Ù%›K©«±i³kÐBÐDñ#€B‡G�GÐÑô ×"Ñ"×0Ñ0°°T¸4Ó@Ð@r7   c           
   +   óŒ   K  — t        j                  t        |||¬«      }t         |dddd¬«       |ddddd¬«      «      –— y ­wr‰   r!   r$   s         r(   Úsample_inputs_scanr  p  sL   è ø€ Ü× Ñ Ü˜F¨%¸}ô€Hô Ù��A˜3 QÔ'Ù��A�q˜c¨Ô*óó ùs   ‚AAc                 óJ   — d„ }t         j                  j                  || |«      S )Nc                 ó6   — | |z  |z   }|| j                  «       fS r:   r†   )Úcarryr3   Úresults      r(   Ú
combine_fnzsimple_scan.<locals>.combine_fn{  s    € Ø˜‘˜Q‘ˆØ�u—{‘{“}Ð$Ð$r7   )r“   rü   Úscan)Úinitr=   r!  s      r(   Úsimple_scanr$  z  s$   € ò%ô ×"Ñ"×'Ñ'¨
°D¸"Ó=Ð=r7   c                 ó.   — d„ }t        || | «      d   dz  S )Nc                 ó4   — t        j                  | «      |z  fS r:   rš   )r3   Úys     r(   Úfnzsimple_invoke_quant.<locals>.fn†  s   € Ü—	‘	˜!“˜qÑ Ð"Ð"r7   r   ç       @)Úquant_tracer©r3   r(  s     r(   Úsimple_invoke_quantr,  …  s"   € ò#ô ˜˜A˜qÓ! !Ñ$ sÑ*Ð*r7   c                 ó,   — d„ }t        || «      d   dz  S )Nc                 ó.   — t        j                  | «      fS r:   rš   r�   s    r(   r(  z&simple_invoke_quant_packed.<locals>.fn�  s   € Ü—	‘	˜!“ˆÐr7   r   r)  )r   r+  s     r(   Úsimple_invoke_quant_packedr/  Œ  s    € òô ˜r 1Ó% aÑ(¨3Ñ.Ð.r7   c           	   +   óv   K  — t        j                  t        ||d¬«      }t         |ddddd¬«      «      –— y ­w)NTr   r   r   r   r!   r$   s         r(   Úsample_inputs_register_hookr1  “  s9   è ø€ Ü× Ñ Ü˜F¨%¸tô€Hô ‘h˜q ! Q¨C°aÔ8Ó
9Ó9ùrŒ   c                 ó    — d„ }t        | |«      S )Nc                 ó   — | dz  S )Nr   r¨   )Úgrads    r(   Úhookz"simple_register_hook.<locals>.hook›  s   € Ø�a‰xˆr7   r   )r3   r5  s     r(   Úsimple_register_hookr6  š  s   € òô ˜A˜tÓ$Ð$r7   c           	   +   óv   K  — t        j                  t        |||¬«      }t         |ddddd¬«      «      –— y ­wr‰   r!   r$   s         r(   Úsample_inputs_inline_asmr8  ¡  r‹   rŒ   c                 óª   — t         j                  j                  rt        | ddt         j                  ¬«      S t        | ddt         j                  ¬«      S )Nzv_mov_b32_e32 $0, $1z=v, v)Úasm_strÚconstraintsr   zmov.f32 $0, $1;z=f,f)r“   ÚversionÚhipr	   Úfloat32r�   s    r(   Úsimple_inline_asmr?  ¨  sI   € Ü‡}�}×ÒÜ%ØØ*ØÜ—-‘-ô	
ð 	
ô "Ø	Ð$°&ÄÇÁôð r7   r"  ÚsimpleF)ÚnameÚvariant_test_nameÚopÚsample_inputs_funcrO   Úsupports_outÚcheck_batched_gradÚcheck_batched_gradgradÚcheck_batched_forward_gradÚ"check_inplace_batched_forward_gradÚsupports_autogradÚsupports_gradgradÚinvoke_subgraphTr   )
rA  rB  rC  rD  rO   rE  rF  rG  rH  rI  ÚnestedÚtriple_nestedr”   Úinvoke_quantr   rý   )rA  rB  rC  rD  rO   rE  rF  rG  rH  rI  rJ  r  Úauto_functionalizer   )rA  rB  rC  rD  )rE  rF  rG  rH  rI  rá   )rE  rF  rG  rH  rI  rJ  rK  Úexplicit_buffersr  rO   Úregister_hookr	   )rE  rF  rG  rH  rI  rJ  r¨   )Mr"   r“   Ú#functorch.experimental.control_flowr   Ú&torch._higher_order_ops.flex_attentionr   rÏ   Ú!torch.nn.attention.flex_attentionr   r   Útorch.testingr   Ú.torch._higher_order_ops.inline_asm_elementwiser	   Ú$torch.testing._internal.common_dtyper
   r   r   Ú#torch.testing._internal.opinfo.corer   r   Ú'torch._higher_order_ops.invoke_subgraphr   Útorch._higher_order_opsr   r   Ú%torch._higher_order_ops.register_hookr   r)   r6   r>   rG   rM   rR   Ú0FIXME_hop_that_doesnt_have_opinfo_test_allowlistÚlibraryÚdefineÚTagÚpt2_compliant_tagÚimplr}   r�   r„   Úregister_faker‡   rŠ   r–   r˜   r›   r�   rŸ   r¥   r¾   rÖ   rÞ   rì   rð   rÿ   r  r  r  r  r$  r*  r,  r/  r1  r6  r8  r?  ÚboolÚhalfÚfloat16r>  r  r  Úhop_dbr¨   r7   r(   ú<module>rh     s  ðó ã Ý 3õ÷ñ õ
 &Ý Qß YÑ Yß CÝ Gß DÝ BòòSòòò
òò,#4Ð 0ðJ ‡�× Ñ Ø!Ø>Ø	�‰×	$Ñ	$ð ô ð ‡�×ÑÐ1°5Ó9ñ'ó :ð'ð ‡�×ÑÐ1°6Ó:ñ'ó ;ð'ð ‡�×ÑÐ1°5Ó9ñ'ó :ð'ð ‡�×ÑÐ:Ó;ñ'ó <ð'ò:òTò:ð ñó ðò%òò6ò
6òò:ò<òDòMò	òòAò&ò>ñ ‹}€ò+ò/ò:ò%ò:òñ ØØ"ØØ-Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàôñ ØØ"Ø!Ø8Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàôñ ØØ"ØØ,Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0ôñ ØØ"ØØ,Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0ôñ ØØ)ØØ,Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0ôñ ØØ"ØØ-Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàôñ ØØ"ØØ8Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàôñ Ø"Ø"Ø%Ø8Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øàôñ ØØ"ØØ3Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øôñ Ø&Ø"Ø)Ø3Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øôñ Ø!Ø"Ø$Ø;Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øôñ ð ØØ"ØØ7ñ	ñ
 ˜5Ÿ=™=¨%¯-©-Ó
8ðð Ø Ø$Ø#(Ø+0óñ ð Ø&Ø"Ø)Ø@ñ	ñ
 ˜5Ÿ=™=¨%¯-©-Ó
8ðð Ø Ø$Ø#(Ø+0ØØóñ ð Ø&Ø,Ø)ØQñ	ñ
 ˜5Ÿ=™=¨%¯-©-Ó
8ðð Ø Ø$Ø#(Ø+0ØØóñ ð ØØ"ØØ6ñ	ð × Ñ ×-Ñ-Ô/ñ ˜UŸ]™]¨E¯M©MÔ:à™K›MÐ*ðð Ø Ø$Ø#(Ø+0óñ  ØØ"ØØ6Ù˜UŸZ™Z¨¯©Ó4ØØ Ø$Ø#(Ø+0Øôñ ð Ø%Ø"ØØ3ñ	ñ
 ˜5Ÿ=™=Ó
)ðð Ø Ø$Ø#(Ø+0Øóðyi
�r7   