为什么要把权重搬来搬去?
如果把权重当成这些固定的沙子呢?
把权重数据预先加载到每一个计算单元PE里,锁死。
然后让输入数据Inputs像这股海水一样,从左边流进去,流过这一个个固定的“沙堆”。
在流动的过程中,数据和权重完成乘法运算。
算出来的结果部分和,PartialSums,再像接力棒一样,流向下游的单元。
这样,权重数据只需要读取一次!
内存访问量瞬间降低了一个数量级!
“系统。”
林允宁扔掉手里的啤酒瓶,瓶子落在沙地上,发出一声闷响。
【启动模拟科研】
【课题:基于权重驻留WeightStationary机制的脉动阵列能效分析。】
【注入模拟时长:500小时。】
周围的欢笑声、海浪声瞬间消失。
意识沉入那个纯白的逻辑空间。
【第10小时:你构建了一个16x16的二维阵列。每个单元包含一个乘加器MAC和本地寄存器。】
【第50小时:你尝试了“输出驻留”和“输入驻留”,发现都不如“权重驻留”节能。因为在卷积神经网络中,权重矩阵的复用率最高。】
【第150小时:你模拟了数据流。输入数据从左向右流动,部分和PartialSums从上向下流动。每个时钟周期,所有单元同时工作。像心脏泵血一样,数据在阵列中有节奏地“脉动”。】
【第300小时:能耗分析。相比传统的冯?诺依曼架构CPUGPU,这种架构减少了90%的内存访问。能效比TOPSW提升了30倍!】
【第480小时:你发现了一个问题。数据流动的时序必须极其精准。你需要设计一套复杂的FIFO先进先出队列缓冲机制,来保证数据在正确的时间到达正确的位置。这就好比几百列火车同时进站,不能撞车。】
【模拟结束。】
林允宁猛地眨眼。
现实世界的阳光重新刺入视网膜。
他跳下礁石,冲到方佩妮挖的那条水沟旁。
“老板?你也要玩沙子吗?”
方佩妮举着沾满沙子的小手,一脸茫然。
林允宁没理她。
他直接伸手,抓起一把湿润的沙子,在手里用力一捏,捏成一个结实的方块,拍在地上。
“这是乘法器。"
他又抓了一把,拍在旁边。
“这是寄存器。”
他眼神狂热,自言自语:
“不动如山,动如流水。。。。。。这就是张量处理单元的灵魂。”
黄昏。
潮水开始上涨。
海水一点点吞噬着白色的沙洲,留给他们的领地越来越小。