
    g                     B    d dl Z d dlZd dlZdZg dZg dZd ZdefdZy)    N0x1ae0)0x00270x00560x005e0x00620x00630x006f)z/dev/nvidia0z/dev/nvidiactlz/dev/dxgc                     d} d}t        j                   d      D ]  }t        j                  |      j                         j	                         }|t
        k7  r>t        j                  j                  t        j                  j                  |      d      }t        j                  |      j                         j	                         }|t        v s| dz  }  | |fS )zCReturns the device id and number of TPU chips attached through PCI.r    z/sys/bus/pci/devices/*/vendordevice   )globpathlibPath	read_textstrip_GOOGLE_PCI_VENDOR_IDospathjoindirname_TPU_PCI_DEVICE_IDS)	num_chips	device_idvendor_path	vendor_iddevice_paths        n/var/www/html/gesture-recognition/python-backend/myenv/lib/python3.12/site-packages/jax/_src/hardware_utils.py%num_available_tpu_chips_and_device_idr   )   s    ))YY>? k[)335;;=I))'',,rww{;XFK[)335;;=I''1ni 
I	    returnc                  .    t        d t        D              S )zJTrue if there's a visible nvidia gpu available on device, False otherwise.c              3   Z   K   | ]#  }t         j                  j                  |       % y w)N)r   r   exists).0ds     r   	<genexpr>z)has_visible_nvidia_gpu.<locals>.<genexpr>=   s     <1RWW^^A<s   )+)any_NVIDIA_GPU_DEVICES r    r   has_visible_nvidia_gpur+   :   s     
<(;<	<<r    )	r   r   r   r   r   r)   r   boolr+   r*   r    r   <module>r-      s7    
      "= =r    