hbSysMem是否要执行clean、invalidate

1.芯片型号:J5

2.天工开物开发包OpenExplorer版本:J5_OE_1.1.29

3.问题定位:API使用问题

4.问题具体描述:你好,假设我现在有如下网络。其中前一次前推的output2的结果是后一次前推的input2的输入。

  1. 我是否可以这样写代码? 分配两块buffer:hbSysMem buffer[2],第一次前推 直接input2.sysMem[0] = buffer[0];output2.sysMem[0] = buffer[1]。第二次前推input2.sysMem[0] = buffer[1];output2.sysMem[0] = buffer[0]。以此类推。
  2. 如果这样写可以,那这两块buffer是不是可以不执行clean和invalidate操作?

您好,地平线工具链在持续迭代优化,为了给您提供更好的服务,希望您能抽出3分钟左右的时间,将您在使用工具链期间的感受和建议告诉我们,您的宝贵意见对我们很重要,非常感谢!-
问卷链接:地平线算法工具链使用满意度反馈

你好,不是用带cache的内存,是可以不执行clean和invalidate的,从经验看,推荐使用带cache的内存哈,详细解读可见社区文章:https://developer.horizon.cc/forumDetail/177840463137677546

另外,建议升级一下OE版本哈,新版工具链获取链接:https://developer.horizon.cc/forumDetail/118363912788935318

我这个分配的是带cache的内存。所以一定要执行clean和invalidate?

在文章中有写呀,麻烦看一下文章

额,你可能没有仔细看问题具体描述。我知道正常带cache的内存是肯定要clean和invalidate的。但是,我现在的前推代码中不会操作这两块的内存。所以是不是就可以省去clean和invalidate的操作?

如果确认不涉及计算器件(CPU、BPU等)的读写,是可以的,建议实践看一下是否会影响精度

好的,谢谢解答。