Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
34 commits
Select commit Hold shift + click to select a range
b5a4010
feat: add cubie a7a tutorial
Milir-Radxa Jun 24, 2025
268f6fb
feat: add a7a install system tutorial
Milir-Radxa Jun 26, 2025
131b405
feat: add cubie a7a tutorial
Milir-Radxa Jun 27, 2025
1382709
feat: add hardware use tutorial
Milir-Radxa Jun 30, 2025
7f1f888
feat: add low level dev
Milir-Radxa Jul 1, 2025
f3ed533
feat: add hardware use and nvme boot tutorial
Milir-Radxa Jul 1, 2025
a0bbc01
feat: add application dev tutorial
Milir-Radxa Jul 3, 2025
5762679
feat: add ros dev index
Milir-Radxa Jul 4, 2025
30ea5a6
feat: add fel mode description
Milir-Radxa Jul 4, 2025
c352de4
fix: minor optimization
jack-ma Jul 4, 2025
25ae1e7
feat: add opencv dev
Milir-Radxa Jul 4, 2025
4e5de52
feat: android dev
Milir-Radxa Jul 8, 2025
99ebd7e
feat: add ollama dev tutorial
Milir-Radxa Jul 10, 2025
ebafe35
Merge branch 'radxa-docs:main' into cubie_a7a
Milir-Radxa Jul 14, 2025
f1eee2b
Merge branch 'radxa-docs:main' into cubie_a7a
Milir-Radxa Jul 29, 2025
63eee61
Merge branch 'radxa-docs:main' into cubie_a7a
Milir-Radxa Aug 11, 2025
cb09a94
fix: modify develop board name
Aug 11, 2025
cd0c709
fix: rs501: correct type c description
jack-ma Aug 11, 2025
ae6a7e1
docs: add cubie a7a NPU zh docs
zifeng-radxa Aug 14, 2025
acfbbca
Merge branch 'cubie_a7a' into 'cubie_a7a'
zifeng-radxa Aug 14, 2025
aa8789a
fix: modify cubie_a7a tutorial
Milir-Radxa Aug 15, 2025
289fc3c
fix: modify system config tutorial
Milir-Radxa Aug 16, 2025
4734baa
fix: modify cubie a7a to common tutorial
Milir-Radxa Aug 18, 2025
af3f621
fix: modify cubie a7a mdx tutorial code format
Milir-Radxa Aug 18, 2025
e28991c
fix: modify hardware use tutorial
Milir-Radxa Aug 18, 2025
05734bc
fix: add system build tutorial and adjust format
Milir-Radxa Aug 19, 2025
51319a3
fix: add system image link
Milir-Radxa Aug 19, 2025
a8a0740
fix: modify a7a system build step
Milir-Radxa Aug 19, 2025
538211c
fix: cubie a7a: minor spec fix
jack-ma Aug 19, 2025
d42ba9f
feat: add a7a english tutorial
Milir-Radxa Aug 19, 2025
2b938d4
feat: add a7a english tutorial
Milir-Radxa Aug 19, 2025
871ba31
fix: a7a description error
Milir-Radxa Aug 20, 2025
e4f3ff0
feat: add a7a product index for home page
Milir-Radxa Aug 20, 2025
3f80cf3
fix: modify a7a system image link
Milir-Radxa Aug 20, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Binary file added .DS_Store
Binary file not shown.
Binary file added docs/.DS_Store
Binary file not shown.
16 changes: 16 additions & 0 deletions docs/Home.md
Original file line number Diff line number Diff line change
Expand Up @@ -791,6 +791,22 @@ sidebar_custom_props:
},
],
},
{
products_name: "Cubie A7A",
products_photo_url: "/home/product-pictures/a7a.webp",
products_link: "/cubie/a7a",
docs:
[
{
docs_link: "/cubie/a7a",
docs_photo_type: "Overview",
docs_name_en: "Overview",
docs_name_zh: "Cubie A7A 概览",
docs_info_en: "Overview of the cubie a7a",
docs_info_zh: "Radxa Cubie A7A 概览",
},
],
},
],
},
],
Expand Down
Binary file added docs/common/.DS_Store
Binary file not shown.
105 changes: 105 additions & 0 deletions docs/common/ai/_cubie_acuity_env.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
ACUITY Toolkit 是一个端到端的模型转换,模型量化,模型编译的集成离线开发工具,ACUITY 支持多种 AI 框架的模型转换,并能直接生成模型运行的代码。
![SDK](/img/e/e54c/rs400_npu_2.webp)

