首页 > 其他 > 详细

矩阵运算为何高效

时间:2020-10-17 11:46:08      阅读:91      评论:0      收藏:0      [点我收藏+]

来从计算机的角度解释一下矩阵运算为何高效:
(以下计算均为粗略估算,并未严格考虑运行过程中的各种因素)
假设AxB=C,其中A,B,C均为一亿乘一亿的二维矩阵
则Cij=Σ(Aik x Bkj),
为了算出Cij需要108次乘法运算和108-1次加法运算
那么为了计算出矩阵C就需要1024次乘法运算和1024-1次加法运算
这在5GHz(每秒执行5x109次乘法或加法运算)的单核CPU上运行需要4x1014秒(约为0.1亿年);
但C11和C12的计算过程互不干扰,那么可以让CPU的第一个核心计算C11,第二个核心计算C12,
以此类推,那么这个矩阵运算在线程撕裂者3990x(128个逻辑核心,4.5GHz的核心频率)上计算则需要3.5x10^12秒(约11万年);
若该运算在12块RTX3090的GPU上(核心频率1.7GHz,每块有10496个核心,共计125952个计算核心)运行的话大约需要9亿秒(不到三百年);
若在TPU(张量处理器,将乘法器和加法器串联,三千个周期即可算出两个2048x2048维度的矩阵乘法,硬件上加速了矩阵乘法运算)上计算的话,
将原矩阵分为5w x 5w维的矩阵,每个元素均为2k x 2k维的子矩阵,算出每个子矩阵的结果后,再将5w x 5w维的矩阵再次拆分分25x25维的矩阵,
重复以上计算,一共计算了2.5x10^9次2k x 2k维的矩阵乘法,
若该TPU的时钟频率为1.5GHz,则每秒可执行五十万次2k x 2k维度的矩阵乘法,
那么计算出一亿为的矩阵乘法仅需要五千秒,不到一个半小时!
(来自某推文评论,侵删)

矩阵运算为何高效

原文:https://www.cnblogs.com/seanry/p/13830282.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!