---
title: TBE算子性能优化
description: "当DSL方式实现的算子性能不满足需求时，可以参考如下流程进行优化："
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/others/tbeaicpudevg/atlasopdev_10_0116.html
sourcePath: /source/zh/canncommercial/900/others/tbeaicpudevg/atlasopdev_10_0116.html
indexId: e5e6a60cc884ed2521e5f9a11bafbabbf389df43c9f3dda364379f7bb5e1b87073
---
# TBE算子性能优化

#### TBE DSL算子

当DSL方式实现的算子性能不满足需求时，可以参考如下流程进行优化：

1. 可以借助AOE自动调优工具进行调优，详细操作可参见《AOE调优工具(https://www.hiascend.com/document/detail/zh/canncommercial/900/devaids/aoe/auxiliarydevtool_aoe_0001.html)》。
2. 若调优后仍不满足需求，可以通过DSL算子实现时的一些技巧来进一步优化，可参见  DSL性能优化
。


#### TBE TIK算子

TBE TIK算子性能优化的主要流程如下所示：

图1 TBE TIK算子调优流程

1. 首先查看需要优化的算子是否在AOE支持的算子列表中，若支持，则先使用AOE工具对指定算子进行调优。
  AOE支持的算子列表及工具使用方法可参见《AOE调优工具(https://www.hiascend.com/document/detail/zh/canncommercial/900/devaids/aoe/auxiliarydevtool_aoe_0001.html)》。

2. 调优后，再对算子进行多核方案的分析，分析算子的多核方案是否合理，是否使能了double buffer。
3. 使用MindStudio工具对算子进行UT测试，利用UT测试的性能仿真工具展示算子的调度流水线，并进行详细的性能数据分析。

  - MTE指令的执行流水线分析。
    若MTE1~MTE3指令的执行流水相对于整个时钟周期的占比超过80%，则说明DMA搬移性能较差，此种情况需要重点关注解决。

    若MTE指令的执行流水不连续，则说明搬运搬出数据时的并行度不高。

  - Vector指令的执行流水线分析。
    若Vector指令的执行流水不连续，则说明Vector计算单元未被充分利用，需要审视同步指令的使用情况及指令的并行度。

    若Vector指令的执行流水相对于整个时钟周期的占比超过80%，说明当前Vector计算单元已被充分利用，若想继续进行性能提升，需要对指令并行度、算法是否最优等进行审视。
