地平线征程6作为一款高性能的智能驾驶芯片,其配套的算法工具链在算法部署方面起着至关重要的作用。请问该工具链提供了哪些功能,以帮助开发者将算法高效地部署到征程6芯片上?另外,针对不同类型的算法(如感知、规划、控制等),工具链是否提供了特定的优化策略或模板?在使用征程6算法工具链进行算法部署时,有没有一些关键的步骤或者注意事项需要开发者特别留意的?最后,能否分享一些成功案例或者开发者利用征程6算法工具链提升算法部署效率的实战经验?
针对问题3,对于batch模型,J6工具链不支持nv12输入类型时的多batch部署,需要用户在编译模型时,将batch输入拆分成batch个单输入。PTQ可以配置separate_batch: True,QAT可以在convert转定点前,使用insert_split(dim=0)方法做拆分。不过,对于DDR输入的节点,是支持batch部署的。
本质来说对nv12输入的多batch模型是支持的,只是为了将部署实现的逻辑更贴合芯片特性(例如多batch都是金字塔的不同处理输出),所以在部署前需要做batch的拆分,模型在推理过程中仍然是以batch方式进行,效率没有影响
针对TROS.Aid的回复进一步解释,是支持nv12de多batch推理,只是输入数据不支持连续地址的tensor,所以才需要拆分,实际还是多batch运行,后面新版本工具链会支持连续地址的输入,也就不需要拆分
Q1:PTQ提供精度debug工具分析敏感节点,HBRuntime工具推理中间产物,hb_config_generator工具快速生成conifg,编译成功后产生性能perf结果等等。QAT提供qconifg设置示例,Calibration 指南,常见API调用以及问题解答等等