2024第一期CANN训练营】->全面掌握Ascend C算子调用活动->8.0.RC2.alpha003与8.0.RC1.alpha002中TPipe对于VECALC的InitBuffer方法调用参数不一致问题
1)问题现象:Ascend-cann-toolkit_8.0.RC2.alpha003与8.0.RC1.alpha002的TPipe对于TBuf<AscendC::TPositioin:: VECALC>::isTQue的InitBuffer方法的调用参数调不一致
2)操作过程:安装Ascend-cann-toolkit_8.0.RC1.alpha002_linux-aarch64.run开发环境可以正常运行,升级Ascend-cann-toolkit_8.0.RC2.alpha003_linux-aarch64.run后系统编译报错
定义部分:TPipe pipe; TBufTPosition::VECCALC tmpBuffer1; TBufTPosition::VECCALC tmpBuffer2;
初始化部分:pipe.InitBuffer(tmpBuffer1, BUFFER_NUM, this->tileLength * sizeof(float)); pipe.InitBuffer(tmpBuffer2, BUFFER_NUM, this->tileLength * sizeof(float));
3)问题处理:把报错部分代码 pipe.InitBuffer(tmpBuffer1, BUFFER_NUM, this->tileLength * sizeof(float)); 改成 pipe.InitBuffer(tmpBuffer1, this->tileLength * sizeof(float));可以生成算子
4)小结:遇到这类问题可以先查文档,华为的CANN技术栈迭代比较快,所以要特别注意版本匹配,然后在论坛查类似问题、发贴,再请培训的讲师解惑,最后感谢华为CANN训练营老师耐心指点。