立即学习:/course/play/28807/427188?utm_source=blogtoedu
目录
1、推理引擎详解
2、推理引擎API (ie_api)
1、推理引擎详解
优化步骤:1、特殊插件HETERO与MULTI"HETERO"plugin—— 该插件可以在不同设备上运行不受支持的特定层。(设置优先级?)
"尝试在FPGA上运行所有层,如果找不到相应方案在CPU上运行"
"MULTI"Plugin——该插件可以在不同设备上运行每个推理调用,从来利用系统中的所有设备。(设置设备分配?)
程序运行时将生成许多推理请求,每帧都有不同的推理调用
"指令可以把所有请求发送到MYRIAD设备上,如果前者充分利用,后续请求将发送到CPU,两个设备并行执行推理"
2、特定设备优化插件
在推理之前,推理引擎把网络映射到正确的库单元的同时,网络发送至硬件插件,多个级别的硬件优化便已完成。
每个设备或者设备系列都有自己的插件实现方案。
优化内容:
1、网络级优化:一些操作不映射到内核,而是映射到他们之间的关系,例如数据重组,以提高性能,减少推理过程中数据转换的时间
2、内存级优化:在内存中按照特定数据的集合重组数据
3、内核级优化:根据设备是否支持特定指令集来选择合适的指令集
2、推理引擎API (ie_api)
常用的基本API1、IECore(推理引擎对象) —— 推理引擎的主要类运行在各种不同插件上层,因此可以创建一个core类对象而无需指定任何特定设备,并只有在加载网络,实际运行的时候才需要指定设备,因此无需注册特定插件,直接在IECore内部完成
2、InferRequest ——进行推理
使用推理请求类执行推理,还可以为推理指定请求ID,这对异步推理很重要
3、Performance Counters —— 性能计数器
报告实际运行时的性能计数器
4、Available Devices —— 可用设备 感知哪些设备被连接且可以被使用devices = ie.available_devicesperformance_counters = exec_net.requests[0].get_perf_counts()