A500_3000_3010
- TBE自定义算子开发指南
- 目标和读者
- 入门学习
- TBE简介
- 算子开发流程
- 算子代码实现
- 算子适配插件实现
- 算子原型定义
- 算子信息定义
- 网络测试用例实现
- 接口参考
- 算子代码实现接口
- TBE DSL API
- TIK API
- TBE Platform Info API
- 插件和原型定义接口
- Operator接口
- Operator类
- Operator构造函数和析构函数
- GetName
- GetOpType
- SetInput
- AddControlInput
- IsEmpty
- GetInputDesc
- GetOutputDesc
- TryGetInputDesc
- GetInputConstData
- GetDynamicInputNum
- GetDynamicOutputNum
- GetDynamicInputDesc
- GetDynamicOutputDesc
- UpdateInputDesc
- UpdateOutputDesc
- UpdateDynamicInputDesc
- UpdateDynamicOutputDesc
- InferShapeAndType
- SetInferenceContext
- GetInferenceContext
- VerifyAllAttr
- GetInputsSize
- GetOutputsSize
- GetAllAttrNamesAndTypes
- SetAttr
- GetAttr
- BreakConnect
- GetSubgraphNamesCount
- GetSubgraphNames
- GetSubgraphBuilder
- GetSubgraph
- GetDynamicSubgraphBuilder
- GetDynamicSubgraph
- Tensor类
- TensorDesc类
- Shape类
- AttrValue类
- Operator类
- 算子原型接口
- 插件适配接口
- OpRegistrationData类
- 总体说明
- OpRegistrationData构造函数和析构函数
- REGISTER_CUSTOM_OP宏
- FrameworkType
- OriginOpType
- ParseParamsFn
- ParseParamsByOperatorFn
- FusionParseParamsFn
- ParseSubgraphPostFn
- ImplyType
- DelInputWithCond
- DelInputWithOriginalType
- GetImplyType
- GetOmOptype
- GetOriginOpTypeSet
- GetFrameworkType
- GetParseParamFn
- GetParseParamByOperatorFn
- GetFusionParseParamFn
- GetParseSubgraphPostFn
- AutoMappingFn
- AutoMappingFnDynamic
- AutoMappingSubgraphIndex
- OpReceiver类
- OpRegistrationData类
- 数据类型和枚举值
- Operator接口
- 算子代码实现接口
- 专题
- 样例参考
- 附录
- FAQ
性能优化思路
链接复制成功!
更新时间:2020/07/23 GMT+08:00
影响动态shape算子性能的因素及对应的解决办法:
- 当一个算子支持任意shape时,在算子内可能有过多条件判断,这也会影响算子性能。解决办法是每个算子二进制支持特定范围的shape。然后在算子运行过程中,通过具体的shape选择对应范围的算子实现。
- Tiling参数计算过程中,有较多的scalar计算,一般把这些scalar计算放在CPU侧,计算完再传入AICore运行的算子。
- 数据不同的切分方式影响算子性能。即Tiling策略不同,算子的实现方式可能不同。
父主题: 概述
