
    `i-                         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
dS )    Nc                      t           j        j                                        sdS t           j        j                                        sdS dS NFT)torchbackendsmkldnnis_availableops_is_mkldnn_bf16_supported     y/home/jaya/work/projects/VOICE-AGENT/VIET/agent-env/lib/python3.11/site-packages/torch/testing/_internal/common_mkldnn.pybf32_is_not_fp32r   
   sC    > --// u95577 u4r   c                      t           j        j                                        sdS t           j        j                                        sdS dS r   )r   r   r   r   _C_cpu_is_amx_fp16_supportedr   r   r   tf32_is_not_fp32r      sB    > --// u8=//11 u4r   c               #     K   t           j        j        j        j        } t           j        j        j        j        }	 dt           j        j        j        _        dt           j        j        j        _        d V  | t           j        j        j        _        |t           j        j        j        _        d S # | t           j        j        j        _        |t           j        j        j        _        w xY w)Nieee)r   r   r   matmulfp32_precisionconv)old_matmul_precisionold_conv_precisions     r   reduced_f32_offr      s       >07F.3BG6<$34:"16J$34F"111 7K$34F"1FFFFs   :B, ,8C${Gz?c              #     K   t           j        j        j        j        }t           j        j        j        j        }| j        }	 dt           j        j        j        _        dt           j        j        j        _        || _        d V  |t           j        j        j        _        |t           j        j        j        _        || _        d S # |t           j        j        j        _        |t           j        j        j        _        || _        w xY w)Nbf16r   r   r   r   r   r   	precision)selfbf32_precisionr   r   old_precisions        r   bf32_onr$   '          >07F.3BNM'6<$34:"1'6J$34F"1& 7K$34F"1&&&&&   AC ?D h㈵>c              #     K   t           j        j        j        j        }t           j        j        j        j        }| j        }	 dt           j        j        j        _        dt           j        j        j        _        || _        d V  |t           j        j        j        _        |t           j        j        j        _        || _        d S # |t           j        j        j        _        |t           j        j        j        _        || _        w xY 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                 h    t                      5   |             d d d            d S # 1 swxY w Y   d S N)r   )r!   function_calls     r   with_reduced_f32_disabledz9reduced_f32_on_and_off.<locals>.with_reduced_f32_disabledL   s}     	 	MOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	s   '++c                 n    t          |           5   |             d d d            d S # 1 swxY w Y   d S r.   )r$   )r!   r/   r"   s     r   with_bf32_enabledz1reduced_f32_on_and_off.<locals>.with_bf32_enabledP       T>** 	 	MOOO	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	   *..c                 n    t          |           5   |             d d d            d S # 1 swxY w Y   d S r.   )r+   )r!   r/   r*   s     r   with_tf32_enabledz1reduced_f32_on_and_off.<locals>.with_tf32_enabledT   r3   r4   c                      t          j                   j        }t          |                                          t          j                    fd            }|S )Nc                                          t          |                      d}dv r%|o"t          j        d                   j        dk    }dv r|od         t          j        k    }|ot                      }|ot                      }|s|rJ d         fd           |r d         fd           |r 	d         fd           d S d S  d	i  d S )
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   rA   zJreduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>i       aakk&kk r   c                        di S r=   r   r>   s   r   rA   zJreduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>k   rC   r   r   )updatezipr   r9   typefloatr   r   )
argsr@   cond	bf32_cond	tf32_cond	arg_namesr?   r2   r0   r6   s
    `   r   wrappedz8reduced_f32_on_and_off.<locals>.wrapper.<locals>.wrapped\   sI   MM#i..///D6!!NfX.>!?!?!D!M&  @EK!?3!1!3!3I3!1!3!3I I ))&.:M:M:M:M:MNNN K%%fVn6I6I6I6I6IJJJ K%%fVn6I6I6I6I6IJJJJJK K Fr   )inspect	signature
parameterstuplekeys	functoolswraps)r?   paramsrN   rM   r2   r0   r6   s   `  @r   wrapperz'reduced_f32_on_and_off.<locals>.wrapperX   sv    "1%%0&++--((					 	 	 	 	 	 	 	 
		$ r   r   )r"   r*   rW   r2   r0   r6   s   `` @@@r   reduced_f32_on_and_offrX   K   sr                    2 Nr   )r   )r'   )r   r'   )
contextlibrT   rO   r   r   r   contextmanagerr   r$   r+   rX   r   r   r   <module>r[      s                  	G 	G 	G ' ' ' ' ' ' ' '&& & & & & &r   