OpenVINO工具套件高级课程第四课:如何进行AI推理的性能对比?
作者:互联网
一、示例分析
两个流水线比较:
①流水线-1:延迟更短,响应时间短;
②流水线-2:吞吐量更大
二、影响推理性能参数
1、神经网络参数
2、设备参数
CPU通常支持所有的数据格式,如果不是原生的则使用软件进行相应转换。但是GPU、VPU等设备的数据格式通常较少,数据格式会影响内存大小和计算能力,在试验前需要确保有足够的内存空间,足以支撑输入图像存放在网络上并保持权重。
设备参数主要三个方面: ①支持的数据格式;② 内存占用率和速度;③计算能力。
3、推理执行参数
在合理地选择网络和设备后就可以处理执行参数了,检查推理性能的最佳工具是benchmark app,该app可以设置推理引擎所有参数和选项开关, 可支持C++/Python,性能指标表现良好。
1)同步/异步执行
同步执行:推理有时需要很长时间,该模式下需要等待流水线完成每个阶段,这样会降低整体系统性能,无法充分发挥每个部分的最大性能。
异步执行:只发送第一帧的推理请求,而不用等待完成,继续准备第二帧,在推理请求没有阻塞时,不断准备帧进行输入,并进行推理操作,该模式可以实现吞吐量的巨大提升。
2)张量尺寸
在本示例中,创建了一个宽高12的张量,当网络同时执行4个或更多输入项时,可以获得更多的优化,但是更高的批次不一定产生更高的性能,有时甚至在内存过载时削弱性能,进而增加很多延迟。
3)推理请求数量
推理请求的数量和批处理不同,批处理意味着推理请求的输入更大。在本示例中,推理请求数量意味着系统中有4个不同的任务,每个批次一个。推理请求的执行顺序是并行还是顺序执行取决于其他参数、功能和工作负载,看系统可否高效处理多个推理请求。
4)视频流数量
视频流数据与CPU执行能力相关,相比批处理,视频流处理功能通常可以为CPU提供更出色的性能,特别是对于多核服务器来说。
在吞吐量模式下,线程将进行流分组,从而提升内核和内部之间的分配效率,流内部的同步开销更低,数据局部性更出色,有助于提高性能。
5)线程数量
选择需要的线程数,甚至将线程固定到特定核心或者让CPU线程分配给资源。
6)数据格式
标签:第四课,OpenVINO,请求,AI,性能,线程,数据格式,执行,推理 来源: https://blog.csdn.net/zhouqiping/article/details/123621518