瑞芯微作为国内领先的AIoT SoC芯片供应商,其产品线涵盖了多个领域的应用需求,特别是在AI模型性能方面表现出色。其技术前瞻性、丰富的产品线、成熟的AI工具链以及丰富的AI示例库推动了AI技术的发展和应用。本文将对瑞芯微主流SoC的AI模型性能进行深入分析,比较它们在不同模型下的性能表现,方便大家对其性能有个初步了解,选择合适的芯片来落地自己的项目。
技术前瞻性:独立NPU的集成
瑞芯微是行业内最早将独立NPU(神经处理单元)集成到SoC(系统级芯片)的厂商之一。这一前瞻性的技术布局,使得瑞芯微的SoC产品在处理AI相关任务时具有显著的性能优势。独立NPU的设计专门针对AI计算任务,如深度学习模型的推理和训练,能够提供高效的计算能力和优化的能效比。这种技术布局不仅提升了SoC的AI处理能力,也为整个行业的技术发展树立了标杆。
丰富的产品线:满足多样化的性能需求
瑞芯微的AI处理器系列包括RK3566、RK3568、RK3562、RK3576、RK3588、RV1109、RV1126、RV1108等多款产品,每一款产品都针对不同的市场和应用场景进行了优化。例如,RK3588作为旗舰级产品,采用了先进的制程技术和高性能的CPU、GPU配置,适合高端的AI应用场景,如智能视频分析、边缘计算等。而RV1109等产品则更注重成本效益,适用于入门级的AI应用,如智能家居设备、简单的安防监控等。这种丰富的产品线布局,使得瑞芯微能够满足从低端到高端不同客户的需求,为各种AI应用提供强有力的硬件支持。
成熟的AI工具链:简化开发流程
瑞芯微在AI工具链的布局同样体现了其对行业发展的深刻理解。RKNN-Toolkit和Rock-X SDK等AI开发工具的推出,极大地简化了AI模型的开发和部署流程。这些工具提供了模型转换、量化、优化等功能,使得开发者能够更容易地将训练好的AI模型部署到瑞芯微的SoC平台上。此外,这些工具还支持多种深度学习框架,如TensorFlow、Caffe等,进一步降低了开发的门槛,加速了AI技术的应用和普及。
丰富的AI示例库:快速落地的基础
瑞芯微提供的AI示例库包含了多种预训练的模型,涵盖了图像识别、语音识别、视频分析等多个领域。这些示例库不仅为开发者提供了学习和参考的资源,也为快速实现AI应用提供了便利。开发者可以基于这些示例库进行二次开发,快速打造出满足特定需求的AI应用,大大缩短了产品从设计到上市的周期。
性能对比分析
Model performance benchmark(FPS)
demo | model_name | inputs_shape | dtype | RK3566 RK3568 | RK3562 | RK3588 @single_core | RK3576 @single_core | RK3576 @single_core @sparse_weight |
RV1109 | RV1126 | RK1808 |
---|---|---|---|---|---|---|---|---|---|---|---|
mobilenet | mobilenetv2-12 | [1, 3, 224, 224] | INT8 | 197.4 | 266.8 | 433.0 | 452.3 | 483.9 | 213.5 | 316.5 | 168.6 |
resnet | resnet50-v2-7 | [1, 3, 224, 224] | INT8 | 40.6 | 54.5 | 108.6 | 97.4 | 129.9 | 24.5 | 36.4 | 37.0 |
yolov5 | yolov5s_relu | [1, 3, 640, 640] | INT8 | 26.7 | 31.6 | 63.3 | 62.6 | 82.0 | 20.3 | 29.3 | 36.7 |
yolov5n | [1, 3, 640, 640] | INT8 | 41.6 | 43.8 | 68.1 | 104.4 | 112.2 | 36.4 | 53.5 | 61.0 | |
yolov5s | [1, 3, 640, 640] | INT8 | 19.9 | 22.7 | 42.5 | 54.2 | 65.5 | 13.7 | 20.1 | 28.1 | |
yolov5m | [1, 3, 640, 640] | INT8 | 8.7 | 10.6 | 19.3 | 23.0 | 31.5 | 5.8 | 8.5 | 13.1 | |
yolov6 | yolov6n | [1, 3, 640, 640] | INT8 | 50.2 | 51.5 | 93.8 | 98.6 | 136.6 | 37.7 | 56.8 | 66.4 |
yolov6s | [1, 3, 640, 640] | INT8 | 15.2 | 16.8 | 34.1 | 33.1 | 55.3 | 10.9 | 16.4 | 24.0 | |
yolov6m | [1, 3, 640, 640] | INT8 | 7.5 | 8.0 | 17.6 | 17.0 | 27.8 | 5.7 | 8.3 | 11.4 | |
yolov7 | yolov7-tiny | [1, 3, 640, 640] | INT8 | 29.9 | 34.9 | 69.7 | 70.9 | 91.8 | 15.6 | 22.5 | 37.2 |
yolov7 | [1, 3, 640, 640] | INT8 | 4.7 | 5.5 | 10.9 | 12.5 | 17.9 | 3.3 | 4.9 | 7.4 | |
yolov8 | yolov8n | [1, 3, 640, 640] | INT8 | 35.7 | 38.5 | 59.6 | 79.5 | 95.6 | 24.1 | 36.0 | 41.9 |
yolov8s | [1, 3, 640, 640] | INT8 | 15.4 | 17.1 | 32.8 | 38.7 | 52.4 | 9.0 | 13.2 | 19.1 | |
yolov8m | [1, 3, 640, 640] | INT8 | 6.6 | 7.5 | 14.8 | 15.9 | 23.5 | 3.9 | 5.8 | 9.1 | |
yolox | yolox_s | [1, 3, 640, 640] | INT8 | 15.5 | 17.7 | 32.9 | 36.4 | 46.7 | 10.6 | 15.7 | 22.9 |
yolox_m | [1, 3, 640, 640] | INT8 | 6.7 | 8.1 | 14.8 | 16.5 | 23.2 | 4.7 | 6.8 | 10.5 | |
ppyoloe | ppyoloe_s | [1, 3, 640, 640] | INT8 | 17.5 | 19.7 | 32.9 | 30.0 | 34.4 | 11.3 | 16.4 | 21.0 |
ppyoloe_m | [1, 3, 640, 640] | INT8 | 7.9 | 8.3 | 16.2 | 12.9 | 14.8 | 5.2 | 7.7 | 9.4 | |
deeplabv3 | deeplab-v3-plus-mobilenet-v2 | [1, 513, 513, 1] | INT8 | 10.7 | 20.7 | 34.4 | 38.1 | 42.5 | 10.3 | 13.1 | 4.4 |
yolov5_seg | yolov5n-seg | [1, 3, 640, 640] | INT8 | 33.9 | 36.3 | 58.0 | 82.4 | 92.2 | 28.7 | 41.9 | 49.6 |
yolov5s-seg | [1, 3, 640, 640] | INT8 | 15.3 | 17.2 | 32.6 | 39.5 | 51.1 | 9.7 | 14.0 | 22.4 | |
yolov5m-seg | [1, 3, 640, 640] | INT8 | 6.8 | 8.1 | 15.2 | 17.2 | 25.1 | 4.7 | 6.9 | 10.7 | |
yolov8_seg | yolov8n-seg | [1, 3, 640, 640] | INT8 | 29.1 | 30.7 | 49.1 | 64.5 | 78.0 | 18.6 | 27.8 | 32.7 |
yolov8s-seg | [1, 3, 640, 640] | INT8 | 11.8 | 11.3 | 25.4 | 29.3 | 39.7 | 6.7 | 9.8 | 14.5 | |
yolov8m-seg | [1, 3, 640, 640] | INT8 | 5.2 | 6.1 | 11.6 | 12.1 | 18.1 | 3.1 | 4.6 | 6.8 | |
ppseg | ppseg_lite_1024x512 | [1, 3, 512, 512] | INT8 | 2.6 | 4.6 | 13.0 | 8.7 | 35.5 | 18.4 | 27.2 | 14.7 |
RetinaFace | RetinaFace_mobile320 | [1, 3, 320, 320] | INT8 | 142.5 | 279.5 | 234.7 | 416.0 | 396.8 | 146.3 | 210.1 | 242.2 |
RetinaFace_resnet50_320 | [1, 3, 320, 320] | INT8 | 18.5 | 26.0 | 48.8 | 47.3 | 70.4 | 14.7 | 20.9 | 24.2 | |
LPRNet | lprnet | [1, 3, 24, 94] | INT8 | 58.2 | 119.7 | 204.4 | 130.2 | 130.6 | 30.6 | 47.8 | 30.1 |
PPOCR-Det | ppocrv4_det | [1, 3, 480, 480] | INT8 | 24.4 | 27.5 | 43.0 | 46.1 | 47.0 | 11.1 | 16.2 | 9.1 |
PPOCR-Rec | ppocrv4_rec | [1, 3, 48, 320] | FP16 | 20.0 | 45.1 | 35.7 | 55 | 58.9 | 1.0 | 1.6 | 6.7 |
lite_transformer | lite-transformer-encoder-16 | embedding-256, token-16 | FP16 | 130.8 | 656.7 | 261.5 | 609.1 | 674.8 | 22.7 | 35.6 | 97.8 |
lite-transformer-decoder-16 | embedding-256, token-16 | FP16 | 114.3 | 151.3 | 164.0 | 240 | 341.8 | 49.0 | 66.3 | 114.9 |
- 该性能数据是根据每个平台的最大NPU频率收集的。
- 这些性能数据计算了模型推理的耗时。不包括耗时的预处理和后处理。
- 具有稀疏权重的RK3576指的是启用模型稀疏权重时的性能
- 注意:具有稀疏权重的模型(通过内核)应该可以提高性能,但精度可能会下降,具体取决于模型。
通过具体的性能基准测试数据,我们可以对比瑞芯微不同SoC在处理AI模型时的性能表现。以mobilenet为例,RK3588在单核心状态下能够达到452.3 FPS,而RK3576为483.9 FPS,显示出RK3588在处理AI模型方面的强大性能。在resnet50-v2-7模型中,RK3588的单核心性能为97.4 FPS,而RK3576为129.9 FPS,同样证明了RK3588在高性能AI处理方面的优势。
在yolov5系列模型中,我们可以看到RK3588在处理不同版本的yolov5时,无论是单核心还是稀疏权重核心状态下,均展现出了优异的性能。例如,在yolov5s模型中,RK3588的单核心性能为54.2 FPS,而RK3576为65.5 FPS。这表明RK3588在处理复杂的目标检测任务时,具有更高的效率和准确性。
在yolov6和yolov7系列模型中,RK3588同样保持了其高性能的优势。例如,在yolov6n模型中,RK3588的单核心性能为98.6 FPS,而RK3576为136.6 FPS。这进一步证实了RK3588在处理更高要求的AI任务时的能力。
在yolov8、yolox、ppyoloe以及deeplabv3等模型中,RK3588的性能同样出色。特别是在deeplab-v3-plus-mobilenet-v2模型中,RK3588的单核心性能达到了38.1 FPS,而RK3576为42.5 FPS。
在RetinaFace和LPRNet等模型中,RK3588的性能也不容小觑。在RetinaFace_mobile320模型中,RK3588的单核心性能为416.0 FPS,而RK3576为396.8 FPS。这显示了RK3588在处理人脸识别等高难度任务时的高效性。
结语:
瑞芯微的SoC产品线在AI模型性能方面表现出色,特别是RK3588在多个模型中均展现出了强大的处理能力。这不仅得益于瑞芯微在AI领域的技术积累和创新,也得益于其成熟的AI工具链和丰富的示例库。丰富的产品线可以满足不同场景的功能需求,随着AI技术的不断进步,瑞芯微的SoC产品有望在未来的AIoT市场中发挥更大的作用。