乘积累加运算

✍ dations ◷ 2025-04-02 16:25:45 #乘积累加运算

乘积累加运算(英语: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指出,如果不加思索地使用这种运算操作,在某些情况下可能会带来问题。像是平方差公式2 − 2,它等价于 ((×) − ×),若果x与y已知数值,使用积和融加运算来求结果,哪怕 = 时,因为在进行首次乘法操作时无视低位的有效比特,可能会使运算结果出错,如果是多步运算,第一步就出错则会连累后续的运算结果接连出错,比如前述的平方差求值后,再取结果的平方根,那么这个结果也会出错。

相关

  • 心血管疾病心血管疾病(英语:cardiovascular disease,簡稱CVD)指的是关于心脏或血管的疾病,又称为循环系统疾病、循环系统疾病。常见的心血管疾病包括冠状动脉症候群、中风、高血压性心脏病(
  • 肠道血管发育不良肠道血管发育不良是肠道血管异常增生而引起下消化道慢性失血。由于是间断性出血,诊断检查时不出血,因此难诊断。肠道血管的异常状态,无法解释的肠道出血与贫血。损害常是多重的
  • 耻骨联合耻骨联合 (拉丁语 : Symphysis Pubis )是位于耻骨左右上支之间的软骨关节,并相互连接。 它位于膀胱的前面和下面。 在男性中,阴茎的悬韧带附着在耻骨联合上。 在女性中,耻骨联合紧
  • 吉尔特·霍夫斯塔德吉尔特·霍夫斯塔德(Geert Hofstede,1928年10月2日-2020年2月12日)是一名荷兰社会学家、心理学家。他在管理IBM期间,研究并发表了”各国间的霍夫斯塔德行为模式(Hofstede’s Model
  • 罗伯特·贝克韦尔 (农学家)罗伯特·贝克韦尔(Robert Bakewell,1725年-1795年),英国农学家,被认为是英国农业革命的重要人物。在农学领域,贝克韦尔是首位实现家畜系统选育的人。他不仅率先对绵羊、牛和马进行
  • 李于阳李于阳(1784年-1826年),字占亭,号即园。其祖为大和县望族,即园二岁时,随父迁居民明。他善于诗,亦能词,诗名满昆华、苍洱之间,与民明藏纲孙、额淳、强磺、楚雄池春生并称为“昆华五子”
  • 哈桑·阿卜杜拉·图拉比哈桑·阿卜杜拉·图拉比(阿拉伯语:الدكتور حسن عبد الله الترابي‎,英语:Hassan 'Abd Allah al-Turabi;阿拉伯语:حسن الترابي‎,英语:Hassan al-
  • 韩成韩成(?-前206年),战国时期韩国的宗室,秦朝末年,第一任韩王,后项羽疑其通汉王,问斩。汉高祖刘邦占据沛县起义时,韩成在去投靠项梁的途中,遇到五世相韩的张良,他们便一起去投靠项梁。后来,
  • 稚瑞照彦尊稚瑞照彦尊(わかみつてるひこのみこと,1873年9月18日-1873年9月18日)明治天皇的第一皇子。母叶室光子。作为天皇长子的稚瑞照彦尊出生当天即夭折,母亲叶室光子亦于4天后的9月22日
  • 乌吉吉乌吉吉是坦桑尼亚西部最古老的小镇,位于基戈马以南10公里、桑给巴尔以西,座标4°55′S 29°39′E / 4.917°S 29.650°E / -4.917; 29.650。乌吉吉是古时阿拉伯人的奴隶及象牙买卖中心,1978年人口约50,000,居民主要信奉伊斯兰教。坐标:4°54′S 29°41′E / 4.900°S 29.683°E / -4.900; 29.683