哈雷瓦的上午,阳光亮得有些过曝。
一艘白色的阿兹慕游艇切开太平洋的表层,在身后拖出两条翻滚的白浪。
两台沃尔沃遍达引擎(Volvo Penta)低沉地轰鸣着,把甲板震得微微发麻。
克莱尔?王趴在船头的日光浴垫上。
她换了一套金色的亮片比基尼,背后的带子解开了,露出一整片毫无遮挡的光洁背部。
阳光洒在上面,那层防晒油泛着腻人的光泽。
“佩妮!左边一点!对,要把那边的山和我的腿都拍进去!”
克莱尔手里举着一杯还没喝的香槟,正在指挥方佩妮找角度。
方佩妮穿着严严实实的防晒衣,头上戴着宽檐帽,手里捧着那台沉重的单反相机,像个战地记者一样半蹲在甲板上,满头大汗地调整焦距。
“克莱尔姐,反光太强了,你的墨镜上全是我的影子......”
方佩妮小声抗议。
“那就修图!PS会不会?把你自己P掉!”
船尾的阴凉处,方雪若正翘着二郎腿坐在柚木椅上。
她戴着一顶巨大的拉菲草帽,帽檐压得很低,身上是一件黑色的深V连体泳衣。
她手里拿着一瓶指甲油,正专心致志地给自己的脚趾甲涂上一层猩红色的漆。
海风吹乱了她额前的碎发,她也不管,动作稳得像是在签几亿美金的支票。
“埃琳娜呢?”方雪若涂完最后一个脚趾,拧上瓶盖,头也不抬地问。
“刚下去。”
程新竹趴在栏杆上,指着海面。
顺着她的手指看去,一个矫健的身影正在蓝黑色的深水里破浪前行。
埃琳娜穿着专业的竞速泳衣,双臂像风车一样轮转,每一次划水背部的肌肉群都像岩石一样隆起。
她不是在游泳,她是在跟大海搏斗。
二层的飞桥甲板上。
风很大,吹得林允宁的沙滩裤猎猎作响。
他站在跳台边缘,低头看着下面深不见底的海水。
这里离海面有五六米高。
沈知夏站在他旁边,那是运动员特有的站姿,双脚分开与肩同宽,脚趾紧紧扣着防滑垫。
她低头看了一眼,喉咙动了一下。
“有点高啊。”
沈知夏眯着眼,声音被风吹得有点散。
这和跨栏不一样。
这里没有跑道,只有晃动的蓝色深渊。
林允宁转过头看她。
她没化妆,眉毛被水打湿了,贴在眉骨上,显得那双眼睛格外黑亮。
他没有说什么“别怕”之类的废话,只是把右手伸了过去,手掌摊开。
“沈教练,怂了?”
林允宁嘴角勾起一点弧度,眼神清亮,“要不要我先下去接着你?”
沈知夏眉毛一挑。
那种刻在骨子里的胜负欲瞬间被点燃了。
“谁怕谁!”
她一把扣住林允宁的手。
掌心贴着掌心,手指穿过指缝,死死扣紧。
“数到三!”
“? ! ”
"="
两人同时发力。大腿肌肉紧绷,蹬离甲板。
身体腾空。
失重感瞬间包裹了全身,心脏像是被一只手提到了嗓子眼。
风声在耳边呼啸。
两人在空中划出两道并行的弧线,手依然紧紧握在一起。
“噗通!”
海水重重地拍在脚底板上,瞬间变成了包裹全身的清凉。
水下是一个蓝色的静音世界。
气泡在耳边咕噜噜地升腾,光线在水面上折射成破碎的金网。
林允宁感觉到了海水的阻力,也感觉到了手里那只手的力量。
两人借着惯性下潜了几米,然后开始上浮。
“哗啦!”
两人同时破水而出。
林允宁抹了一把脸上的水,大口吸着咸湿的空气。
头发湿漉漉地搭在前额,水珠顺着睫毛往下滴。
他转过头,正好看见沈知夏像只水?一样猛地甩头,发梢的水珠甩出的一圈晶莹的弧线。
她睁开眼,大笑着看向林允宁,还没等身形稳住,突然扑了过来。
双手按住林允宁的肩膀,恶作剧地用力往下一压。
"..."
林允宁猝不及防,又喝了一口海水。
他在水下搂住沈知夏的腰,双腿踩水,猛地发力,两人再次浮出水面。
这一次,两人的距离极近。
鼻尖几乎碰到了鼻尖。
海水在两人胸口起伏。
“刚才在空中,”
林允宁盯着她的眼睛,声音有些喘,“你抓得我手好紧。指甲都掐进肉里了。”
沈知夏脸红了一下,但在晒伤妆般的小麦色皮肤上看不明显。
她在水下用膝盖轻轻顶了林允宁一下。
“少臭美,那是怕你临阵脱逃,拽着你不让你跑。”
她嘴硬,但手却依然搭在他的肩膀上,没有松开。
不远处,游艇上传来克莱尔的口哨声和方佩妮的惊呼声。
阳光很烈,海水很蓝。
这一刻,没有复杂的算法,没有必须要赢的商业战争,只有肾上腺素褪去后的松弛和心跳。
下午三点。
正值大退潮。
游艇停靠在了一片无人沙洲(Sandbar)旁。
原本淹没在海面下的白色沙滩露了出来,像一条白色的鲸鱼脊背,把海水劈成了两半。
克莱尔和方雪若还在船上享受空调和下午茶。
程新竹和方佩妮蹲在沙洲的一头,正在进行一项浩大的工程一一堆沙堡。
或者说,是在挖水渠。
程新竹拿着一个小塑料铲子,指挥若定:“Penny,这边的护城河要挖深一点,引海水进来,不然城堡太干了会塌。”
佩妮老老实实地用手刨着沙子,挖出一条弯弯曲曲的沟槽,连通了海水。
海水顺着沟槽流进来,灌满了那个所谓的“护城河”。
林允宁坐在不远处的一块礁石上,手里拿着一瓶科罗娜啤酒,已经温了。
他没喝。
他的视线死死地盯着那条水渠。
水在流。
沙子不动。
水流经过沙子构成的弯道时,被沙壁阻挡,改变了方向,流速也发生了变化。
“不动......”
林允宁喃喃自语。
他的脑子里,昨天那个“脉动阵列”的概念正在疯狂生长,但遇到了一个巨大的工程障碍能耗。
如果你要让几百万个数据在芯片里跑来跑去,就像是一群人在搬砖。
每次从内存(dRAm)里读取数据,消耗的能量是从本地缓存(SRAm)读取的几百倍。
如果每个时钟周期,都要把权重(weights,神经网络的参数)搬进搬出,那这块芯片还没算完第一层网络,就会因为过热而烧毁。
热力学定律,就是这样冷酷。
他盯着方佩妮手里的动作。
她把一堆湿沙子堆在水渠中间,做成了一个阻挡块。
水流冲过来,漫过沙堆,继续流向下一个坑。
沙堆没动。
只有水在动。
“权重......驻留(weight Stationary)。”
林允宁的瞳孔猛地收缩。
为什么要把权重搬来搬去?
如果把权重当成这些固定的沙子呢?
把权重数据预先加载到每一个计算单元(PE)里,锁死。
然后让输入数据(Inputs) 像这股海水一样,从左边流进去,流过这一个个固定的“沙堆”。
在流动的过程中,数据和权重完成乘法运算。
算出来的结果(部分和,Partial Sums),再像接力棒一样,流向下游的单元。
这样,权重数据只需要读取一次!
内存访问量瞬间降低了一个数量级!
“系统。”
林允宁扔掉手里的啤酒瓶,瓶子落在沙地上,发出一声闷响。
【启动模拟科研】
【课题:基于权重驻留(weight Stationary)机制的脉动阵列能效分析。】
【注入模拟时长:500小时。】
周围的欢笑声、海浪声瞬间消失。
意识沉入那个纯白的逻辑空间。
【第10小时:你构建了一个16x16的二维阵列。每个单元包含一个乘加器(mAC)和本地寄存器。】
【第50小时:你尝试了“输出驻留”和“输入驻留”,发现都不如“权重驻留”节能。因为在卷积神经网络中,权重矩阵的复用率最高。】
【第150小时:你模拟了数据流。输入数据从左向右流动,部分和(Partial Sums)从上向下流动。每个时钟周期,所有单元同时工作。像心脏泵血一样,数据在阵列中有节奏地“脉动”。】
【第300小时:能耗分析。相比传统的冯?诺依曼架构(CPU/GPU),这种架构减少了90%的内存访问。能效比(ToPS/w)提升了30倍!】
【第480小时:你发现了一个问题。数据流动的时序必须极其精准。你需要设计一套复杂的FIFo(先进先出队列)缓冲机制,来保证数据在正确的时间到达正确的位置。这就好比几百列火车同时进站,不能撞车。】
【模拟结束。】
林允宁猛地眨眼。
现实世界的阳光重新刺入视网膜。
他跳下礁石,冲到方佩妮挖的那条水沟旁。
“老板?你也要玩沙子吗?”
方佩妮举着沾满沙子的小手,一脸茫然。
林允宁没理她。
他直接伸手,抓起一把湿润的沙子,在手里用力一捏,捏成一个结实的方块,拍在地上。
“这是乘法器。"
他又抓了一把,拍在旁边。
“这是寄存器。”
他眼神狂热,自言自语:
“不动如山,动如流水......这就是张量处理单元的灵魂。”
黄昏。
潮水开始上涨。
海水一点点吞噬着白色的沙洲,留给他们的领地越来越小。
其他人已经回到了游艇上准备晚餐。
只有林允宁还在沙滩上。
他找了一根漂流木,在一块尚未被海水浸湿的平整沙地上,疯狂地画着图。
那不再是小孩子的涂鸦。
那是精密的工程蓝图。
一个个方块代表着PE(处理单元),箭头代表着数据流向。
data_in -> [ mAC | w]->[mAC] w ]->...
他在旁边标注着密密麻麻的算式:
Latency = 3N - 2
Buffer_size = N
他完全沉浸在自己的世界里,连海水已经打湿了脚背都没感觉到。
这就是他要找的答案。
专门为AI生的芯片。
抛弃通用性,追求极致的矩阵计算效率。
“给。”
一个声音在头顶响起。
沈知夏光着脚站在他身边,手里拎着两瓶冰啤酒。
她换了一件宽松的白T恤和牛仔短裤,长发被海风吹得乱糟糟的。
林允宁停下笔,抬起头。
眼神还有点发直,像是刚从另一个维度穿越回来。
“喝口水吧,嘴唇都起皮了。”
沈知夏把啤酒递给他,然后盘腿坐在他旁边的沙地上。
她看了一眼地上那幅鬼画符一样的图,虽然看不懂,但她知道这东西对林允宁很重要。
“快涨潮了。”
她指了指不远处正在逼近的浪线。
“再给我十分钟。”
林允宁喝了一口啤酒,又迅速趴回去,“还有一个数据对齐的问题没解开。”
沈知夏没催他。
她放下啤酒瓶,站起身。
她走到图纸的外围,也就是浪水涌来的方向。
她蹲下身,开始用手刨沙子。
她在林允宁的图纸外围,筑起了一道半米高的沙坝。
动作很快,很有力。
海水涌过来,撞在沙坝上,被挡住了。
虽然这道堤坝撑不了多久,但足够争取十分钟。
林允宁的余光看到了这一幕。
那个穿着白T恤的女孩,正像个守护神一样,挡在海浪和他那些脆弱的思想火花之间。
心里某块地方软了一下。
但他没停笔。
手中的木棍划动得更快了。
十分钟后。
“搞定。”
林允宁扔掉木棍,长长地出了一口气。
整个架构逻辑闭环了。
但就在这时,一个大浪打过来。
“哗啦!”
沈知夏筑起的那道沙坝终于撑不住了,缺口崩塌。
海水涌了进来,瞬间冲刷过那片沙地。
方块、箭头、公式......
那些价值千金的灵感,在几秒钟内被抹平,只剩下一片湿漉漉的平整沙滩。
“哎!”
林允宁急了,下意识地伸手去捞,手里只抓了一把泥沙。
“别急。”
沈知夏拍了拍手上的沙子,从兜里掏出手机,在他眼前晃了晃。
屏幕上,是那张图纸的高清照片。
每一根线条,每一个标注,都清晰可见。
“早就帮你拍下来了。”
沈知夏笑得眉眼弯弯,夕阳在她身后镀了一层金边,“我就知道你画完肯定得忘。
林允宁看着她,又看了看那部手机。
他突然伸手,把她揽进怀里,用力抱了一下。
“这是我未来要造的‘大脑’。”
他在她耳边轻声说,声音里压抑着兴奋,“有了它,我们就能让计算机真的‘思考,而不是仅仅计算。”
沈知夏虽然不太懂,但她感觉到了他胸腔的震动。
她回抱住他,拍了拍他满是沙子的后背。
“行,不过造人工大脑的事情以后再说,现在该填填肚子了。”
她指了指游艇的方向,“克莱尔她们在烤肉,再不回去,肉都要被埃琳娜吃光了。”
夕阳沉入海面。
两人手牵手,踩着没过脚踝的海水,走向那艘灯火通明的游艇。
在那片被海水抹平的沙滩下,一颗关于人工智能未来的种子,已经悄然埋下。