RK182X Series NPU Overview (RK1828 Model)
This chapter covers the NPU architecture of the RK182X series (focusing on the RK1828 model), supported precisions, and the RKNN3 development flow with conversion / inference code.
The RK182X series uses the RKNN3 Toolkit for AI model development. All example code in this document is based on RKNN3; RKNN-Toolkit2 is for host SoCs such as the RK3588.
Overall block diagram
PC side Device side
┌──────────────────────┐ ┌──────────────────────┐
│ RKNN3-Toolkit (whl) │ Transfer model │ RKNN3-Toolkit-Lite │
│ 1. export_llm.py │ ────────────► │ 4. rkllm3-server │
│ 2. export_rknn.py │ │ 5. rknn3_*_demo │
│ 3. .rknn/.weight/etc │ │ 6. Inference output │
└──────────────────────┘ └──────────────────────┘1. Supported Precisions
Precision modes supported by the RK182X NPU (based on RKNN3 Release Note V1.0.0):
| Precision | Description |
|---|---|
| INT8 | Peak compute 20 TOPS (confirmed by official datasheet) |
| FP16 | High-precision inference / intermediate format before quantization |
| BF16 | Brain Float 16 (a separate format from FP16) |
2. RKNN3 Development Flow
| Step | Where | Tool |
|---|---|---|
| 1. Export ONNX | PC | export_llm.py |
| 2. Convert to RKNN | PC | rknn-toolkit3 (from rknn.api import RKNN) |
| 3. Transfer model to device | PC → board | scp / adb push |
| 4. Start inference service | Board | rkllm3-server / rknn3_*_demo |
| 5. Application calls | Board | OpenAI-compatible API or Python API |
3. Model Conversion Example (PC Side)
from rknn.api import RKNN
rknn = RKNN(verbose=True)
rknn.config(target_platform='rk1820', # ← not 'rk1828'
quantized_dtype='w4a16',
quantized_algorithm='grq',
quantized_method='group32')
rknn.load_llm(model='Qwen3-1.7B.onnx', config='Qwen3-1.7B.config.pkl')
rknn.build(do_quantization=True, dataset='datasets/CMMLU/dataset.txt')
rknn.export_rknn('Qwen3-1.7B.rknn')4. Runtime Inference Example (C API, board side)
#include "rknn3_api.h" // request the header file from Rockchip
rknn3_init(&ctx, &ext); // context pointer + init_extend
rknn3_load_model_from_path(ctx, "model.rknn", "model.weight");
// Only 3 arguments; core_mask is not passed here
rknn3_config cfg = {0};
cfg.run_core_mask = 0xff; // LLM/VLM use all 8 cores (0xff); some CNN models use 0x01
rknn3_model_init(ctx, &cfg);
rknn3_run(ctx, inputs, n_inputs, outputs, n_outputs); // CNN inference
// LLM inference goes through rknn3_session_run(session, ...) (LLM-only session API)
rknn3_destroy(ctx);5. NPU-Supported Operators
Based on RKNN3 Release Note V1.0.0:
- Optimized implementations of operators such as
exSDPA,exMatMul,Resize, andTranspose - For the complete operator list, refer to the official RKNN3 Toolkit documentation
6. Performance Data (RKNN3 V1.0.0)
| Category | Capability |
|---|---|
| LLM Decode performance | Overall improvement >15% |
| Multi-core multi-model | Simultaneous inference supported (PCIe card has 8 cores; the model declares the required core_mask at compile time — 0xff for LLM/VLM, 0x01 for some CNNs) |
| New formats | Supports mRoPE, Function Call, and YUV-format input |
| rkllm3 server | Supports embedding models and audio input |
7. Verifying NPU Status
systemctl is-active rknn3.service && lspci -d 1d87:182aOutput:
active
0004:41:00.0 Processing accelerators: Rockchip Electronics Co., Ltd Device 182a (rev 01)8. SDK Reference Documents
PDF documents:
ls /userdata/RK1820_RK1828_AI_SDK/docs/Release/Output:
Rockchip_RK1820_RK1828_AI_SDK_Quick_Start_CN.pdf
Rockchip_RK1820_RK1828_AI_SDK_Quick_Start_EN.pdf
Rockchip_RK1820_RK1828_AI_SDK_Quick_Start_For_Android_CN.pdf
Rockchip_RK1820_RK1828_AI_SDK_Quick_Start_For_Android_EN.pdf
Rockchip_RK1820_RK1828_AI_SDK_RELEASE_CN.pdf
Rockchip_RK1820_RK1828_AI_SDK_RELEASE_EN.pdfMarkdown documents:
ls -la /userdata/RK1820_RK1828_AI_SDK/docs/RK1820_RK1828_AI_Release-Note_CN.md /userdata/RK1820_RK1828_AI_SDK/docs/RK1820_RK1828_AI_Release-Note_EN.mdOutput:
-rw-r--r-- 1 linaro linaro 3905 2026年 1月28日 RK1820_RK1828_AI_Release-Note_CN.md
-rw-r--r-- 1 linaro linaro 4947 2026年 1月28日 RK1820_RK1828_AI_Release-Note_EN.mdRelease Note content (excerpt):
cat /userdata/RK1820_RK1828_AI_SDK/docs/RK1820_RK1828_AI_Release-Note_CN.md | head -20Output:
# 更新日志
## Release V1.0.0
1. Examples 应用示例
- 新增 Docker 环境部署说明及示例,提升示例运行与复现效率
- rockit_yolo_detect 示例兼容 RKNN2 与 RKNN3 接口
- 新增工业异常检测、vi_yolo_venc 示例,并补充对应应用文档说明
2. 工具集更新
- RKNN-Console 新增多卡与 USB 设备支持,修复异常场景下的稳定性问题
- RKNN-SMI 新增 NPU 负载、电流、电压、功耗等查询接口,并优化 CLI 与日志机制
- 新增 rknn-test 自动化测试脚本,提升功能验证与稳定性验证效率
3. RKNN3更新
- 版本更新至 V1.0.0,覆盖 RKNN3 Toolkit、RKNN3 Runtime、RKNN3 Model Zoo
- 大幅提升 LLM/ViT 性能,LLM Decode 性能整体提升超过15%Documentation directory structure:
ls /userdata/RK1820_RK1828_AI_SDK/docs/Output:
Examples
Others
Release
Tools
RK1820_RK1828_AI_Release-Note_CN.md
RK1820_RK1828_AI_Release-Note_EN.md9. FAQ
| Symptom | Cause | Resolution |
|---|---|---|
rknn.config reports unsupported target_platform | Written as 'rk1828' | Change to 'rk1820' |
rknn3_init header file missing | rknn3_api.h not installed | Request it from Rockchip |
core_mask X is not match with npu core number N! | -c mismatched with the model's core count | Use 0xff for LLM, 0x01 for CNN |
182a not visible in lspci | Card not seated / insufficient power | Re-seat the card + check dmesg |
rknn3.service not active | systemd service failure | sudo systemctl restart rknn3.service |
10. Next Steps
- RKNN3 SDK Overview — SDK overview
- RKNN3 Toolkit Installation — Toolkit installation
- INT8 Quantized Inference — quantization details
