
    uki                        d dl mZ d dlmZ d dlZd dlmZ d dlmZ d dl	m
Z ej                  Z G d d      Zddd	Z	 d	 	 	 	 	 dd
Zdd	 	 	 	 	 	 	 	 	 ddZy)    )annotations)SequenceN)
mesh_utils)_jax)
xla_bridgec                      e Zd ZddZy)TopologyDescriptionc                    || _         y N)devices)selfr   s     V/home/cdr/jupyterlab/.venv/lib/python3.12/site-packages/jax/experimental/topologies.py__init__zTopologyDescription.__init__   s	    !(DL    N)r   zlist[Device])__name__
__module____qualname__r    r   r   r	   r	      s    )r   r	   c                @    t        t        j                  |             S )N)backend)r	   jaxr   )platforms    r   get_attached_topologyr       s    	S[[:	;;r   c                Z   |dk(  s|-t        t        j                  | fi |j                               S 	 t        j                  || fi |}t        |j                               S # t
        j                  $ r1}|j                  ^}}|j                  d      rt        |      | d }~ww xY w)NtpuUNIMPLEMENTED)
r	   xbmake_pjrt_tpu_topology_make_compile_only_devicesmake_pjrt_topologyr   JaxRuntimeErrorargs
startswithNotImplementedError)topology_namer   kwargstopologyemsg_s          r   get_topology_descr+   $   s     (*
!!	
#	

$
$
& 
$$X}GGHxBBDEE			 ffGC!
~~o&$!+s   /A& &B*9,B%%B*Fcontiguous_submeshesc                   t        j                  |t        | j                        |      }t        j
                  j                  ||      S )Nr,   )r   create_device_meshlistr   r   shardingMesh)topo
mesh_shape
axis_namesr-   r   s        r   	make_meshr6   ;   s=     ))$t||$;OQ'			7J	//r   r   )returnr	   ) N)r%   strr   z
str | Noner7   r	   )
r3   r	   r4   zSequence[int]r5   ztuple[str, ...]r-   boolr7   zjax.sharding.Mesh)
__future__r   collections.abcr   r   jax.experimentalr   jax._src.libr   jax._srcr   r   Devicer	   r   r+   r6   r   r   r   <module>rA      s    # $ 
 '  %	) )
<
 59'18 "'	0
	0	0  	0
 	0 	0r   