【“星睿O6”AI PC开发套件评测】复用已有AI软件生态,在O6开发板使用CPU和GPU进行AI推理mobilenet
1.复用已有AI软件生态,支持已有应用的无缝迁移
“星睿O6”开发套件,定位为面向AI PC、边缘等场景开发套件,为了让用户顺利过渡到新硬件,至关重要的是,原有开发者能简单高效的将他们之前开发的应用程序能够无缝运行或迁移到“星睿O6”平台。
虽然集成的“周易”NPU算力可达30TOPS,目前已成功适配多款主流AI模型,满足生成式AI在多元端侧场景的应用需求,但是,“周易”NPU提供的专有接口和工具链在已有应用的移植中,存在非常高的学习成本和开发成本。原有开发者要将之前开发的应用程序能够无缝运行或迁移到“星睿O6”平台,将付出很大的成本,没有足够的经济利益难以驱动开发者进行移植,从而无法达到生态的繁荣,进而更好的推动硬件的推广和销售。
2.TensorFlow Lite在移动端的地位
TensorFlow Lite (TFLite) 是 TensorFlow 框架在移动和嵌入式设备上的轻量级解决方案,旨在实现低延迟的设备端模型推理。它在移动端机器学习领域占据着重要的地位,原因如下:
a.全球部署超过30亿台的设备,广泛的应用支持: TFLite 可以在各种移动平台(如 Android 和 iOS)以及其他嵌入式设备上运行,使其成为开发人员部署 ML 模型的热门选择。
b.Google 的支持: 作为 Google 的官方移动端 ML 框架,TFLite 拥有强大的社区支持和持续的开发投入。
c.优化性能: TFLite 经过专门优化,可在资源受限的设备上实现高效推理,例如通过模型量化和硬件加速。
3.O6开发板使用CPU和GPU进行AI推理
a. 在 x64 Linux 主机上交叉编译 TensorFlow Lite 库 (linux aarch64):libtensorflowlite.so 、 libtensorflowlite_gpu_delegate.so
b.准备模型和图像:
下载 mobilenet_v2_1.0_224.tflite 模型文件、label.txt。
准备用于测试的图像文件。
编写 C++ 代码,并分别使用CPU 或 GPU 进行模型推理:
c.拷贝编译的库到 Radxa O6 开发板
使用 scp 命令将 libtensorflowlite.so 和 libtensorflowlite_gpu_delegate.so 、 mobilenet_v2_1.0_224.tflite、label.txt、图片、交叉编译好的可执行文件 拷贝到 Radxa O6 开发板中。
d.在 Radxa O6 开发板上执行推理
在 Radxa O6 开发板上,分别以默认 XNNPACK CPU和GPU delegate 运行交叉编译的可执行程序。效果如下图:
由于模型简单算力小,可以看到,单线程CPU运行时长为5.243ms、GPU运行时长:4.8332ms。
4.总结
当前“周易”NPU未提供TFLite 的GPU和NPU delegate的指导文档和软件SDK,上述方式参考谷歌官方推荐的方式进行测试。移植过程非常平滑和简单。希望后续尽快提供NPU delegate,方便开发者进行已有应用的移植,丰富“周易”NPU生态。