
    /j	                    n    d dl mZ d dl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  G d d	e          ZdS )
    )annotationsN)Path)LOGGER)check_requirements   )BaseBackendc                  "    e Zd ZdZddZdd
ZdS )AxeleraBackendzAxelera AI inference backend for Axelera Metis AI accelerators.

    Loads compiled Axelera models (.axm files) and runs inference using the Axelera AI runtime SDK. Requires the Axelera
    runtime environment to be activated before use.
    weight
str | PathreturnNonec                @   t           j                            d          st          j        d           	 ddlm} n'# t          $ r t          dd           ddlm} Y nw xY wt          |          }t          |                    d          d	          }|t          d
|           |                    t          |                    | _        |j        dz  }|                                r0ddlm} |                     |                    |                     d	S d	S )zLoad an Axelera model from a directory containing a .axm file.

        Args:
            weight (str | Path): Path to the Axelera model directory containing the .axm binary.
        AXELERA_RUNTIME_DIRzAxelera runtime environment is not activated.
Please run: source /opt/axelera/sdk/latest/axelera_activate.sh

If this fails, verify driver installation: https://docs.ultralytics.com/integrations/axelera/#axelera-driver-installationr   )opzaxelera_runtime2==0.1.2zN--extra-index-url https://software.axelera.ai/artifactory/axelera-runtime-pypi)cmdsz*.axmNzNo .axm file found in: zmetadata.yaml)YAML)osenvirongetr   warningaxelera.runtimer   ImportErrorr   r   nextrglobFileNotFoundErrorloadstrmodelparentexistsultralytics.utilsr   apply_metadata)selfr   r   wfoundmetadata_filer   s          d/home/longshao/multi-rider-rag/.venv/lib/python3.11/site-packages/ultralytics/nn/backends/axelera.py
load_modelzAxeleraBackend.load_model   sb    z~~344 	Na  	+******* 	+ 	+ 	+)e    +*******	+ LLQWWW%%t,,=#$Aa$A$ABBBWWSZZ((
 6!! 	:......		- 8 899999	: 	:s   < !A A imtorch.Tensorlistc                P    |                      |                                          S )zRun inference on the Axelera hardware accelerator.

        Args:
            im (torch.Tensor): Input image tensor in BCHW format, normalized to [0, 1].

        Returns:
            (list): Model predictions as a list of output arrays.
        )r   cpu)r$   r*   s     r(   forwardzAxeleraBackend.forward<   s     zz"&&((###    N)r   r   r   r   )r*   r+   r   r,   )__name__
__module____qualname____doc__r)   r/    r0   r(   r
   r
      sG         #: #: #: #:J	$ 	$ 	$ 	$ 	$ 	$r0   r
   )
__future__r   r   pathlibr   torchr"   r   ultralytics.utils.checksr   baser   r
   r5   r0   r(   <module>r;      s    # " " " " " 				        $ $ $ $ $ $ 7 7 7 7 7 7      5$ 5$ 5$ 5$ 5$[ 5$ 5$ 5$ 5$ 5$r0   