
    sg
	                     |    d dl Z d dlZd dlZd dlZd Ze j
                  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     X/var/www/html/venv/lib/python3.12/site-packages/torch/testing/_internal/common_mkldnn.pybf32_is_not_fp32r      s7    >>  --/99557r   c               #      K   t        j                         } 	 t        j                  d       d  t        j                  |        y # t        j                  |        w xY ww)Nhighest)r   get_float32_matmul_precisionset_float32_matmul_precision)old_matmul_precisions    r   bf32_offr      sJ      ==?A**95**+?@**+?@s   A!A A!AA!c              #     K   t        j                         }| j                  }	 t        j                  d       || _        d  t        j                  |       || _        y # t        j                  |       || _        w xY ww)Nmedium)r   r   	precisionr   )selfbf32_precisionr   old_precisions       r   bf32_onr      sj      ==?NNM'**84'**+?@& 	**+?@&s   !B A! B!A??Bc                 (     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_bf32_disabledz+bf32_on_and_off.<locals>.with_bf32_disabled1   s!    Z 	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_enabledz*bf32_on_and_off.<locals>.with_bf32_enabled5   s'    T>* 	O	 	 	s   (c                      t        j                         j                  }t        |j	                               t        j                          fd       }|S )Nc                  :   t        |       D ]
  \  }}||<    t               }dv r)|xr% t        j                  d         j                  dk(  }dv r|xr d   t        j
                  k(  }|r! d   fd        d   fd       y  di  y )Ndevicecpudtyper   c                        di S Nr
   r
   fkwargss   r   <lambda>zCbf32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>G   s    1;v; r   c                        di S r(   r
   r)   s   r   r,   zCbf32_on_and_off.<locals>.wrapper.<locals>.wrapped.<locals>.<lambda>H   s    !+f+ r   r
   )zipr   r   r$   typefloat)	argsr+   kvcond	arg_namesr*   r   r!   s	    `   r   wrappedz1bf32_on_and_off.<locals>.wrapper.<locals>.wrapped=   s    It, 1q	#%D6!NfX.>!?!D!D!M& @EKK!?"6&>3FG!&.2EFFr   )inspect	signature
parameterstuplekeys	functoolswraps)r*   paramsr6   r5   r   r!   s   `  @r   wrapperz bf32_on_and_off.<locals>.wrapper9   sK    ""1%00&++-(				 
	 r   r
   )r   r?   r   r!   s   ` @@r   bf32_on_and_offr@   0   s    * Nr   )gh㈵>)	
contextlibr<   r7   r   r   contextmanagerr   r   r@   r
   r   r   <module>rC      sS        A A 	' 	' r   