
    Ǆg&	                        U d dl mZmZmZ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Zdee   f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       Zdej(                  defdZdee   dej(                  defdZy)    )ListDictTupleOptionalN)Tensor)no_grad)	TypeAliasreturnc                  D    ddt         j                  j                         gS )z:Return the device type list that supports foreach kernels.cudaxputorch_C_get_privateuse1_backend_name     b/home/mcse/projects/flask_80/flask-venv/lib/python3.12/site-packages/torch/utils/_foreach_utils.py&_get_foreach_kernels_supported_devicesr      s    E588AACDDr   c                  H    ddddt         j                  j                         gS )zEReturn the device type list that supports fused kernels in optimizer.mpsr   r   cpur   r   r   r   $_get_fused_kernels_supported_devicesr      s     65%)O)O)QRRr   TensorListListIndicestensorlistlistwith_indicesc                 B    t         j                  j                  | |      S N)r   r   "_group_tensors_by_device_and_dtype)r   r   s     r   r    r        s    
 8866~|TTr   devicec                 x    | j                   t               dgz   v xr t        j                  j	                          S )Nr   )typer   r   jitis_scripting)r!   s    r   _device_has_foreach_supportr&   '   s4    ;;ACugMNoW\W`W`WmWmWoSoor   tensorsc                 @    t        |      xr t        d | D              S )Nc              3   J   K   | ]  }|d u xs t        |      t        v   y wr   )r#   _foreach_supported_types).0ts     r   	<genexpr>z'_has_foreach_support.<locals>.<genexpr>,   s'     6ylmqDy7gDGOgDg7g6ys   !#)r&   all)r'   r!   s     r   _has_foreach_supportr/   +   s    &v.y36yqx6y3yyr   )F)typingr   r   r   r   r   r   torch.autograd.grad_moder   typing_extensionsr	   strr   r   r   __annotations__intr   r*   boolr!   dtyper    r&   r/   r   r   r   <module>r8      s   . .   , 'ES	 ESd3i S !hv&6!78	 8#Y !LL>  	 U"UU 
%ekk)
*E.'2I,J
JKU Up p pz$v, z z zr   