Intel NCS2计算棒以及OpenVINO尝鲜

1.什么是Intel NCS2 计算棒

NCS 是 Neural Compute Stick的缩写,2表明这是第二代产品,就像他的名字NCS是用来加速神经网络计算的,网络训练好之后,从输入得到输出的过程称为前向计算,NCS就是来加速这一部分的计算的。

2.计算棒性能测试

在Intel网站看了计算棒的相关资料,计算棒需要配合Intel出的OpenVINO推理框架,使用时首先需要将模型文件转换为OpenVINO的模型。OpenVINO目前支持Caffe、TensorFlow、MXNet等主流的深度学习框架。

5.png

OpenVINO推理框架使用基本没有什么需要注意的,按照官方的教程直接操作就可以,我是在Windows 10系统上进行测试的,安装时需要Visual Studio 2015以上版本、CMake、OpenCV等。

之前使用检测的模型是使用MXNet训练的,模型可以直接通过OpenVINO的转换工具进行转换。转换时需要输入网络输入节点的名称以及输入图片的大小,还有一点需要注意,NCS 2计算棒支持的是16位精度的浮点型数据,所以在转换时还需要加上”–data_type=FP16”。

OpenVINO框架的示例中已经提供了SSD的相关程序,完成模型转换后可以使用SSD的示例程序进行测试。这里我拿之前训练的SSD 300模型进行了测试,由于之前模型训练时输入图像为RGB通道,示例程序中默认的是BGR通道,所以还需到对示例程序加入通道转换。

通过实际测试发现,在OpenVINO框架中使用NCS 2计算棒和直接使用CPU性能差不多,使用CPU(Intel Core i5 4200M)时,检测一帧需要660ms,使用NCS2计算棒需要590ms。但是在OpenVINO框架中使用CPU速度要比在MXNet中使用CPU快,MXNet中使用CPU检测一帧需要1.1s左右。

SSD 300 VGG16

框架 运算设备 一帧耗时
MXNet CPU(Intel i5 4200M) 1.1s
MXNet GPU(Nvidia GT730M) 300ms
OpenVINO CPU(Intel i5 4200M) 660ms
OpenVINO NCS 2计算棒 590ms

PS:除了OpenVINO,计算棒还有一个单独的NCSDK,但是NCSDK目前只支持1代的计算棒,实际试了下,使用2代计算棒运行NCSDK的示例程序会提示打开设备错误。

3.总结

经过实际测试感觉NCS2的性能并没有我预期中的那么好,测试下来性能基本和CPU差不多,所以在PC还是老老实实用GPU吧,如果树莓派这样的嵌入式设备上还是有一定的加速效果的,OpenVINO倒是让我觉得眼前一亮,前向计算能基本比mxnet框架快一倍。

Intel NCS2计算棒以及OpenVINO尝鲜》有1个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据