
    Vpf                     n    U d dl Z d dlmZ d dlmZ d dlmZ daeed<   d Z	de
dz  fd	Zdefd
ZddZdS )    N)version)config)hardware_utilsFrunning_in_cloud_tpu_vmc                  2    	 dd l } | S # t          $ r Y d S w xY w)Nr   )libtpuImportError)r   s    W/var/www/html/nettyfy-visnx/env/lib/python3.11/site-packages/jax/_src/cloud_tpu_init.pymaybe_import_libtpur      s=    
 MMM M 
   44s    
returnc                      t          j        d          } | !t           j                            |           r| S t	                      }||                                S d S )NTPU_LIBRARY_PATH)osgetenvpathisfiler   get_library_path)path_from_envlibtpu_modules     r
   get_tpu_library_pathr   %   sY    ).//-27>>-#@#@%''-))+++	    c                      dt           j        v S )NJAX_FORCE_TPU_INIT)r   environ r   r
   jax_force_tpu_initr   1   s    		++r   c                     t                      } t          j                    d         }| |dk    rt                      sdS dat
          j                            dd           dt
          j        d<   t          j	        t
          j        d<   t
          j                            d	d
           t          j
                    r0t
          j                            dd          dz   t
          j        d<   t
          j                            dd           t
          j                            dd           t          j        j        t          j        dd           t          j        j        $t          j        ddt          j	                    dS dS )aa  Automatically sets Cloud TPU topology and other env vars.

  **This must be called before the TPU runtime is loaded, which happens as soon
  as JAX's C++ backend is loaded! I.e. call this before xla_bridge or xla_client
  is imported.**

  Safe to call in non-Cloud TPU environments.

  Some of these environment variables are used to tell the TPU runtime what kind
  of mesh topology to use. It assumes a single-host topology by default, so we
  manually set them here to default to the full pod slice if applicable.

  This will not set any env vars if a single topology-related env var is already
  set.
  r   NTGRPC_VERBOSITYERRORJAXTPU_ML_PLATFORMTPU_ML_PLATFORM_VERSIONENABLE_RUNTIME_UPTIME_TELEMETRY1LIBTPU_INIT_ARGS z+ --xla_tpu_use_enhanced_launch_barrier=true'TENSORSTORE_CURL_LOW_SPEED_TIME_SECONDS60&TENSORSTORE_CURL_LOW_SPEED_LIMIT_BYTES256jax_platformsztpu,cpujax_pjrt_client_create_optionsz+ml_framework_name:JAX;ml_framework_version:)r   r   %num_available_tpu_chips_and_device_idr   r   r   r   
setdefaultr   __version__tpu_enhanced_barrier_supportedgetr   r+   valueupdater,   )libtpu_pathnum_tpu_chipss     r
   cloud_tpu_initr6   5   se   & %&&+ FHHK-]a//9K9M9M/
F *('222"'"**1*="*&'*93???244 {%'Z^^4Fr%J%JMz%zBJ!" *A4HHH*@%HHH
 '
M/9---*08
M&IG4GII     98r   )r   N)r   jaxr   jax._srcr   r   r   bool__annotations__r   strr   r   r6   r   r   r
   <module>r<      s    
				             # # # # # # %  % % %  	cDj 	 	 	 	,D , , , ,/ / / / / /r   