
    sh06                        S SK r S SKrS SKrS SKJr  S SKJrJr  S SKJ	r	  S SK
Jr  S SKJrJr  S SKJrJrJr  S SKJr  S S	KJrJr  S
 rS rS rS rS r/ SQr\R<                  R?                  SS\R@                  RB                  S9  \R<                  RE                  SS5      S 5       r#\R<                  RE                  SS5      S 5       r$\R<                  RK                  S5      S 5       r&S r'S r(S r)\S 5       r*S r+S r,S r-S r.S  r/S! r0S" r1S# r2\" 5       r3S$ r4S% r5\" S&S'\2\1\" \Rl                  \Rn                  5      S(S(S(S(S(S(S(S)9\" S*S'\+\)\" \Rl                  \Rn                  5      S(S(S(S(S(S+S(S)9\" S,S'\\\" \Rl                  \Rn                  5      S(S(S(S(S(S-9
\" S,S.\\\" \Rl                  \Rn                  5      S(S(S(S(S(S-9
\" S,S/\\\" \Rl                  \Rn                  5      S(S(S(S(S(S-9
\" S0S'\(\'\" \Rl                  \Rn                  5      S(S(S(S(S(S+S(S)9\" S1S'\4\)\" \Rl                  \Rn                  5      S(S(S(S(S(S+\" \Rp                  S2S35      \" \Rp                  S2S45      \" \Rp                  S2S55      \" \Rp                  S2S65      4S(S79\" S8S'\5\)\" \Rl                  \Rn                  5      S(S(S(S(S(S+S(S)9\" S9S'\0\/\" \Rl                  \Rn                  5      S(S(S(S(S(S(S:9\" S;S'\-\,\" \Rl                  \Rn                  5      S(S(S(S(S(S(S:9\" S<S'\\.\" \Rr                  \Rt                  5      S(S(S(S(S(\" \Rp                  S2S35      \" \Rp                  S2S45      \" \Rp                  S2S55      \" \Rp                  S2S65      4\/S=9\" S>S'\\.\" \Rr                  \Rt                  5      S(S(S(S(S(\" \Rp                  S2S35      \" \Rp                  S2S45      \" \Rp                  S2S55      \" \Rp                  S2S65      4\/S=9/r;g)?    Nmap)_create_empty_block_maskflex_attention)make_tensor)onlyCUDA)all_types_andcustom_types)DecorateInfoOpInfoSampleInput)mark_compile_region)InvokeQuantinvoke_quant_packedc              +      #    [         R                  " [        XUS9n[        U" SSSSSS9U" SSSSSS9/U" SSSS9U" SSSS94S9v   g 7f)Ndevicedtyperequires_grad   皙?lowhigh   )args	functoolspartialr   r   opinfor   r   r   kwargsmake_args         r/Users/tiagomarins/Projetos/claudeai/copy_bank/venv/lib/python3.13/site-packages/torch/testing/_internal/hop_db.pysample_inputs_mapr%      sg       F}H 	!Qs	+XaA3Q-OPqc*HQCa,HI s   AA
c                     U S   R                  5       R                  S5      U-  U S   UR                  5       -   R                  5       R	                  U S   R                  5       5      /$ )Nr   g      ?r   )cosadd_sincos_viewsizexy0y1s      r$   inner_fr1      sQ    aDHHJOOC 2%!rvvx'='='?'D'DQqTYY['QRR    c                      S n[        X0X5      $ )Nc                     [        XU5      $ Nr1   r-   s      r$   fsimple_map.<locals>.f    s    qb!!r2   r   )xsr/   r0   r7   s       r$   
simple_mapr:      s    " qbr2   c                      S n[        X0X5      $ )Nc                      S n[        X0X5      $ )Nc                     [        XU5      $ r5   r6   r-   s      r$   f2"nested_map.<locals>.f1.<locals>.f2(   s    1"%%r2   r   xxr/   r0   r>   s       r$   f1nested_map.<locals>.f1'   s    	& 22""r2   r   r9   r/   r0   rB   s       r$   
nested_maprE   &   s    # rrr2   c                      S n[        X0X5      $ )Nc                      S n[        X0X5      $ )Nc                      S n[        X0X5      $ )Nc                     [        XU5      $ r5   r6   r-   s      r$   r>   5triple_nested_map.<locals>.f0.<locals>.f1.<locals>.f23   s    qb))r2   r   r@   s       r$   rB   )triple_nested_map.<locals>.f0.<locals>.f12   s    * rr&&r2   r   rD   s       r$   f0triple_nested_map.<locals>.f01   s    	' 22""r2   r   )r9   r/   r0   rL   s       r$   triple_nested_maprN   0   s    # rrr2   )custom_function_callautograd_function_applyrun_and_save_rng_staterun_with_rng_state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foreach_mapaoti_call_delegateztestlib::mutating_custom_opz8(Tensor(a!) x, Tensor(b!) z) -> (Tensor, Tensor, Tensor))tagscpuc                 R    U R                  S5        UR                  S5        XX-   4$ N   r(   r.   zs     r$   foo_impl_cpurs   r   $    FF1IFF1I;r2   cudac                 R    U R                  S5        UR                  S5        XX-   4$ rn   rp   rq   s     r$   foo_impl_cudarw   y   rt   r2   c                     XX-   4$ r5    rq   s     r$   foo_impl_abstractrz      s    ;r2   c           
   +   j   #    [         R                  " [        XUS9n[        U" SSSSSS95      v   g 7fNr   r   r   r   r   r    s         r$   sample_inputs_condr}      6       F}H hq!QCa8
99   13c                 \    [         R                  " U R                  5       S:  S S U /5      $ )Nr   c                 $    U R                  5       4$ r5   r'   r.   s    r$   <lambda>simple_cond.<locals>.<lambda>   s    aeegZr2   c                 $    U R                  5       4$ r5   )r)   r   s    r$   r   r      s    AEEG:r2   )torchcondsumr   s    r$   simple_condr      s&    ::aeegk#79MPQsSSr2   c           
   +   j   #    [         R                  " [        XUS9n[        U" SSSSSS95      v   g 7fr|   r   r    s         r$   sample_inputs_invoke_subgraphr      r~   r   c                 .    [         R                  " U 5      $ r5   r   r)   r   s    r$   fn_for_invoke_subgraphr      s    99Q<r2   c                     [        U 5      $ r5   )r   r   s    r$   simple_invoke_subgraphr      s    !!$$r2   c              +   |   #    [         R                  " [        XSS9n[        U" SSSSSS9U" SSSSSS95      v   g 7f)NFr   r   r   r   r   r    s         r$    sample_inputs_auto_functionalizer      sJ       FuH Aqc*HQ1#A,N s   :<c                 T    [         R                  R                  R                  X5      $ r5   )r   opstestlibmutating_custom_oprq   s     r$   simple_auto_functionalizer      s    99//55r2   c              +      ^
#    [         R                  " [        XUS9m
S nU
4S j[        S5       5       u  pgn[	        Xg5      n	[        XgXU	5      v   g 7f)Nr   c                 
    X-   $ r5   ry   )scorebhmns        r$   	score_mod/sample_inputs_flex_attention.<locals>.score_mod   s
    yr2   c           
   3   :   >#    U  H  nT" S S SSSS S9v   M     g7f)r         r   r   Nry   ).0_r#   s     r$   	<genexpr>/sample_inputs_flex_attention.<locals>.<genexpr>   s      I1x1c1#A6s      )r   r   r   ranger   r   )r!   r   r   r   r"   r   qkv
block_maskr#   s             @r$   sample_inputs_flex_attentionr      sP       F}H JaIGA!)!/J
aA*
55s   AAc              +      #    [         R                  " [        XSS9n[        [        R
                  " S5      U" SSSSSS95      v   g 7f)NFr   r   r      r   r   )r   r   r   r   r   tensorr    s         r$   sample_inputs_while_loopr      sF       FuH QAqc* s   AAc                 P    S nS n[         R                  R                  X#X45      $ )Nc                     U S:  $ )Nr   ry   iter_tr.   s     r$   cond_fn"simple_while_loop.<locals>.cond_fn   s    zr2   c                 ,    U S-
  UR                  5       4$ )Nr   r   r   s     r$   body_fn"simple_while_loop.<locals>.body_fn   s    z1557""r2   )r   _higher_order_ops
while_loop)r   r.   r   r   s       r$   simple_while_loopr      s)    # ""--gLLr2   c              +   z   #    [         R                  " [        XUS9n[        U" SSSSS9U" SSSSSS95      v   g 7fr|   r   r    s         r$   sample_inputs_scanr      sI       F}H A3Q'Aqc* s   9;c                 H    S n[         R                  R                  X U5      $ )Nc                 2    X-  U-   nX R                  5       4$ r5   )clone)carryr.   results      r$   
combine_fnsimple_scan.<locals>.combine_fn   s    Q{{}$$r2   )r   r   scan)initr9   r   s      r$   simple_scanr      s"    % ""''
"==r2   c                 ,    S n[        XU 5      S   S-  $ )Nc                 6    [         R                  " U 5      U-  4$ r5   r   )r.   ys     r$   fnsimple_invoke_quant.<locals>.fn   s    		!q ""r2   r          @)quant_tracerr.   r   s     r$   simple_invoke_quantr      s     # q!!$r))r2   c                 *    S n[        X5      S   S-  $ )Nc                 0    [         R                  " U 5      4$ r5   r   r   s    r$   r   &simple_invoke_quant_packed.<locals>.fn   s    		!r2   r   r   )r   r   s     r$   simple_invoke_quant_packedr      s     r%a(2--r2   r   simpleF)namevariant_test_nameopsample_inputs_funcdtypessupports_outcheck_batched_gradcheck_batched_gradgradcheck_batched_forward_grad"check_inplace_batched_forward_gradsupports_autogradsupports_gradgradinvoke_subgraphTr   )
r   r   r   r   r   r   r   r   r   r   nestedtriple_nestedr   invoke_quantTestHOPtest_aot_exporttest_pre_dispatch_exporttest_serialize_exporttest_retrace_export)r   r   r   r   r   r   r   r   r   r   r   skipsr   r   r   )r   r   r   r   r   r   r   r   r   r   r   auto_functionalizer   )r   r   r   r   r   r   r   r   r   r   r   
decoratorsflex_attention_backward)<r   unittestr   #functorch.experimental.control_flowr   !torch.nn.attention.flex_attentionr   r   torch.testingr   *torch.testing._internal.common_device_typer   $torch.testing._internal.common_dtyper	   r
   #torch.testing._internal.opinfo.corer   r   r   'torch._higher_order_ops.invoke_subgraphr   torch._higher_order_opsr   r   r%   r1   r:   rE   rN   0FIXME_hop_that_doesnt_have_opinfo_test_allowlistlibrarydefineTagpt2_compliant_tagimplrs   rw   register_fakerz   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   boolhalfexpectedFailurefloat16float32hop_dbry   r2   r$   <module>r	     s      3 V % ? L Q Q G DS
64 0@   !>		$	$   159 : 16: ; :; <:T:  %6
6M> }*. "-UZZ4 $#(+0 "!8UZZ4 $#(+0 ",UZZ4 $#(+0 ",UZZ4 $#(+0 ),UZZ4 $#(+0 "-UZZ4 $#(+0 "8UZZ4 $#(+0 119>OP(()5O 119>UV119>ST
  -0 ""%8UZZ4 $#(+0 "3UZZ4 $#(+0 !"$;UZZ4 $#(+0 "7EMM5==9 $#(+0119>OP(()5O 119>UV119>ST
 :'* &"7EMM5==9 $#(+0119>OP(()5O 119>UV119>ST
 :'Q}
r2   