执行调优
本节介绍离线推理场景下调优的命令示例。
- 单个AOE进程时,请确保具备如下条件。多个AOE进程时,可参考如下条件自行扩展。
- 调优用户的家目录下磁盘可用空间>=20G。
- 可用内存>=32G。注意:如果模型中存在大shape算子,可能需要更多内存。
- 算子调优时Host CPU要求:若调优时未指定--model_path,则Host CPU建议>=TE_PARALLEL_COMPILER + TUNING_PARALLEL_NUM + 1 + min(CPU的核数/2, 8) + 50。若调优时指定了--model_path,则Host CPU建议>=TE_PARALLEL_COMPILER + TUNING_PARALLEL_NUM + 1 + min(CPU的核数/2, 8) + 58。其中TE_PARALLEL_COMPILER 和TUNING_PARALLEL_NUM 的说明请分别参考表1和表1。
- 子图调优时Host CPU建议>=2 *TUNING_PARALLEL_NUM + TE_PARALLEL_COMPILER + 1。其中TE_PARALLEL_COMPILER 和TUNING_PARALLEL_NUM 的说明请分别参考表1和表1。
- Device核数>=模型中所有算子使用的最大核数。
- Device内存:和模型相关,和模型的内存复用相关。
- 调优前,请确保关闭Profiling功能,避免影响调优结果。关闭Profiling功能具体操作请参见《性能分析工具使用指南》。
- AOE不支持不同用户同时使用同一device进行调优。
- AOE调优引擎还提供了其他环境变量控制功能,详情可参见配置环境变量。
- 推荐先进行子图调优,再进行算子调优。原因是:先进行子图调优会生成图的切分方式,子图调优后算子已经被切分成最终的shape了,再进行算子调优,会基于这个最终shape去做算子调优。如果优先算子调优,这时调优的算子shape不是最终切分后的算子shape,不符合实际使用场景。
- 执行AOE调优引擎进行子图调优
aoe --framework=0 --model=./resnet18.prototxt --weight=./resnet18.caffemodel --job_type=1
- 执行AOE调优引擎进行子图重载调优
子图调优中断后,希望从上次的已有的调优阶段开始继续调优,则可以选择该模式。
命令示例如下所示:
aoe --framework=0 --model=./resnet18.prototxt --weight=./resnet18.caffemodel --job_type=1 --reload
该命令必须在上次执行调优命令的相同目录下使用。原因是重载调优需要使用上次调优的中间文件,中间文件存放在上次执行调优命令路径下的aoe_workspace目录。
- 执行AOE调优引擎进行算子调优
aoe --framework=0 --model=./resnet18.prototxt --weight=./resnet18.caffemodel --job_type=2
更多AOE参数请参见AOE参数说明。
父主题: 离线推理场景下调优