
    %Vjiz                     T    d Z ddlZddlmZmZmZm	Z
 d Zd Zd Z	d Zdadadad	 ZdS )
z
This module contains pre-dispatch wrappers for functorch operations
that enable proper tracing in PT2 non-strict export/compile fx graph.
    N)_add_batch_dim_remove_batch_dim_vmap_decrement_nesting_vmap_increment_nestingc                     ddl m}  |            }|r)t          j                            t
          | f| ||          S t          | ||          }|S )zn
    Thin wrapper around torch._C._add_batch_dim that is used to proxy in
    PT2 export/compile fx graph
    r   +_maybe_find_pre_dispatch_tf_mode_for_export)torch._export.utilsr	   torch	overrideshandle_torch_functionr   _add_batch_dim_impl)self	batch_dimlevelr	   moderess         V/root/voice-cloning/.venv/lib/python3.11/site-packages/torch/_functorch/predispatch.pyr   r      sl    
 POOOOO6688D 
44TGT9e
 
 	
 dIu
5
5CJ    c                     ddl m}  |            }|r*t          j                            t
          | f| |||          S t          | |||          }|S )zq
    Thin wrapper around torch._C._remove_batch_dim that is used to proxy in
    PT2 export/compile fx graph
    r   r   )r
   r	   r   r   r   r   _remove_batch_dim_impl)r   r   
batch_sizeout_dimr	   r   r   s          r   r   r   )   sp    
 POOOOO6688D 
44weZ
 
 	
 !uj'
B
BCJr   c                     ddl m}  |            }|r(t          j                            t
          | f| |          S t          | |          }|S )p
    Thin wrapper around torch._C._vmap_increment_nesting that is used
    to proxy in export/compile graph
    r   r   )r
   r	   r   r   r   r   _vmap_increment_nesting_impl)r   
randomnessr	   r   r   s        r   r   r   ;   sh    
 POOOOO6688D 
44#j]J

 
 	
 'z:
>
>CJr   c                      ddl m}   |             }|r%t          j                            t
          d          S t                      S )r   r   r    )r
   r	   r   r   r   r   _vmap_decrement_nesting_impl)r	   r   s     r   r   r   L   s[    
 POOOOO6688D 
44#
 
 	
 ()))r   Fc                  4   ddl m}   |             }|r%t          j                            t
          d          S t          rdS t          ddl}|	                                at          5  t          r	 ddd           dS ddl
}|j                            dd          dk    rnda	 ddd           dS t          j                            dd	d
          addlm fd} |t          j        j        j        j                    |t          j        j        j        j                    |t          j        j        j        j                    |t          j        j        j        j                    |t          j        j        j        j                    |t          j        j        j        j                    |t          j        j        j        j                    |t          j        j        j        j                   daddd           dS # 1 swxY w Y   dS )zH
    Lazy loading of vmap decompositions with pre-dispatch support.
    r   r   r   NPYTORCH_JIT1TatenIMPLFuncTorchBatched)decomposition_tablec                 v    | v r#t                               | |                     d S t          d|            )Nz!could not find decomposition for )VMAP_DECOMPOSITIONS_LIBimplRuntimeError)decompr'   s    r   #_register_python_decomposition_vmapzElazy_load_decompositions.<locals>._register_python_decomposition_vmap   sH    ,,,',,V5H5PQQQQQ"#Ov#O#OPPPr   )r
   r	   r   r   r   lazy_load_decompositionsDECOMPOSITIONS_LOADEDDECOMPOSITIONS_LOCK	threadingLockosenvirongetlibraryLibraryr)   torch._decompr'   opsr$   mse_loss_backwarddefaultsmooth_l1_loss_backwardhuber_loss_backwardnll_loss_forwardnll_loss2d_forwardnll_loss_backwardnll_loss2d_backwardaddr)r	   r   r1   r3   r-   r'   s        @r   r.   r.   c   s    POOOOO6688D S445MrRRR   "'nn..	 %% %%  	%% %% %% %% %% %% %% %% 				
}c22c999$(!%% %% %% %% %% %% %% %% #(-"7"7F.#
 #
 	655555	Q 	Q 	Q 	Q 	Q 	,+EIN,L,TUUU++IN2:	
 	
 	
 	,+EIN,N,VWWW++EIN,K,STTT++EIN,M,UVVV++EIN,L,TUUU++EIN,N,VWWW++EIN,?,GHHH $K%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %%s   (	H>'H2EHHH)__doc__r   torch._C._functorchr   r   r   r   r   r    r   r   r/   r0   r)   r.   r   r   r   <module>rE      s    
              $  $  "* * *$    ;% ;% ;% ;% ;%r   