开发者
资源
[object Object]

【优先级】中

【描述】GlobalTensor和LocalTensor中通过ShapeInfo类型的成员变量来保存shape信息,SetShapeInfo/GetShapeInfo可以设置或者获取ShapeInfo,在算子实现内部用于shape信息保存和传递。默认情况下支持的最大维度为8。在不使用上述ShapeInfo功能的情况下,不需要这些信息,可以通过K_MAX_SHAPE_DIM宏将其设置为0。经实测减小K_MAX_SHAPE_DIM值,可缩减栈空间,减少scalar指令和cache miss几率,提升算子性能。

[object Object]

【反例】

算子无需使用ShapeInfo,但未对ShapeInfo大小进行限制(使用默认值8),导致浪费K_MAX_SHAPE_DIM * sizeof(uint32_t) * 2 * 4字节的栈空间。2表示有shape和originalShape两个数组,4表示该样例中使用了GlobalTensor和LocalTensor共4个Tensor。

[object Object]

【正例】

算子无需使用ShapeInfo,设置#define K_MAX_SHAPE_DIM 0,有效缩减了K_MAX_SHAPE_DIM * sizeof(uint32_t) * 2 * 4大小的栈空间。

[object Object]