背景
随着征程6平台和工具链技术架构的全面升级,J6 工具链较 J5 实现显著技术升级。它革新底层架构,融入前沿理念与算法,计算效率、资源整合及任务适应性均大幅提升,却也造成与 J5 的 “兼容性断层”,用户在将智驾方案由J5平台一直到J6时,不可避免要对模型/部署代码做一些适应性改变。
鉴于此背景,本文梳理了 J6 相对 J5 关键字变化详情,结合行业实践与验证,给出实用替代策略,助客户跨越迁移鸿沟,释放 J6 强大效能,推动业务创新升级。
关键字及使用建议
model name
含义及应用场景:
使用建议:
export接口介绍如下所示:
feature name & feature id
含义及应用场景:
feature name & feature id为输入/输入分支的name/id,基于该字段判断是哪个输入分支,以便于把生成对应的tensor送入模型。此字段在J5中有小范围的使用,在J6工具链中已取消。
使用建议:
input_names和output_names配置方法:
详细教程可以参考博主前面的帖子:
J6工具链部署实用技巧-1】如何修改bc和hbm模型的输入输出名称和顺序
input source
含义及应用场景:
使用建议:
模型输入desc添加及修改:
详细教程可以参考博主前面的帖子:
【J6工具链部署实用技巧-2】如何读取和修改模型的desc信息
valid dim & aligned dim
含义及应用场景:
valid dim 和 aligned dim分别为输入/输出内存的有效范围和对齐范围,用于在部署时申请输入/输出内存和从内存中读取有效的信息。
使用建议:
hbDNNTensorProperties
成员变量:
validShape:张量有效内容的形状。
tensorType:张量的类型。
scale:量化比例因子。
quantiType:量化类型。
quantizeAxis:量化轴索引,仅按per-axis量化时生效。
alignedByteSize:张量对齐内容的内存大小。
stride:张量中validShape各维度步长,字节为单位。
注解:
- validShape 字段中若某些维度为 -1,则代表模型的 validShape 在该维度上为动态输入,需要您在创建任务前根据实际输入进行填写。
- quantizeAxis 表示量化轴索引所在维度,仅按 per-axis 量化时生效,当数据按照 per-tensor 量化时 quantizeAxis 为负数。
- 通过接口获取的张量信息为模型要求的,您可以根据实际输入修改对应的张量信息,目前只允许修改 stride 和 tensorType 的信息,而且必须符合要求。stride:
- 若您根据 stride 准备输入,则无需更改 stride。
- 若您根据 validShape 准备输入,则需更改 stride 的值为 validShape 各维度跳跃的步长,推理库内部会对数据进行padding操作。
- 若从模型获取的 stride 中某些维度为 -1,则代表模型的 stride 在该维度上为动态输入,需要您在创建任务前根据实际输入进行填写。填写的约束请参考用户手册 动态输入介绍 章节。
- alignedByteSize 表示tensor中占据的内存空间大小,非动态场景下一般可用来申请输入输出内存。


