
    pi-                         d dl Z d dlZd dlZd dlZd Zd Ze j                  d        Ze j                  dd       Ze j                  d	d       Z	d
dZ
y)    Nc                      t         j                  j                  j                         syt         j                  j                  j                         syyNFT)torchbackendsmkldnnis_availableops_is_mkldnn_bf16_supported     g/opt/services/ai/voice_agent/venv/lib/python3.12/site-packages/torch/testing/_internal/common_mkldnn.pybf32_is_not_fp32r   
   s7    >>  --/99557r   c                      t         j                  j                  j                         syt         j                  j
                  j                         syyr   )r   r   r   r   _C_cpu_is_amx_fp16_supportedr   r   r   tf32_is_not_fp32r      s5    >>  --/88==//1r   c               #     K   t         j                  j                  j                  j                  } t         j                  j                  j
                  j                  }	 dt         j                  j                  j                  _        dt         j                  j                  j
                  _        d  | t         j                  j                  j                  _        |t         j                  j                  j
                  _        y # | t         j                  j                  j                  _        |t         j                  j                  j
                  _        w xY ww)Nieee)r   r   r   matmulfp32_precisionconv)old_matmul_precisionold_conv_precisions     r   reduced_f32_offr      s      >>0077FF..33BBG6<$$34:""16J$$34F""1 7K$$34F""1s!   AE  AD	 6AE 	AEE c              #     K   t         j                  j                  j                  j                  }t         j                  j                  j
                  j                  }| j                  }	 dt         j                  j                  j                  _        dt         j                  j                  j
                  _        || _        d  |t         j                  j                  j                  _        |t         j                  j                  j
                  _        || _        y # |t         j                  j                  j                  _        |t         j                  j                  j
                  _        || _        w xY ww)Nbf16r   r   r   r   r   r   	precision)selfbf32_precisionr   r   old_precisions        r   bf32_onr#   '         >>0077FF..33BBNNM'6<$$34:""1'6J$$34F""1& 7K$$34F""1&!   A)F,AD# 	AF#AE>>Fc              #     K   t         j                  j                  j                  j                  }t         j                  j                  j
                  j                  }| j                  }	 dt         j                  j                  j                  _        dt         j                  j                  j
                  _        || _        d  |t         j                  j                  j                  _        |t         j                  j                  j
                  _        || _        y # |t         j                  j                  j                  _        |t         j                  j                  j
                  _        || _        w xY ww)Ntf32r   )r    tf32_precisionr   r   r"   s        r   tf32_onr)   7   r$   r%   c                 8     d  fdfdfd}|S )Nc                 P    t               5   |        d d d        y # 1 sw Y   y xY wN)r   )r    function_calls     r   with_reduced_f32_disabledz9reduced_f32_on_and_off.<locals>.with_reduced_f32_disabledL   s"     	O	 	 	s   %c                 V    t        |       5   |        d d d        y # 1 sw Y   y xY wr,   )r#   )r    r-   r!   s     r   with_bf32_enabledz1reduced_f32_on_and_off.<locals>.with_bf32_enabledP   '    T>* 	O	 	 	   (c                 V    t        |       5   |        d d d        y # 1 sw Y   y xY wr,   )r)   )r    r-   r(   s     r   with_tf32_enabledz1reduced_f32_on_and_off.<locals>.with_tf32_enabledT   r1   r2   c                      t        j                         j                  }t        |j	                               t        j                          fd       }|S )Nc                     j                  t        |              d}dv r)|xr% t        j                  d         j                  dk(  }dv r|xr d   t        j
                  k(  }|xr
 t               }|xr
 t               }|s|r6 d   fd       |r d   fd       |r 	d   fd       y y  d	i  y )
NTdevicecpudtyper    c                        di S Nr   r   fkwargss   r   <lambda>zJreduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>g   s    !+f+ r   c                        di S r;   r   r<   s   r   r?   zJreduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>i       ak&k r   c                        di S r;   r   r<   s   r   r?   zJreduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>k   rA   r   r   )updatezipr   r7   typefloatr   r   )
argsr>   cond	bf32_cond	tf32_cond	arg_namesr=   r0   r.   r4   s
    `   r   wrappedz8reduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped\   s    MM#i./D6!NfX.>!?!D!D!M& @EKK!?3!1!3I3!1!3II)&.:MN%fVn6IJ%fVn6IJ  Fr   )inspect	signature
parameterstuplekeys	functoolswraps)r=   paramsrL   rK   r0   r.   r4   s   `  @r   wrapperz'reduced_f32_on_and_off.<locals>.wrapperX   sK    ""1%00&++-(				 
	$ r   r   )r!   r(   rU   r0   r.   r4   s   `` @@@r   reduced_f32_on_and_offrV   K   s    2 Nr   ){Gz?)h㈵>)rW   rX   )
contextlibrR   rM   r   r   r   contextmanagerr   r#   r)   rV   r   r   r   <module>r[      sr        	G 	G ' ' ' '&&r   