o
     i                     @   s   U d dl Z d dlZd dlZddlmZ ddlmZmZmZmZ zddl	m
Z
 W n ey2   dZ
Y nw e dZejdu Zeed< d	Zeed
< dd Zedd Zedd ZdS )    N   )_cpp_lib)
checkpointget_optimal_checkpoint_policylist_operatorsselective_checkpoint_wrapper)__version__z0.0.0xformers_has_cpp_libraryT_is_opensourcec                    s   d  fdd}|S )Nc                      s   d u r  S )N r   funcvaluer   E/home/ubuntu/.local/lib/python3.10/site-packages/xformers/__init__.pyfunc_wrapper#   s   z"compute_once.<locals>.func_wrapperr   )r   r   r   r   r   compute_once    s   r   c               	   C   s   t jdddkrdS tj sdS t jdddkrdS tjddk r'dS zd	d l} W dS  tt	fyA   t
jd
dd Y dS w )NXFORMERS_ENABLE_TRITON01TFXFORMERS_FORCE_DISABLE_TRITONcuda)   r   r   zJA matching Triton is not available, some optimizations will not be enabled)exc_info)osenvirongettorchr   is_availableget_device_capabilitytritonImportErrorAttributeErrorloggerwarning)r    r   r   r   _is_triton_available,   s$   
r%   c                   C   s   t jddS )Nxformers_pythonDEF)r   libraryLibraryr   r   r   r   get_python_libD   s   r*   )loggingr   r    r   r   r   r   r   versionr   r!   	getLoggerr#   _cpp_library_load_exceptionr
   bool__annotations__r   r   r%   r*   r   r   r   r   <module>   s$   


