U
    yh                     @   s   U d dl mZ d dlmZ d dlZddlmZ dddd	gZ	e
d
ddZee
d
ddZeeee
ddd	Zedee
dddZdaee ed< dd ZdS )    )	lru_cache)OptionalN   )Libraryis_builtis_availableis_macos13_or_neweris_macos_or_newer)returnc                   C   s   t jjS )zReturn whether PyTorch is built with MPS support.

    Note that this doesn't necessarily mean MPS is available; just that
    if this PyTorch binary were run a machine with working MPS drivers
    and devices, we would be able to use it.
    )torch_CZ_has_mps r   r   M/var/www/html/venv/lib/python3.8/site-packages/torch/backends/mps/__init__.pyr      s    c                   C   s
   t j S )z7Return a bool indicating if MPS is currently available.)r   r   Z_mps_is_availabler   r   r   r   r      s    )majorminorr
   c                 C   s   t j| |S )zHReturn a bool indicating whether MPS is running on given MacOS or newer.r   r   Z_mps_is_on_macos_or_newer)r   r   r   r   r   r	      s    )r   r
   c                 C   s   t jd| S )zEReturn a bool indicating whether MPS is running on MacOS 13 or newer.   r   )r   r   r   r   r   "   s    _libc                  C   sX   t  dkstdk	rdS ddlm}  ddlm} tddatd|d	 td
| d	 dS )z<Register prims as implementation of var_mean and group_norm.FNr   )native_group_norm_backward)native_group_normZatenZIMPLr   ZMPSr   )r   r   Z_decomp.decompositionsr   Z_refsr   _Libraryimpl)Z_native_group_norm_backwardZ_native_group_normr   r   r   _init+   s    
r   )r   )	functoolsr   Z
_lru_cachetypingr   r   libraryr   r   __all__boolr   r   intr	   r   r   __annotations__r   r   r   r   r   <module>   s    
