回答

收藏

[评测分享] 【AIMB-2210】(Part 2: 驱动安装与性能测试)

#板卡评测 #板卡评测 166 人阅读 | 0 人回复 | 2025-09-30

本帖最后由 eefocus_3931621 于 2025-9-30 15:22 编辑

研华板卡的第二次分享来了!



直接说总结:
模型:MobileNetV3   测试单张图片性能
第一阶段:公司普通笔记本的运行的18帧左右
第二阶段:研华非NPU加速的版本30帧左右
第三阶段:研华NPU加速的版本300帧左右


接下来是详细步骤:
自上周拿到板卡后的经过一系列的组装配套硬件、安装系统,成功点亮过后,我就在着手移植我的代码,就在昨天算是成功跑了个Demo出来。


首先在我们成功安装好系统过后,我们需要安装研华官方提供的驱动。下方是对应网址:
https://www.advantech.com.cn/zh- ... %BA%8F?id=1-33I51XN


这5款驱动,一定一定要安装到位,我一次下5款,装的时候有漏装,所以走了点弯路。

在下载安装好这5款驱动后,需要进入AMD官方的github网址:github.com/amd/RyzenAI-SW。科学上网很关键,不然打开很慢的。


这些是AMD官方给出的例子啊,代码什么的,方便大家快速上手入门,有兴趣可以参考相关代码。
接着往下找到Introduction,点击 Ryzen? AI Software

点击过后进入配套软件界面,这是官方建议和提供的软件和版本,我个人常用的是Pycharm,所以没按照官方的来,我将截图放出来,大家按需下载,如果和我一样用pycharm的也可以参考我接下来的步骤。


再往下翻,你会找到一个NPU Drivers,这是一个NPU的驱动,这个请一定要装,不然启动不了NPU加速的。

下载安装好后,我们就可以打开自己的项目软件了,如果没有,也可以用官方提供的,就在NPU下面:

我是用于公司的嵌入式项目的开发测试,因此我的项目是自己写的代码,我自己也熟悉,所以我将上述的各种驱动安装好后,就进行我自己的测试了。
我的项目是基于MobileNet的框架的,用的版本是比较老的V3版本,因为我项目的需求和现实情况,用不到特别高的框架性能,也用不了特别好的设备性能,这次研华的板卡的测试相当于是一次上限的摸索。现成的模型框架我都已经开发的差不多了,目前将我训练好的权重文件加载至我的上位机内运行,具体画面不方便展示。在我自己的笔记本上单张图片的帧率是18帧左右,视频帧率是15帧左右。右侧是我笔记本性能,所以我都是在基于CPU的版本上跑的,工控机的性能向来不强,强的成本就压不住了。
                                            


首先,需要将权重文件进行转换成ONNX格式的文件,以便NPU识别,我将我的转换代码列出:

import tensorflow as tf
import tf2onnx

model = tf.keras.models.load_model("Test_3_AMD.keras")
spec = (tf.TensorSpec((1,224,224,3), tf.float32, name="input"),)
onnx_model, _ = tf2onnx.convert.from_keras(
    model,
    input_signature=spec,
    opset=13,
    output_path="model.onnx"
)
print("导出完成:model.onnx")

将权重文件转换后,我们需要运用到推理处,因此我也写了个Demo进行测试,还不完善就不放出来了,哈哈哈。但是单张图片的的效果显而易见,哦对了,记得用这个pip install onnxruntime-directml。这是支持 NPU 的 ONNX Runtime 版本,我是用这个跑通的。我将用加速和不用加速的结果对比放出来。

Using providers (priority): ['CPUExecutionProvider']

Input name: input  shape=[1, 224, 224, 3]  layout=NHWC  wh=(224, 224)
Inference time: 37.56 ms
Top1:      class_3  prob=0.5573
Top2:      class_2  prob=0.3550
Top3:      class_1  prob=0.0585
Top4:      class_0  prob=0.0274
Top5:      class_4  prob=0.0018




Using providers (priority): ['DmlExecutionProvider', 'CPUExecutionProvider']
Input name: input  shape=[1, 224, 224, 3]  layout=NHWC  wh=(224, 224)
Inference time: 3.29 ms
Top1: class_3 prob=0.5573
Top2: class_2 prob=0.3550
Top3: class_1 prob=0.0585
Top4: class_0 prob=0.0274
Top5: class_4 prob=0.0018


从两个的时间上来看,之间的差距显而易见,一个37.56,一个3.29,强到难以想象,我摄像头的最高帧率才150帧,他这有300帧,夸张。
我只能说大材小用了。

最后,马上国庆节了,祝大家国庆节快乐!



软件版本.png (100.11 KB, 下载次数: 0)

软件版本.png
分享到:
回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条