概念及使用约束
相关概念
概念 |
描述 |
---|---|
动态batch/动态分辨率 |
在某些场景下,模型每次输入的batch size或分辨率是不固定的,如检测出目标后再执行目标识别网络,由于目标个数不固定导致目标识别网络输入batch size不固定。
|
动态维度(ND格式) |
为了支持Transformer等网络在输入格式的维度不确定的场景,需要支持ND格式下任意维度的动态设置。 ND表示支持任意格式,当前N ≤ 4。 |
使用约束
- 对同一个模型,AIPP(包括静态AIPP和动态AIPP)与动态维度(ND格式)不能同时使用。
- 对同一个模型,以下方式,只能选择其中一种:
- 申请模型推理的输出内存时,可以按照各档位的实际大小申请内存,也可以调用acl.mdl.get_output_size_by_index接口获取内存大小后再申请内存(建议使用该方式,确保内存足够)。
- 动态AIPP和动态Batch同时使用时:
- 动态AIPP和动态分辨率同时使用时:
- 动态AIPP和动态Shape输入(设置Shape范围)同时使用时,动态AIPP的输出图片宽、高要在所设置的Shape范围内。
- 静态AIPP和动态分辨率同时使用时,由于动态分辨率场景下输入图片的宽和高不确定,因此在使用ATC工具的“insert_op_conf”参数传入AIPP配置文件时,AIPP配置文件中不能开启Crop和Padding功能,并且需要将配置文件中的“src_image_size_w”和“src_image_size_h”取值设置为0。
设置Shape数据缓存,提升性能
可通过设置环境变量“HOST_CACHE_CAPACITY”配置动态Shape执行时的数据缓存功能,默认值为0,不开启数据缓存功能。
配置为非零正整数时,例如10,系统会将最近出现较为频繁的10个输入Shape对应的部分执行数据缓存,已缓存Shape再次出现时,Host执行性能将得到提升,但Host内存占用会变多,具体涨幅与环境变量值、模型大小成正比。
环境变量配置示例如下:
export HOST_CACHE_CAPACITY=10

“HOST_CACHE_CAPACITY”环境变量取值范围为:[1, INT32类型最大值],超出INT32类型最大值(即2147483647),表示不开启数据缓存功能。
父主题: 模型动态Shape输入推理