o
    h
                     @   s   d Z ddlmZ ddlmZmZmZ ddlZddlm	Z
 ddlmZ g d	Zee
eedf Zd
efddZd
efddZdded
dfddZG dd dZe Zeadded
efddZG dd deZded
efddZd
efddZdS )zj
This package implements abstractions found in ``torch.cuda``
to facilitate writing device-agnostic code.
    )AbstractContextManager)AnyOptionalUnionN   device   )amp)is_availablesynchronizecurrent_streamstreamdevice_countStreamStreamContextreturnc                   C   s   t jj S )z/Returns a bool indicating if CPU supports VNNI.)torch_C_cpu_is_cpu_support_vnni r   r   H/var/www/html/ai/venv/lib/python3.10/site-packages/torch/cpu/__init__.pyr      s   r   c                   C      dS )zReturns a bool indicating if CPU is currently available.

    N.B. This function only exists to facilitate device-agnostic code

    Tr   r   r   r   r   r      s   r   r   c                 C   r   )zWaits for all kernels in all streams on the CPU device to complete.

    Args:
        device (torch.device or int, optional): ignored, there's only one CPU device.

    N.B. This function only exists to facilitate device-agnostic code.
    Nr   r   r   r   r   r   (   s   r   c                   @   s   e Zd ZdZdS )r   zH
    N.B. This class only exists to facilitate device-agnostic code
    N)__name__
__module____qualname____doc__r   r   r   r   r   3   s    r   c                 C   s   t S )zReturns the currently selected :class:`Stream` for a given device.

    Args:
        device (torch.device or int, optional): Ignored.

    N.B. This function only exists to facilitate device-agnostic code

    )_current_streamr   r   r   r   r   ?   s   	r   c                   @   sD   e Zd ZU dZee ed< dd Zdd Zde	de	d	e	fd
dZ
dS )r   zvContext-manager that selects a given stream.

    N.B. This class only exists to facilitate device-agnostic code

    
cur_streamc                 C   s   || _ t| _d S N)r   _default_cpu_streamprev_stream)selfr   r   r   r   __init__S   s   
zStreamContext.__init__c                 C   s    | j }|d u r	d S t| _|ad S r    )r   r   r"   )r#   r   r   r   r   	__enter__W   s
   zStreamContext.__enter__typevalue	tracebackc                 C   s   | j }|d u r	d S | jad S r    )r   r"   r   )r#   r&   r'   r(   r   r   r   r   __exit__`   s   
zStreamContext.__exit__N)r   r   r   r   r   r   __annotations__r$   r%   r   r)   r   r   r   r   r   K   s   
 	r   r   c                 C   s   t | S )zWrapper around the Context-manager StreamContext that
    selects a given stream.

    N.B. This function only exists to facilitate device-agnostic code
    )r   )r   r   r   r   r   i   s   c                   C   r   )zReturns number of CPU devices (not cores). Always 1.

    N.B. This function only exists to facilitate device-agnostic code
    r	   r   r   r   r   r   r   r   s   r   r    )r   
contextlibr   typingr   r   r   r    r   _devicer
   __all__strint	_device_tboolr   r   r   r   r!   r   r   r   r   r   r   r   r   r   <module>   s$    
		