转自:https://www.mobibrw.com/2019/17864

乘积累加运算(英语:Multiply Accumulate, MAC)是在数字信号处理器或一些微处理器中的特殊运算。实现此运算操作的硬件电路单元,被称为“乘数累加器”。这种运算的操作,是将乘法的乘积结果和累加器 A 的值相加,再存入累加器:

若没有使用 MAC 指令,上述的程序可能需要二个指令,但 MAC 指令可以使用一个指令完成。而许多运算(例如卷积运算、点积运算、矩阵运算、数字滤波器运算、乃至多项式的求值运算)都可以分解为数个 MAC 指令,因此可以提高上述运算的效率。

MAC指令的输入及输出的数据类型可以是整数、定点数或是浮点数。若处理浮点数时,会有两次的数值修约(Rounding),这在很多典型的DSP上很常见。若一条MAC指令在处理浮点数时只有一次的数值修约,则这种指令称为“融合乘加运算”/“积和熔加运算”(fused multiply-add, FMA)或“熔合乘法累积运算”(fused multiply–accumulate, FMAC)。

积和熔加运算

融合乘加运算的操作和乘积累加的基本一样,对于浮点数的操作也是一条指令完成。但不同的是,非融合乘加的乘积累加运算,处理浮点数时,会先完成b×c的乘积,将其结果数值修约到N个比特,然后才将修约后的结果与寄存器a的数值相加,再把结果修约到N个比特;融合乘加则是先完成a+b×c的操作,获得最终的完整结果后方才修约到N个比特。由于减少了数值修约次数,这种操作可以提高运算结果的精度,以及提高运算效率和速率。

积和融加运算可以显著提升像是这些运算的性能和精度:

  • 点积
  • 矩阵乘法
  • 多项式方程求解(像是秦九韶算法等)
  • 牛顿法求解函數的零点

积和融加运算通常被依靠用来获取更精确的运算结果。然而,Kahan指出,如果不加思索地使用这种运算操作,在某些情况下可能会带来问题。[1]像是平方差公式x2 − y2,它等价于 ((x×x) − y×y),若果x与y已知数值,使用积和融加运算来求结果,哪怕x = y时,因为在进行首次乘法操作时无视低位的有效比特,可能会使运算结果出错,如果是多步运算,第一步就出错则会连累后续的运算结果接连出错,比如前述的平方差求值后,再取结果的平方根,那么这个结果也会出错。

参考链接

  • W.Kahan. IEEE Standard 754 for Binary Floating-Point Arithmetic. May 31, 1996.
  • 乘积累加运算

