o
    0h
	                     @   sT   d dl Z d dlZd dlZd dlZdd Ze jdd Ze jdddZdd	d
ZdS )    Nc                   C   s$   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 r   r   Y/var/www/vscode/kcb/lib/python3.10/site-packages/torch/testing/_internal/common_mkldnn.pybf32_is_not_fp32   s
   r
   c               	   c   s8    t  } zt d d V  W t |  d S t |  w )Nhighest)r   get_float32_matmul_precisionset_float32_matmul_precision)old_matmul_precisionr   r   r	   bf32_off   s   
r   h㈵>c              	   c   sP    t  }| j}zt d || _d V  W t | || _d S t | || _w )Nmedium)r   r   	precisionr   )selfbf32_precisionr   old_precisionr   r   r	   bf32_on   s   



r   c                    s&   dd  fddfdd}|S )Nc                 S   s2   t   |  W d    d S 1 sw   Y  d S N)r   r   function_callr   r   r	   with_bf32_disabled1   s   "z+bf32_on_and_off.<locals>.with_bf32_disabledc                    s6   t |   |  W d    d S 1 sw   Y  d S r   )r   r   )r   r   r	   with_bf32_enabled5   s   "z*bf32_on_and_off.<locals>.with_bf32_enabledc                    s8   t j}t|  t fdd}|S )Nc                     s   t | D ]\}}| |< qt }d v r!|o t d jdk}d v r.|o- d tjk}|rJ d  fdd  d  fdd d S di   d S )	Ndevicecpudtyper   c                          di S Nr   r   r   fkwargsr   r	   <lambda>G       zCbf32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>c                      r   r    r   r   r!   r   r	   r$   H   r%   r   )zipr
   r   r   typefloat)argsr#   kvcond)	arg_namesr"   r   r   )r#   r	   wrapped=   s   
z1bf32_on_and_off.<locals>.wrapper.<locals>.wrapped)inspect	signature
parameterstuplekeys	functoolswraps)r"   paramsr.   )r   r   )r-   r"   r	   wrapper9   s
   z bf32_on_and_off.<locals>.wrapperr   )r   r7   r   )r   r   r   r	   bf32_on_and_off0   s   r8   )r   )	
contextlibr4   r/   r   r
   contextmanagerr   r   r8   r   r   r   r	   <module>   s   
	