乘积累加运算(Multiply Accumulate, MAC)
转自: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)相关推荐
- 【深度学习】python矩阵乘积运算(multiply/maumul/*/@)
在训练数据时经常涉及到矩阵运算,有段时间没有练习过了,手便生疏了,今天重新测了一把,python中各类矩阵运算举例如下,可以清楚的看到tf.matmul(A,C)=np.dot(A,C)= A@C都属 ...
- 数学连乘和累加运算符号_3,7,5之间加数学运算符号使结果等于8?
展开全部 3x5-7=8.这是简单的算术题目. 把数和数的性质.数和数之间的四则运算在应用62616964757a686964616fe59b9ee7ad9431333433643131过程中的经验累 ...
- 【文献阅读02】基于模拟RRAM支持全并行乘累加运算的全集成78.4TOPS/W存算芯片
标题:A Fully Integrated Analog ReRAM Based 78.4TOPS/W Compute-In-Memory Chip with Fully Parallel MAC C ...
- MySQL中只会count(),sum()?累加运算没听过?
点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者 | 码农小胖哥 来源 | 公众号「码农小胖哥」 01 前言 接了一个需求,产品想分析一 ...
- 数学连乘和累加运算符号_2020中考数学 初中数学有理数计算(干货)
初中数学有理数计算 数学试卷发下来后,经常听到有同学这样说,"我就是太粗心"- 然而,老师却回复了一句,"我不相信关于粗心的任何解释"!因为任何的粗心都是有清楚 ...
- 数学连乘和累加运算符号_数学符号归纳
1.几何符号 ⊥ ∥ ∠ ⌒ ⊙ ≡ ≌ △ 2.代数符号 ∝ ∧ ∨ - ∫ ≠ ≤ ≥ ≈ ∞ ∶ 3.运算符号 如加号(+),减号(-),乘号(×或·),除号(÷或/),两个集合的并集(∪),交 ...
- 数学连乘和累加运算符号_期中复习:小学数学各年级知识点和重点、难点大全!...
kan'wan'l 点击↑蓝字关注 --分享最优质教育资源 给孩子高质量的帮助 ● 关于我们 ● ●●● ●●● 教育之音在线,致力于服务中小学各年级家长,每天准时分享最新教育资讯.各年级学 ...
- 两个累加符号∑如何计算,以及如何用python实现两个∑累加运算 | markdown下latex公式对齐
两个累加符号说明: ∑ ∑ \sum\sum ∑∑ 在看文章的时候有时候会看到有些公式有两个连续的 ∑ ∑ \sum\sum ∑∑符号,是不是有一点不知道如何计算,下面咱们就来盘一盘它! 1.下面我们 ...
- 数学连乘和累加运算符号_看完这篇专栏,别再傻傻地写一大长串的加号和乘号了 #总和与连乘#...
连乘符号∏ 圆周率π,想必大家小学甚至幼儿园时便耳熟能详了.π的小写我们都清楚是表示圆的周长与直径之比,其值约为3.14,.当我们把π的小腿给捋直,再放大,得到的门似的图形就是π的大写.它是这样的:连 ...
最新文章
- Pentaho Data Integration 界面开发
- Anaconda安装与环境配置
- Git、GitHub、GitLab三者之间的联系以及区别
- AWS Loft的数据库周
- pycharm项目目录结构_「Actix-web项目」-项目整体目录结构
- 同一表单内设置两个或两个以上的提交按钮 Two submit buttons in one form
- mysql去重操作哪个最快_如何将 MySQL 去重操作优化到极致?| CSDN 博文精选
- eds能谱图分析实例_SPC控制图公式_均值极差SPC控制图公式应用实例分析
- Unity3D游戏开发之Unity3D场景编辑器扩展开发
- 会计学原理与财务报表分析
- vue项目之UI插件:Element-UI的基本使用
- 修复win10 服务器失败怎么办,fatal error怎么解决win10 修复Win10系统问题
- acwing 206 石头游戏 矩阵快速幂
- Python Tkinter 下载器 多任务下载+多线程下载+多任务断点续存
- paddle video_tag paddle.fluid.io.xmap_readers
- java文件长度_Java中的音频文件长度
- jquery.chained与jquery.chained.remote使用以及区别
- Moco测试知多少?什么是moco?如何使用?
- VMware安装群晖
- 企业级微服务构建-01搭建和使用Maven私有仓库(Nexus)-05仓库管理
热门文章
- STM32中断优先级彻底讲解
- 【Android每日一讲】2012.11.27 向左或向右 - RadioGroup组与onCheckedChanged事件
- Window下安装Rabitmq的插件以及激活
- MySQL之索引,执行计划及SQL优化
- python strip函数用法_python中strip函数的用法
- 微信公众号留言评论功能最新开通信息讲解(内附留言功能开通视频信息讲解链接)...
- 调用bing图片html代码,网站背景调用必应Bing每日图片教程附接口
- WIN8系统的远程桌面漏洞 利用QQ拼音纯净版实现提权
- 微软开始为厂商提供 SQL Server 2014 OTM
- 【程序员讲装修】平台选择第三期