文档
注册

使用场景

在介绍动态shape之前,我们先了解固定shape的使用场景。

固定shape使用场景是:在编译时指定shape大小,运行时不需要指定shape大小。在开发固定shape算子过程中,一个算子源代码可以支持多个固定shape,只是在编译时明确了shape的实际值。

而动态shape使用场景是:在编译时不指定shape大小,在运行时传入实际的shape大小。算子编译后的二进制文件支持任意shape,或者一个或多个shape范围。

  • 固定shape的优点:
    1. 由于固定shape在编译时指定shape大小,所以在编译时决定所有tensor的大小,存储空间利用率高。
    2. 在编译时可以针对实际的shape大小做针对性优化。
    3. 固定shape和动态shape相比,算子代码里的循环次数等操作不需要在运行时实时计算。而是在编译时计算,因为这些计算属于Scalar操作,由于昇腾AI处理器擅长并行指令运行,不擅长逻辑计算。如果有太多的Scalar操作可能会打断并行指令的运行,从而导致性能下降。
    4. 固定shape和动态shape相比,由于指令的参数是常量,不是变量,编译工具在编译时知道确切操作数据大小,所以不会额外插入同步。不会导致本来多个指令可以并行执行,变成串行执行,从而导致性能下降。
  • 固定shape的缺点:

    每个shape对应一个算子二进制,算子管理复杂性增加。

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词