近似计算-简单举例 复数乘法和strassen算法

本文探讨了计算效率的重要性,特别是在AI、通信和并发等高计算需求领域。介绍了如何通过一维复数计算和二维矩阵运算的优化方法来节约计算资源,如Strassen算法,虽然实际应用中可能存在一些局限,但仍然揭示了计算优化的巨大潜力。此外,还提到了近似计算和高性能计算领域的进步,以及浮点截位设计如何进一步提高效率。
摘要由CSDN通过智能技术生成

原因

计算是第一生产力,节约计算等于提升了计算效率,自然就有巨大价值。尤其是AI、通信、并发这些耗计算大户下。

方法

以前从来没接触过,所以没法长篇大论,只举例我自己知道的2个。一维的复数计算(或者类似(a+b)*(c+d)这种多项式乘法),二维的矩阵计算

一维复数计算,每4次乘法节约1次,提效25%

  • 原本计算(a+jb)(c+jd) = (ac -bd) + j(bc + ad), 4次乘法一目了然。
  • 节约计算:先算x= (a+b)(c-d) = (ac-bd)+bc-ad; 左侧只有1次乘法(加法耗计算比乘法几乎忽略不计,所以比算力一般是mfps浮点乘法算的),再算y = ad ,z = bc 需要两次计算; 最后 (a+jb)(c+jd) = (x+y-z) +j(-y+z) 得到最终值;
  • 非常简单,节约了一次计算,每次复数乘都能介于,效果显著,原理粗暴,就是简单代数。

二维矩阵,最初strassen算法,8次乘节约1次,提效12.5%

  • 上述原理可以由数学家进一步拓展到2D,矩阵乘法,通过7次代数乘,替代一次8次乘法的矩阵乘法。 f ( n ) = 7 f ( n / 2 ) + θ ( n ) f(n) =7f(n/2)+\theta (n) f(n)=7f(n/2)+θ(n) ,则由主分析法知道他削减了nxn维度两个矩阵相乘,从 θ ( n 3 ) \theta(n^3) θ(n3) θ ( n l o g 2 7 ) = θ ( n 2.8 ) \theta(n^{log_2^7})=\theta(n^{2.8}) θ(nlog27)=θ(n2.8)
  • 十分惊人,详细strassen算法有兴趣可见:link 矩阵乘法中的strassen算法
  • strassen实用比较少,原因是1)专用的sparse稀疏矩阵更加高效,是专门优化点,替代通用优化; 2)计算量、时间量和存储综合起来,优势不明显。 3)误差累积问题比直接3阶矩阵乘略差(这点现在基本被否了,只是部分场景的恶化) 4)中间存储7个子矩阵比较耗资源(这点也被否了,得益于大容量电子存储、内存器件,存储不怎么care,而且存储量增长并不大)

小结

继续探索近似计算下去,还有高性能计算,结合定浮点截位设计,效果更佳惊人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值