【CANN训练营2023年第二季】我玩的就是真实!!Ascend C核函数如何声明中间变量
收藏回复举报
【CANN训练营2023年第二季】我玩的就是真实!!Ascend C核函数如何声明中间变量
发表于2023-10-14 10:46:36
0 查看

PS:巨量时间,不断踩坑,悲凉血泪史,总结成的小小见解。

如果各位觉得写的还行,劳请各位老师们点赞收藏一波!!各位老师的鼓励是我坚持写作的动力!!

我玩的就是真实!!!我玩的就是真实!!!我玩的就是真实!!!

这是个挺好的问题,以下解决方案仅代表个人见解,如果有更好的方案,希望大家不吝提出,共同学习

问:Ascend C核函数如何声明中间变量?

这个问题来源于论坛某位大佬提出的问题,本人在编写sinh的过程中也遇到这个问题

所以就想记录下个人思路

cke_4868.png

下面就直接贴代码展示了,直接声明

TBuf<TPosition::VECCALC> calcBuf1;
TBuf<TPosition::VECCALC> calcBuf2;
TBuf<TPosition::VECCALC> calcBuf3;

在应用的时候使用以下代码

pipe.InitBuffer(calcBuf1, this->tileLength * sizeof(float));
        pipe.InitBuffer(calcBuf2, this->tileLength * sizeof(float));
        pipe.InitBuffer(calcBuf3, this->tileLength * sizeof(float));
LocalTensor<float> bufLocal1 = calcBuf1.Get<float>();
        LocalTensor<float> bufLocal2 = calcBuf2.Get<float>();
        LocalTensor<float> bufLocal3 = calcBuf3.Get<float>();

PS:巨量时间,不断踩坑,悲凉血泪史,总结成的小小见解。

如果各位觉得写的还行,劳请各位老师们点赞收藏一波!!各位老师的鼓励是我坚持写作的动力!!

我玩的就是真实!!!我玩的就是真实!!!我玩的就是真实!!!

本帖最后由 匿名用户2023/10/14 11:22:33 编辑

我要发帖子