gpt4 book ai didi

c++ - Opencv 减法比乘法成本更低

转载 作者:行者123 更新时间:2023-11-28 07:25:09 25 4
gpt4 key购买 nike

我正在尝试优化图像处理项目的代码

Performance analysis done by VS2013 preview

VS2013 preview 的分析表明,减法运算比乘法(mul)运算成本更高。

一般来说,乘法比减法更昂贵。?如果是这样,为什么不在这里。?

最佳答案

我认为这可能是多种因素的结合。

  • t1需要在 subtract 期间分配打电话,这需要一点时间
  • t1t1.mul(t1) 期间很可能已经在缓存中调用,所以访问更快
  • 我不确定是什么类型 td是,但我敢打赌有一个 saturate_cast添加 1 时对矩阵中的每个元素继续进行至 td ; .mul() 中不需要类型转换电话
  • 减法和乘法都是内存密集型操作,因此对于除最小矩阵以外的所有其他矩阵,适当优化的代码将隐藏乘法指令的较高延迟,以实现两种操作相同的吞吐量,所有其他条件都相同(例如,缓存等)
  • .mul()调用是就地操作,这对缓存有显着优势
  • 如果这是项目的发布版本,优化器可能会重新安排代码,使分析器混淆哪些耗时的机器指令对应于哪些代码行。您会对 OpenCV 中矩阵算术运算的优化实现所涉及的那种深奥的魔法感到惊讶。

关于c++ - Opencv 减法比乘法成本更低,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18877408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com