乘积累加运算(Multiply Accumulate, MAC)相关推荐

  1. 【深度学习】python矩阵乘积运算(multiply/maumul/*/@)

    在训练数据时经常涉及到矩阵运算,有段时间没有练习过了,手便生疏了,今天重新测了一把,python中各类矩阵运算举例如下,可以清楚的看到tf.matmul(A,C)=np.dot(A,C)= A@C都属 ...

  2. 数学连乘和累加运算符号_3,7,5之间加数学运算符号使结果等于8?

    展开全部 3x5-7=8.这是简单的算术题目. 把数和数的性质.数和数之间的四则运算在应用62616964757a686964616fe59b9ee7ad9431333433643131过程中的经验累 ...

  3. 【文献阅读02】基于模拟RRAM支持全并行乘累加运算的全集成78.4TOPS/W存算芯片

    标题:A Fully Integrated Analog ReRAM Based 78.4TOPS/W Compute-In-Memory Chip with Fully Parallel MAC C ...

  4. MySQL中只会count(),sum()?累加运算没听过?

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 01 前言 接了一个需求,产品想分析一 ...

  5. 数学连乘和累加运算符号_2020中考数学 初中数学有理数计算(干货)

    初中数学有理数计算 数学试卷发下来后,经常听到有同学这样说,"我就是太粗心"- 然而,老师却回复了一句,"我不相信关于粗心的任何解释"!因为任何的粗心都是有清楚 ...

  6. 数学连乘和累加运算符号_数学符号归纳

    1.几何符号 ⊥ ∥ ∠ ⌒ ⊙ ≡ ≌ △ 2.代数符号 ∝ ∧ ∨ - ∫ ≠ ≤ ≥ ≈ ∞ ∶ 3.运算符号 如加号(+),减号(-),乘号(×或·),除号(÷或/),两个集合的并集(∪),交 ...

  7. 数学连乘和累加运算符号_期中复习:小学数学各年级知识点和重点、难点大全!...

    kan'wan'l 点击↑蓝字关注 --分享最优质教育资源     给孩子高质量的帮助 ● 关于我们 ● ●●●  ●●● 教育之音在线,致力于服务中小学各年级家长,每天准时分享最新教育资讯.各年级学 ...

  8. 两个累加符号∑如何计算,以及如何用python实现两个∑累加运算 | markdown下latex公式对齐

    两个累加符号说明: ∑ ∑ \sum\sum ∑∑ 在看文章的时候有时候会看到有些公式有两个连续的 ∑ ∑ \sum\sum ∑∑符号,是不是有一点不知道如何计算,下面咱们就来盘一盘它! 1.下面我们 ...

  9. 数学连乘和累加运算符号_看完这篇专栏,别再傻傻地写一大长串的加号和乘号了 #总和与连乘#...

    连乘符号∏ 圆周率π,想必大家小学甚至幼儿园时便耳熟能详了.π的小写我们都清楚是表示圆的周长与直径之比,其值约为3.14,.当我们把π的小腿给捋直,再放大,得到的门似的图形就是π的大写.它是这样的:连 ...

最新文章

  1. Pentaho Data Integration 界面开发
  2. Anaconda安装与环境配置
  3. Git、GitHub、GitLab三者之间的联系以及区别
  4. AWS Loft的数据库周
  5. pycharm项目目录结构_「Actix-web项目」-项目整体目录结构
  6. 同一表单内设置两个或两个以上的提交按钮 Two submit buttons in one form
  7. mysql去重操作哪个最快_如何将 MySQL 去重操作优化到极致?| CSDN 博文精选
  8. eds能谱图分析实例_SPC控制图公式_均值极差SPC控制图公式应用实例分析
  9. Unity3D游戏开发之Unity3D场景编辑器扩展开发
  10. 会计学原理与财务报表分析
  11. vue项目之UI插件:Element-UI的基本使用
  12. 修复win10 服务器失败怎么办,fatal error怎么解决win10 修复Win10系统问题
  13. acwing 206 石头游戏 矩阵快速幂
  14. Python Tkinter 下载器 多任务下载+多线程下载+多任务断点续存
  15. paddle video_tag paddle.fluid.io.xmap_readers
  16. java文件长度_Java中的音频文件长度
  17. jquery.chained与jquery.chained.remote使用以及区别
  18. Moco测试知多少?什么是moco?如何使用?
  19. VMware安装群晖
  20. 企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-05仓库管理

热门文章

  1. STM32中断优先级彻底讲解
  2. 【Android每日一讲】2012.11.27 向左或向右 - RadioGroup组与onCheckedChanged事件
  3. Window下安装Rabitmq的插件以及激活
  4. MySQL之索引,执行计划及SQL优化
  5. python strip函数用法_python中strip函数的用法
  6. 微信公众号留言评论功能最新开通信息讲解(内附留言功能开通视频信息讲解链接)...
  7. 调用bing图片html代码,网站背景调用必应Bing每日图片教程附接口
  8. WIN8系统的远程桌面漏洞 利用QQ拼音纯净版实现提权
  9. 微软开始为厂商提供 SQL Server 2014 OTM
  10. 【程序员讲装修】平台选择第三期