o
    wZh	                     @   s   U d dl mZ d dlZd dlmZ d dlmZ d dlmZ dee	 fddZ
dee	 fd	d
Zeeee   Zeed< ee Zeed< ejgZe 	ddededeeejejf eeef f fddZdejdefddZdee dejdefddZdS )    )OptionalN)Tensor)no_grad)	TypeAliasreturnc                   C   s   ddt j gS )z:Return the device type list that supports foreach kernels.cudaxputorch_CZ_get_privateuse1_backend_name r   r   I/var/www/auris/lib/python3.10/site-packages/torch/utils/_foreach_utils.py&_get_foreach_kernels_supported_devices   s   r   c                   C   s   dddddt j gS )zEReturn the device type list that supports fused kernels in optimizer.Zmpsr   r   Zhpucpur	   r   r   r   r   $_get_fused_kernels_supported_devices   s   r   TensorListListIndicesFtensorlistlistwith_indicesc                 C   s   t j| |S N)r
   r   "_group_tensors_by_device_and_dtype)r   r   r   r   r   r       s   r   devicec                 C   s   | j t dg v otj  S )Nr   )typer   r
   ZjitZis_scripting)r   r   r   r   _device_has_foreach_support'   s   r   tensorsc                 C   s   t |otdd | D S )Nc                 s   s$    | ]}|d u pt |tv V  qd S r   )r   _foreach_supported_types).0tr   r   r   	<genexpr>,   s   " z'_has_foreach_support.<locals>.<genexpr>)r   all)r   r   r   r   r   _has_foreach_support+   s   r    )F)typingr   r
   r   Ztorch.autograd.grad_moder   Ztyping_extensionsr   liststrr   r   r   __annotations__intr   r   booldicttupler   Zdtyper   r   r    r   r   r   r   <module>   s*     