ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2021-06-05 19:02:34  阅读:183  来源: 互联网

标签:节约 矩阵 strassen 计算 近似计算 theta 乘法


原因

计算是第一生产力,节约计算等于提升了计算效率,自然就有巨大价值。尤其是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,计算,近似计算,theta,乘法
来源: https://blog.csdn.net/PerfeyCui/article/details/117603077

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有