o
    wZh
	                     @   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backendsZmkldnnZis_availableopsZ_is_mkldnn_bf16_supported r   r   T/var/www/auris/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 )NZ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 )NZmedium)r   r   	precisionr	   )selfbf32_precisionr
   Z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   Z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cpuZ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vZ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   r.   r   )r   r   r   r   bf32_on_and_off0   s   r/   )r   )	
contextlibr+   r&   r   r   contextmanagerr   r   r/   r   r   r   r   <module>   s   
	