ACUITY Toolkit 以 Docker Image 的形式安装,在安装 ACUITY 前请用户在 X86 PC 上自行安装 Docker。

## 安装 Docker

请根据不同平台在用户 X86 PC 上安装 Docker, 更多 Docker 安装请参考 [dockerdocs](https://docs.docker.com/engine/install/)

这里以 Ubuntu 为例子安装 Docker。

### 卸载旧版本 Docker

<NewCodeBlock tip="X86 Linux PC" type="PC">

```bash
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
```

</NewCodeBlock>

### 配置 docker apt 仓库

<NewCodeBlock tip="X86 Linux PC" type="PC">

```bash
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
```

</NewCodeBlock>

### 安装 docker

<NewCodeBlock tip="X86 Linux PC" type="PC">

```bash
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

</NewCodeBlock>

## 安装 ACUITY

### 获取 ACUITY 下载包

在 [全志网盘](https://netstorage.allwinnertech.com:5001/sharing/Mh23BhPHq) 下载 ACUITY docker 压缩包并解压

<NewCodeBlock tip="X86 Linux PC" type="PC">

```bash
unzip docker_images_v2.0.x.zip
```

</NewCodeBlock>

### 载入镜像

<NewCodeBlock tip="X86 Linux PC" type="PC">

```bash
cd docker_images_v2.0.x
unzip ubuntu-npu_v2.0.10.tar.zip
sudo docker load -i ubuntu-npu_v2.0.10.tar
```

</NewCodeBlock>

当 docker 镜像载入完成后可以在 `docker images` 中看到此镜像, 名字为 `ubuntu‑npu:v2.0.10`

### 创建 docker 容器

<NewCodeBlock tip="X86 Linux PC" type="PC">

```bash
mkdir docker_data && cd docker_data
sudo docker run ‑‑ipc=host ‑itd ‑v ${PWD}:/workspace ‑‑name allwinner_v2.0.10 ubuntu‑npu:v2.0.10 /bin/bash
```

</NewCodeBlock>

当 docker 容器创建完成后可以在 `docker ps -a` 中看到此容器, 名字为 `allwinner_v2.0.10`

### 进入 docker 容器

请使用 `docker ps -a` 查看 `allwinner_v2.0.1` 容器 ID

<NewCodeBlock tip="X86 Linux PC" type="PC">

```bash
sudo docker exec ‑it 容器ID /bin/bash
```

</NewCodeBlock>
113 changes: 113 additions & 0 deletions docs/common/ai/_cubie_acuity_sdk.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
:::tip 适配主板

- 瑞莎 Cubie A5E
- 瑞莎 Cubie A7A
- 瑞莎 Cubie A7Z

全志科技 T527 / A733 SoC 搭载的是 Vivante VIP9000 系列 NPU。

:::

Vivante Machine Learning SDK 是一个强大的工具套件,可帮助开发者在支持的主板上部署和加速 AI 推理任务。通过 VIP9000 系列 NPU 的硬件加速,能够显著提升 AI 模型的推理性能。

Vivante Machine Learning SDK 支持多种模型框架,如 TensorFlow, TensorFlow Lite, PyTorch, Caffe, DarkNet, ONNX, Keras 等框架模型的转换,可将多种 AI 模型编译成可以在 Vivante VIP9000 系列 NPU 推理的模型格式。

要使用 NPU 对不同框架的 AI 模型进行部署和推理前,需要进行以下两步:

- 解析模型结构,将模型算子转换为中间表示 IR(Intermediate Representation)。
- 将中间表示 IR 编译为机器特定的指令。

以上两个步骤均可以使用 **在线模式(online)** 和 **离线模式 (offline)** 进行实现, 为了方便理解, 在线模式称为 **Runtime Inferencing**, 离线模式称为 **Offline Compilation**。

![SDK](/img/e/e54c/rs400_npu_1.webp)

## Runtime Inferencing

使用 Runtime Inferencing 模式用户仅需关注原模型框架而无需关注目标部署平台,转换中间表示 IR 和模型编译的步骤可以运行在任何平台上,用户无需维护,让目标平台驱动自动处理底层加速,
适合跨平台的软件使用。

:::info
有关所有 Runtime Inferencing 的详细使用方法,请参考 [Vivante TIM-VX - Tensor Interface Module](https://github.com/VeriSilicon/TIM-VX) 开源仓库。
本文档不针对 Runtime Inferencing 提供详细使用方法。
:::

## Offline Compilation

使用 ACUITY Toolkit 可以将原模型在部署前先编译成 NPU 可运行的格式,
且支持 UINT8, PCQ(INT8), INT16, BF16 量化和混合量化,并在模型编译时自动进行算子融合优化模型结构,可以打大大降低模型初始化速度和资源开销,适合紧凑的嵌入式设备使用。
ACUITY Toolkit 可自动生成基于 OpenVX 驱动的跨平台模型部署代码和预编译 NBG 模型部署代码。

- Machine Code Generator - Network Binary Graph (NBG)

NBG(Network Binary Graph) 可直接部署在 Vivante NPU 上。由于 NBG 本身就是机器代码形式,因此无需进一步编译, 直接发送指令到硬件即可完成模型初始化, 可以使用 OpenVX 驱动和 VIPLite 驱动运行。

- Source Code Generator - OpenVX Code

OpenVX 代码生成器会生成一个 OpenVX 源代码(C 语言)项目,该项目可以部署在 Vivante NPU 上,使用 OpenVX 进行驱动。由于生成的 OpenVX 应用是图级的中间表示(IR),因此在部署到硬件设备时,OpenVX 运行时驱动仍需执行即时(JIT)编译。这种格式的优势在于,它能够利用离线工具所进行模型优化,并保持应用的跨平台特性。

| | NBG 项目 | OpenVX 项目 |
| ------------------ | -------- | ----------- |
| 跨平台应用支持 | 否 | 是 |
| 即时(JIT)编译 | 否 | 是 |
| 即时模型初始化时间 | 是 | 否 |
| 支持 OpenVX 驱动 | 是 | 是 |
| 支持 VIPLite 驱动 | 是 | 否 |

## 模式对比

| | Runtime Inferencing | Offline Compilation |
| ------------------ | ------------------- | ------------------- |
| 跨平台应用支持 | Yes | No |
| 易维护 | Yes | No |
| 模型算子融合 | No | Yes |
| 即时模型初始化时间 | No | Yes |
| 模型量化 | No | Yes |

## Vivante ML 软件栈

### ACUITY Toolkit

ACUITY Toolkit 是一个端到端的模型转换,模型量化,模型编译的集成离线开发工具,ACUITY 支持多种 AI 框架的模型转换,并能直接生成模型运行的代码。

![SDK](/img/e/e54c/rs400_npu_2.webp)

:::tip 安装与使用文档

- [ACUITY 环境配置](./cubie_acuity_env)

- [ACUITY Toolkit 使用方法](./cubie_acuity_usage)

- [ACUITY 量化精度优化](./cubie_quant_acc_improve)

:::

### TIM-VX - Tensor Interface Module

TIM-VX 是由 VeriSilicon 提供的一款软件集成模块,旨在简化神经网络在其 ML 加速器上的部署。它作为运行时框架(如 Android NN、TensorFlow Lite、MLIR、TVM 等)的后端绑定接口,提供了高效的推理支持。是 Runtime Inferencing 主要的在线开发模块。
:::info
有关所有 Runtime Inferencing 的详细使用方法,请参考 [Vivante TIM-VX - Tensor Interface Module](https://github.com/VeriSilicon/TIM-VX) 开源仓库。
本文档不针对 Runtime Inferencing 提供详细使用方法。
:::

### Vivante Unified Driver

Vivante Unified Driver 为 NPU(神经网络处理单元)提供了标准化的编程接口。该驱动栈支持 OpenVX 和 OpenCL 等业界标准 API,并兼容 Linux 与 Android 操作系统。

### Vivante VIPLite Driver

VIPLite Driver 是一款为嵌入式系统(如 Linux 或 RTOS)设计的轻量级驱动。它能够以极低的开销加载并运行 ACUITY 预编译的神经网络模型。
{/* :::tip */}
{/* RTD1619B 系统并未移殖 VIPLite Driver */}
{/* ::: */}

### Unified 和 VIPLite 驱动对比

| 项目 | Unified Driver | VIPLite Driver |
| ------------------------ | --------------- | ----------------------------------------- |
| 工作环境 | Android / Linux | Android / Linux / RTOS / Bare Metal / DSP |
| 离线编译(NBG) | 支持 | 支持 |
| 运行时即时编译(JIT) | 支持 | 不支持 |
| 多 VIP 支持 | 支持 | 支持 |
| 内存占用 | 数十 MB | 数十 KB |
| 支持 MMU(内存管理单元) | 支持 | 支持 |
| 多图支持(Multi-Graph) | 支持 | 支持 |
Loading
Loading