Axelera AI 导出与部署#
Ultralytics 与 Axelera AI 合作,为 边缘 AI 设备提供高性能、高能效推理。你可以使用 Voyager SDK,将 Ultralytics YOLO 模型直接导出并部署到 Metis® AIPU。
Axelera AI 采用专有数据流架构和存内计算,为边缘端的计算机视觉提供专用硬件加速,功耗较低,性能最高可达 856 TOPS。
选择合适的硬件#
Axelera AI 提供多种外形规格,以满足不同的部署限制。下表可帮助你为 Ultralytics YOLO 部署选择最合适的硬件。
硬件产品系列#
Axelera 硬件产品系列经过优化,可高效运行 Ultralytics YOLO26 及旧版本,提供出色的每瓦 FPS 性能。
加速卡#
这些加速卡可为现有主机设备提供 AI 加速,便于开展存量环境部署。
| 产品 | 外形规格 | 计算能力 | 性能(INT8) | 目标应用 |
|---|---|---|---|---|
| Metis PCIe x4 | PCIe Gen3 x16 | 4x Metis AIPU | 856 TOPS | 高密度视频分析、智慧城市 |
| Metis PCIe x1 | PCIe Gen3 x1 | 1x Metis AIPU | 214 TOPS | 工业 PC、零售排队管理 |
| Metis M.2 | M.2 2280 M-Key | 1x Metis AIPU | 214 TOPS | 无人机、机器人、便携式医疗设备 |
| Metis M.2 MAX | M.2 2280 | 1x Metis AIPU | 214 TOPS | 需要高级热管理的环境 |
集成系统#
为提供即用型解决方案,Axelera 与制造商合作,提供预先通过 Metis AIPU 验证的系统。
- Metis Compute Board:独立边缘设备,配备 Metis AIPU 和 Rockchip RK3588 ARM CPU。
- 工作站:来自 Dell(Precision 3460XE)和 Lenovo(ThinkStation P360 Ultra)的企业级塔式工作站。
- 工业 PC:Advantech 和 Aetina 提供的坚固型系统,专为制造自动化而设计。
支持的任务#
Axelera 导出支持 Ultralytics 的全部七种任务。语义分割和深度估计仅适用于 YOLO26,因为只有 YOLO26 系列包含这两种检测头。
YOLO26 检测、实例分割、姿态和 OBB 模型默认导出其 无 NMS 的一对一检测头,Axelera 运行时会在主机端对其进行解码。传入 nms=True 则会改为导出一对多检测头,这种检测头在 Metis 上的得分较低:以这种方式导出的 YOLO26n 检测模型在 COCO128 上达到 mAP50-95 0.212,而使用无 NMS 检测头时为 0.453。
量化范围取决于校准图像,深度任务的默认值 depth8.yaml 包含四张室内场景帧。在包含 654 张图像的 NYU Depth V2 验证集上,使用该默认值校准的 YOLO26n 深度模型在 Metis 上的 delta1 得分为 0.742,而 PyTorch 模型为 0.783;使用 100 张 NYU 训练帧校准时,得分为 0.780。传入 data=,并指定一个数据集 YAML,其中 val 分区包含至少 100 张来自模型实际运行场景的图像;校准会读取 val 分区。
安装#
导出为 Axelera 格式需要满足以下条件:
- 操作系统:仅限 Linux(建议使用 Ubuntu 22.04/24.04)
- 硬件:Axelera AI 加速器(Metis 设备)
- Python:版本 3.10、3.11、3.12 和 3.13
- PyTorch:
torch>=2.8,<2.15 - Voyager SDK:1.9.0;导出时会安装此版本的开发工具包,推理时会安装此版本的运行时
- Metis 内核驱动:
metis-dkms1.7.0 或更高版本,需与pip分开安装 - 系统依赖项:
sudo apt install libgl1(OpenCV 需要此依赖项,pip不会安装它)
安装 Ultralytics#
pip install ultralytics如需详细说明,请参阅我们的 Ultralytics 安装指南。如果遇到问题,请查阅我们的常见问题指南。
安装 Axelera 驱动#
-
添加 Axelera 软件源密钥:
sudo sh -c "curl -fsSL https://software.axelera.ai/artifactory/api/security/keypair/axelera/public | gpg --dearmor -o /etc/apt/keyrings/axelera.gpg" -
将软件源添加到 apt:
根据所用操作系统,从下方选择合适的代码片段。
# Ubuntu 22.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu22 main' > /etc/apt/sources.list.d/axelera.list"# Ubuntu 24.04 sudo sh -c "echo 'deb [signed-by=/etc/apt/keyrings/axelera.gpg] https://software.axelera.ai/artifactory/axelera-apt-source ubuntu24 main' > /etc/apt/sources.list.d/axelera.list" -
安装驱动并加载它。SDK 1.9 需要
metis-dkms1.7.0 或更高版本,因此此处安装最新版本:sudo apt update sudo apt install -y metis-dkms sudo modprobe metis
内核驱动与 Python SDK 包分开安装,因此升级 SDK 后,你还必须将驱动升级到该 SDK 要求的最低版本——SDK 1.9 要求 1.7.0。安装时不会检查这一点;如果驱动版本低于最低要求,设备将无法使用:axdevice 会报告所需版本,并因无法打开设备而失败。
[libaxldev.c:285] Found kernel driver version 1.6.2, but at least version 1.7.0 is required. Please update the kernel driver
ERROR: AXR_ERROR_CONNECTION_ERROR: Failed to open device metis-0:4:0另请参阅第 3 步:安装 Metis 内核驱动。如果你已在 Ubuntu 上运行较早版本的 SDK,请更新驱动并重新加载内核模块(无需重启):
sudo apt update
sudo apt install -y metis-dkms
sudo rmmod metis
sudo modprobe metis然后重新运行 axdevice,确认已检测到设备。
首次使用 Axelera 模型运行 yolo export format=axelera 或 yolo predict 时,会自动下载并安装 Axelera SDK 软件包。根据网络连接速度,这可能需要几分钟;下载过程中不会显示进度。若要提前手动安装:
pip install axelera-devkit==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simple
pip install axelera-rt==1.9.0 --extra-index-url https://software.axelera.ai/artifactory/api/pypi/axelera-pypi/simpleSDK 1.9 不会提高已编译 .axm 模型的格式版本,因此,使用 1.8 导出的 _axelera_model 目录无需更改即可加载和运行。只有在需要采用编译器改进时才重新导出。
如果 SDK 提高了格式版本,加载时会拒绝较旧的目录;从 1.7 或更早版本升级时就会出现这种情况:
Error: Unsupported model version: 4.0, expected at least 5.0
Please re-deploy or re-download the model.将 YOLO 模型导出为 Axelera 格式#
Axelera 格式支持 导出、预测和验证模式。推理和验证均在 Axelera Metis AIPU 硬件上运行。导出模型后,加载导出的模型即可运行推理或验证其准确率。
from ultralytics import YOLO
# 加载 YOLO26 模型
model = YOLO("yolo26n.pt")
# 将模型导出为 Axelera 格式
model.export(format="axelera") # creates 'yolo26n_axelera_model'from ultralytics import YOLO
# 加载导出的 Axelera 模型
model = YOLO("yolo26n_axelera_model")
# 运行推理
results = model("https://ultralytics.com/images/bus.jpg")from ultralytics import YOLO
# 加载导出的 Axelera 模型
model = YOLO("yolo26n_axelera_model")
# 在 COCO8 数据集上验证准确率
metrics = model.val(data="coco8.yaml")导出参数#
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
format | str | 'axelera' | 适用于 Axelera Metis AIPU 硬件的目标格式。 |
imgsz | int 或 tuple | 640 | 模型输入的图像尺寸。 |
batch* | int | 1 | 校准批次大小。已编译的模型一次处理一张图像。 |
quantize | int 或 str | 8/自动 | 量化精度。Axelera AIPU 必须使用 8(INT8),并会自动启用该设置。此设置取代了已弃用的 half/int8 标志。请参阅 INT8 量化。 |
data | str | None | 校准数据集 YAML;分类任务则使用数据集目录或内置数据集名称。如果未指定,Ultralytics 会选择特定任务的校准数据集。 |
fraction | float、int 或 list | 1.0 | 校准子集,可以按比例、图像数量或 [train, val, test] 比例/数量指定。包含两个值的列表会保留完整的 test,而 0 会跳过它(建议使用 100-400 张图像)。 |
device | str | None | 导出设备:GPU(device=0)或 CPU(device=cpu)。 |
* 模型按单张图像编译,因此导出参数 batch 只用于设置校准批次大小。改为向 predict 传入 batch,即可一次向 Axelera 调度器提交多张图像(Voyager SDK 1.8.0 或更高版本):请参阅最高性能。
如需查看所有导出选项,请参阅导出模式文档。
输出结构#
yolo26n_axelera_model/
├── yolo26n.axm # Axelera model file
├── compiler_config_final.toml # Compiler configuration used for the build
└── metadata.yaml # Model metadata (classes, image size, etc.)Axelera AI 基准测试#
Metis AIPU 在最大化吞吐量的同时,将能耗降至最低。
| 模型 | Metis PCIe FPS(每秒帧数) | Metis M.2 FPS(每秒帧数) |
|---|---|---|
| YOLOv8n | 847 | 771 |
| YOLO11n | 746 | 574 |
| YOLO26n | 648.6 | 484.9 |
基准测试数据基于 Axelera AI 提供的数据。实际 FPS 取决于模型大小、批处理方式和输入分辨率。
这些是主机吞吐量数据,由 模型库 使用 Voyager SDK 的流式处理管道对 720p 视频文件进行测量。单次 predict 调用报告的是每张图像的延迟,这是另一种指标。
实际应用#
Ultralytics YOLO 在 Axelera 硬件上可支持高级边缘计算解决方案:
- 智慧零售:通过实时目标计数和热力图分析优化门店运营。
- 工业安全:在制造环境中实现低延迟的 PPE 检测。
- 无人机分析:在无人机上高速执行目标检测,用于农业和搜救任务。
- 交通系统:基于边缘的车牌识别和速度估算。
推荐工作流#
- 使用 Ultralytics 训练模式训练模型
- 使用
model.export(format="axelera")导出为 Axelera 格式 - 使用
yolo val验证精度,确认量化损失最小 - 使用
yolo predict预测以进行定性验证 - 部署到高性能端到端管道中,无需依赖 PyTorch — 查看 Voyager SDK 上的 YOLO 示例,了解如何使用
axelera-rt构建可组合的 Python 管道
设备健康检查#
确认 Axelera 设备运行正常:
# if axdevice cannot be found, please run at least one inference (see above) to ensure the required packages are installed
axdevice如需详细诊断信息,请参阅 AxDevice 文档。
最高性能#
模型按单张图像编译,单张图像会在一个 AIPU 核心上运行。向 Predict 传入多张图像,会将它们一起交给 Axelera 调度器,由调度器将它们分配到设备的各个核心:
yolo predict model=yolo26n_axelera_model source=path/to/images batch=32在目录中的 128 张 COCO128 图像上,Metis PCIe 的 yolo26n(imgsz=640),三次运行的中位数:
| Voyager SDK | 设备 | batch=1 | batch=8 | batch=32 |
|---|---|---|---|---|
| 1.8.0 | 1 | 36 图/秒 | 45 图/秒 | 40 图/秒 |
| 1.8.0 | 2 | 39 图/秒 | 41 图/秒 | 41 图/秒 |
| 1.9.0 | 1 | 41 图/秒 | 85 图/秒 | 109 图/秒 |
| 1.9.0 | 2 | 35 图/秒 | 83 图/秒 | 113 图/秒 |
在 SDK 1.9 中,批次大小的提升能提高吞吐量;在 batch=32 时,吞吐量可提高 2.7 倍,而 1.8 在任何批次大小下都维持在约 40 图/秒。离线处理追求吞吐量时使用大批次,关注单张图像延迟时使用 batch=1。第二台设备对 predict 的提升很小:在 batch=32 时,只要图像在设备上的处理时间达到约 4 毫秒,主机端预处理每张图像就已耗时约 4 毫秒。
超出 predict 的范围#
对于需要最大吞吐量的生产环境,Axelera Voyager SDK 提供:
- 可让多帧同时处于处理中状态的流式推理管道
- 将一个模型编译到多个核心上
- 通过切片推理支持更高分辨率的摄像头
这些路径会跳过 predict 在主机端执行的 PyTorch 前处理和后处理。请参阅 model-zoo 获取 FPS 基准测试,或联系 Axelera 获取生产环境支持。
已知问题#
- M.2 电源限制:由于电源供应受限,大型或超大型模型在 M.2 加速器上可能会遇到运行时错误。
如需支持,请访问 Axelera 社区。
常见问题#
可以。使用 Ultralytics 训练模式训练的任何模型,只要使用受支持的层和运算,就可以导出为 Axelera 格式。
我们建议使用 100 到 400 张图像。超过 400 张不会带来额外收益,还会延长量化时间。你可以尝试使用 100、200 和 400 张图像,找到最佳平衡点。
SDK、驱动程序和编译器工具可通过 Axelera 开发者门户获取。