【OpenVINO】特定模型的条件编译
目录
本文引用地址:https://www.eepw.com.cn/article/202106/426448.htmIntroduction
Building for different models
Building for devices with different ISA
简介
条件编译通过排除特定模型推理中不必要的组件,可以显著减少OpenVINO™二进制文件的大小。
可以从内部版本中排除以下组件:
1.nGraph和插件中的图层和图形转换
2.nGraph 操作
3.CPU插件中的jit内核
4.不用于特定模型推理的任意代码
然而,条件编译有一个很大的缺点- 由此产生的OpenVINO运行时只能与有限的一组模型和设备一起工作。
要利用条件编译,请安装以下工具:
Python
为不同的模型构建
条件编译分为两个阶段:
收集有关代码使用情况的信息
在没有未使用的组件或部件的情况下构建结果二进制文件
要应用条件编译,请按照以下步骤:
1.执行代码使用分析:
i.使用以下选项运行CMake工具:-DENABLE_PROFILING_ITT=ON-DSELECTIVE_BUILD=COLLECT。
ii.选择要在特定应用程序或目标设备中使用的多个型号。
iii.使用SEA_ITT_lib目标构建ITT收集器。
iv.在ITT收集器下运行目标应用程序,以分析每个模型的代码使用情况。统计数据以.csv格式生成。
2.构建生成的二进制文件:
i.执行以下选项的CMake工具: -DSELECTIVE_BUILD=ON -DSELECTIVE_BUILD_STAT=${ABSOLUTE_PATH_TO_STATISTICS_FILES}/*.csv
ii.cmake –build <cmake_build_directory>
强烈建议对Benchmark_app使用“-niter 1-nireq 1”标志。否则,跟踪文件将非常大。
如果您使用的应用程序不是Benchmark_APP,请记住限制推理请求和迭代的数量。
为具有不同ISA的设备构建
构建具有不同 ISA 的设备与构建不同型号的设备非常相似(参见前一章)。区别仅在于代码使用分析步骤。应该在目标设备上执行分析步骤,并且应该将包含统计信息的所有 CSV 文件复制到构建计算机上。这些文件将用于最终的生成。
限制
•目前,Ninja build 系统不支持条件编译 build。
© 版权方 2018-2021, OpenVINO 团队
评论