a
    þdÂ  ã                   @   sT   d dl Z d dlZd dlmZ d dlmZ d dlmZ d dlmZ G dd„ deƒZ	dS )é    N)ÚTensor)ÚLiteral)ÚTPUPrecision)Ú_convert_fp_tensorc                       sV   e Zd ZU dZdZed ed< ddœ‡ fdd„Zeedœd	d
„Z	ddœdd„Z
‡  ZS )ÚTPUBf16Precisionz$Plugin that enables bfloats on TPUs.Zbf16Ú	precisionN)Úreturnc                    s   t ƒ  ¡  dtjd< d S )NÚ1ÚXLA_USE_BF16)ÚsuperÚ__init__ÚosÚenviron©Úself©Ú	__class__© út/var/www/html/stable-diffusion-webui/venv/lib/python3.9/site-packages/lightning_fabric/plugins/precision/tpu_bf16.pyr      s    
zTPUBf16Precision.__init__)Údatar   c                 C   s   t |tjƒS )N)r   ÚtorchZbfloat16)r   r   r   r   r   Úconvert_input!   s    zTPUBf16Precision.convert_inputc                 C   s   t j dd ¡ d S )Nr
   )r   r   Úpopr   r   r   r   Úteardown$   s    zTPUBf16Precision.teardown)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   r   r   Ú__classcell__r   r   r   r   r      s
   
r   )
r   r   r   Ztyping_extensionsr   Z"lightning_fabric.plugins.precisionr   Z(lightning_fabric.plugins.precision.utilsr   r   r   r   r   r   Ú<module>   s   