亲,双击屏幕即可自动滚动
第347章 湍流的颜色(求订阅求月票)
    四月的芝加哥,天气是个狡猾的骗子。

    透过戈登综合科学中心(GCIS)的双层隔热玻璃,阳光铺在橡木地板上,泛着金色的暖意。

    但只要推开那扇沉重的金属防火门,密歇根湖吹来的湿冷风就会立刻教你做人。

    那是种渗入骨髓的阴冷,能瞬间冻僵面部肌肉,把呼出的热气变成白雾。

    林允宁推开206实验室的门。

    冷风倒灌,搅动了室内原本沉闷的空气。

    陈旧的红牛酸味,混合着刚冲泡的星巴克深烘咖啡焦香,扑面而来。

    实验室里充斥着一种令人焦虑的低频底噪??

    那是服务器机架上几十个散热风扇全速运转的啸叫。

    在这个底噪之上,是机械键盘青轴那种清脆、密集、不间断的敲击声。

    咔哒咔哒。

    节奏快得让人心率加速。

    赵晓峰缩在墙角的人体工学椅里。

    椅背被拆掉了,取而代之的是一个硬邦邦的记忆棉靠垫,强行矫正着他的脊椎。

    他面前竖着两块24寸的戴尔显示器。

    屏幕亮度调到了最高。

    幽蓝色的荧光映在他满是油光的脸上,把那个深陷的眼窝照得惨白。

    桌面上是灾难现场:

    红色的Xilinx Virtex-5FPGA开发板散落着,连接线纠缠成乱麻,几根探针危地悬在桌沿。

    三罐捏扁的红牛易拉罐堆成了一个摇摇欲坠的金字塔。

    旁边,是一袋敞口的奇多,橙色的粉末洒在了黑色的鼠标垫上。

    而在实验室的另一头,靠窗的位置,是绝对的静止。

    苏畅穿着一件宽松的灰色针织开衫,整个人陷在阴影里。

    办公桌面干净整洁,只有几张写满字的A4纸。

    她盯着窗外光秃秃的橡树枝桠,眼球几乎一动不动,甚至连呼吸的起伏都难以察觉。

    手中的圆珠笔在指间无意识地转动,笔尖悬在纸面上方一毫米处,迟迟没有落下。

    “醒醒神。”

    林允宁把手里的托盘放在公共桌上,纸杯底座磕在桌面上,发出沉闷的响声。

    “馥芮白是晓峰的,燕麦拿铁是苏畅的。没加糖,只有咖啡因。”

    赵晓峰像是被触发了某种硬件中断,猛地从代码堆里拔出脑袋。

    他眼球上布满了红血丝,眼神聚焦了足足两秒才看清来人。

    “林老师......你真是我的救命恩人。”

    赵晓峰抓过咖啡,甚至没试温就灌了一大口。

    滚烫的液体顺着食道滑下去,他龇牙咧嘴地吸了口气,随后长叹一声,整个人瘫软在椅子上。

    "Re-20在FPGA上的并行化遇到了死结。”

    他指了指屏幕上一条陡峭上升然后突然断崖式下跌的红色曲线,声音沙哑,“为了追求吞吐量,我把流水线拆到了极致,每个时钟周期都塞满了乘法运算。

    “现在的推理速度提升了30%,但是......”

    他用力敲了敲回车键,屏幕弹出一串报错日志。

    “内存墙(memory wall)。ddR3的带宽被吃光了。计算单元大部分时间都在空转,等待数据从内存搬运过来。

    “这感觉就像你开着一辆法拉利,却被堵在了晚高峰的肯尼迪高速上,只能怠速烧油。”

    林允宁脱下沾着冷气的羽绒服,挂在椅背上。

    他拉过一把椅子,坐在赵晓峰旁边,眼神扫过屏幕上那些密密麻麻的时序图。

    “别想着怎么把数据从内存里搬来搬去,晓峰。那是无用功。

    “冯?诺依曼架构的局限性,没办法单凭算法越过去的。”

    林允宁从卫衣口袋里掏出那张在机场候机时随手画的草图,抚平了上面的褶皱,推到赵晓峰面前。

    图上没有复杂的电路逻辑,只有一堆排列整齐的方块,中间用单向箭头串联起来,形成了一个紧密的矩阵。

    “这是什么?”

    赵晓峰推了推鼻梁上厚重的眼镜,凑近看了看,“二维网格?每个节点只有局部连接......这拓扑结构看着眼熟。H.T. Kung的脉动阵列(Systolic Array)?”

    “识货。”

    林允宁满意地点了点头。

    赵晓峰作为清华姚班出身的硬核极客,不仅基础扎实,也称得上是博闻强记。

    “可是那是70年代的老古董了,”

    赵晓峰眉头拧成了疙瘩,“那是为了做专用矩阵乘法设计的,灵活性太差,编程难度极高。

    “现在谁还用这个?大家都转投GPU了,CUdA才是未来。”

    “GPU的设计初衷是图形渲染,它的缓存机制是为了纹理映射,不是为了深度学习里的张量计算。”

    林允宁拿起一支笔,在草图的方块上点了点。

    “既然我们要做AI专用芯片,为什么要追求通用性?

    “我要的就是极致的矩阵乘法效率,哪怕它连个如果是(if-else)都算不了。”

    他随手在白板上写下一行算式:

    C[i][j]+= A[i][k]* B[k][j]

    “在传统的架构里,每算一次乘加运算,你就要去内存里读一次A,读一次B,再写回一次C。这种频繁的读写就是你在高速公路上遇到的红绿灯。”

    林允宁的手指顺着草图上的箭头滑动。

    “但在脉动阵列里,数据不是‘存取”的,而是‘流动'的。

    “左边的计算单元(PE)接收数据,完成一次乘法,加上局部结果,然后直接传给右边的邻居。

    “上边的传给下边。数据在芯片内部流动一次,就被榨干了所有的计算价值,最后才写回内存。”

    赵晓峰盯着那张图,狠狠吞了口口水。

    他的手指在桌面上飞快地敲击,似乎在脑海里重新构建电路的时序。

    “没有全局总线......全是局部互连...………如果这样的话,”

    他喃喃自语,“我可以省掉至少40%的片上缓存控制逻辑,把省下来的硅片面积全部塞满乘法器(mAC)。如果不考虑分支预测和乱序执行这些乱七八糟的东西……………”

    “对,就是这个思路。”

    林允宁拍了拍他的肩膀,“这个作业交给你了。不用设计完整的TPU,先用Verilog给我写一个16x16的脉动阵列原型。这对你来说并不难,一个月就能搞定吧。”

    “两周。”

    赵晓峰接受了挑战,顿时来了精神。

    他把那袋奇多扔进垃圾桶,转过身面对屏幕。

    手指悬在键盘上方停顿了一秒,然后噼里啪啦地敲击起来,节奏比之前更快、更狠。

    “只要你不嫌弃我的Testbench写得烂。”

    林允宁笑了笑,端起自己的黑咖啡,转身走向窗边。

    那边的静止区域依然存在。

    苏畅保持着之前的姿势,仿佛被透明的树脂封存了。

    实验室里嘈杂的键盘声、风扇声,甚至赵晓峰刚才的抱怨,都在她周围的一米处自动消音。

    直到林允宁走到她面前,挡住了窗外刺眼的阳光,在她的桌面上投下一片阴影。

    苏畅迟钝地抬起头。

    她的瞳孔处于一种不自然的放大状态,眼神没有焦距,像是穿透了林允宁的身体,看着虚空中的某一点。

    “林老师。

    她小声叫道,声音很轻,带着一丝从深海浮上来的窒息感。

    “那个持续同调(Persistent Homology)的作业,”

    林允宁靠在窗台上,视线落在她面前的那几张纸上,“条形码(Barcode)图算出来了吗?”

    那是一张由计算机生成的拓扑特征图。

    横轴是过滤参数(Filtration),纵轴是同调群的特征生成元。

    正常的条形码图应该是一条条清晰的长短线段,代表着数据中存在的拓扑结构(如孔洞、空腔)的寿命。

    但苏畅面前的这张图,乱得像一团被猫抓过的毛线。

    “我研究了几个月,”

    苏畅低下头,手指按着太阳穴,似乎在压抑某种眩晕感,“在低维的时候,贝蒂数(Betti Number)很稳定。那些条形码是长线,结构很清晰,很光滑。但是......”

    她指了指图表右侧的高维投影区域。那里的线条崩碎成了无数细小的短线,密密麻麻地挤在一起,那是大量的拓扑噪声。

    “当我把参数调高,进入高维投影的时候,数据的‘质感’变了。”

    苏畅深吸了一口气,试图描述那种感觉,“它们不再是平滑的流形。那些数据点......它们变得很‘涩”。就像是用砂纸打磨玻璃,充满了不连续的尖刺。

    “我的大脑一直在试图把它们平滑化,但是做不到。那里有无数个微小的孔洞在瞬间产生又瞬间消失,这种震荡......让我恶心。

    实验室另一头的赵晓峰忍不住回头吐槽了一句:

    “苏畅,你这是在做数学还是在做胃镜?数据还能让你恶心?”

    苏畅没有理会,她只是死死盯着那些破碎的线条:

    “那里没有稳定的结构,只有混乱的撕裂。”

    林允宁点了点头。他知道苏畅的联觉症并非某种魔法视觉,而是一种过载的模式识别??

    她的大脑将数学上的“不收敛”和“震荡”,转化为了生理上的排斥反应。

    “那是拓扑噪声,也是湍流的特征。”

    林允宁转身,拿起一支粉笔。粉笔灰在阳光下飞舞,落在他的袖口上。

    他在苏畅身后的黑板上,写下了一个方程。

    au/?t +(u?V)u = 0

    这是欧拉方程,描述无粘流体运动的最基础方程。

    “苏畅,别去想那些点云了。看着这个。”

    林允宁的声音很平静,不带任何评判,“如果我让你盯着这一项………………”

    他用粉笔圈出了对流项(u.7)u。

    “......在一个封闭的环面(Torus)上演化,你感觉到了什么?”

    苏畅抬起头,目光落在那个公式上。

    她没有看到什么发光的特效,也没有看到彩色的电影。

    她只是盯着那个非线性项,大脑开始自动进行某种高维几何的构建。

    那个(u.?)u代表着自我的输运,代表着速度场对自身的扭曲和拉伸。

    在她的认知里,这个算子开始疯狂地迭代。

    “它在………………变紧。”

    苏畅的眉头皱了起来,那种生理性的不适感再次袭来。

    她感到一种压迫感,就像是有一根无限长的弦,正在被不断地缠绕、收紧。

    “没有阻力。它在自我叠加。”

    苏畅的声音变得有些急促,“梯度在变大。越来越陡峭。空间被折叠得太密了......它无法通过了。”

    她下意识地抓住了桌角,指关节发白。

    “它会卡住。在某一点,斜率会变成垂直的。那是......那是无穷大。”

    苏畅闭上眼睛,仿佛被那种极致的“尖锐”刺痛了神经,“那里没有体积了,只剩下一个无限致密的点。

    “非常刺眼,非常尖锐。这种结构无法在现实中存在,它会把空间‘扎破’。”

    赵晓峰敲键盘的手停了一下。

    虽然他不懂流体力学,但他听懂了那个描述??

    那是程序里的死循环,或者是除以零的错误。

    林允宁目光沉静。

    “换句话说,就是有限时间爆破(Finite-time Blowup)。”

    林允宁解释道,“对于三维欧拉方程,你的直觉是对的。那个‘无限致密的点,就是速度梯度的发散。数学上,这是一个奇点;物理上,这是一个灾难。”

    他顿了顿,拿起黑板擦。

    他在那个方程的右边,加上了一项:

    =vvzu

    这是粘性项。加上这一项,它就变成了纳维-斯托克斯方程(Navier-Stokes Equations)。

    “现在呢?”林允宁问。

    苏畅再次看过去。

    她的呼吸慢慢平复下来,紧锁的眉头也舒展开了。

    拉普拉斯算子2代表着扩散,代表着平均化。

    在她的感知里,那个即将断裂、崩坏的尖锐结构,被这一项包裹住了。

    那种极致的张力开始向四周耗散。尖锐的峰值被抹平,变成了一个圆润的鼓包。

    “它......糊掉了。”

    苏畅睁开眼睛,那种刺痛感消失了,取而代之的是一种浑浊的平静,“那种尖锐的东西消失了。

    “但是结构也变得模糊了。就像是一滴墨水滴进了水里,边界消失了,只剩下大片大片的混乱。我看清了整体,但看不清细节了。”

    “因为粘性耗散了能量,也抹平了奇点。”

    林允宁扔掉粉笔头,拍了拍手上的灰。

    “但也正是因为这一项,让流体变得‘浑浊,也就是湍流。我们看不清它的结构,也不知道它是否永远平滑。”

    他看着苏畅,目光中带着一丝期许:

    “你的联症很有用,苏畅。你能感知到方程的‘性格’。

    “现在在有些人制作的火箭引擎里,现在就充满了这种‘浑浊的混乱’。

    “工业界的软件算不准它,因为它们只是在盲目地拟合。”

    林允宁指了指黑板上的方程:

    “我需要你帮我做件事。

    “我会给你一组经过特定拓扑变换的涡旋数据。

    “当然,不需要你去解这个困难的偏微分方程,你只需要用你的直觉去感受??在那片浑浊的混乱里,有没有哪个瞬间,那个‘尖锐的刺’又冒头了?”

    苏畅愣了一下,随即重重地点了点头。

    那种被需要的感觉,让她眼底的疲惫消散了不少。

    “好了,干活吧。”

    林允宁转身回到自己的办公桌前。

    他打开ThinkPad,屏幕的荧光映在他脸上。

    通过刚才对苏畅的测试,以及对SpaceX数据的模拟,他确认了一件事:

    不管是赵晓峰正在做的TPU(为了暴力计算),还是苏畅的直觉(为了定性寻找异常点),都只是辅助工具。

    要真正解决merlin引擎里的“热斑”,或者说,要真正理解那个“旁路转捩”的物理本质,他必须直面那个幽灵。

    ?纳维-斯托克斯方程的存在性与光滑性。

    千禧年七大数学难题之一。

    这不是一个工程问题,这是一个纯粹的数学噩梦。

    它像一堵看不见的墙,横亘在物理世界和数学世界之间。

    流体究竟是始终平滑的,还是会在某些极端条件下产生物理意义上的爆破?

    仅凭他现在的数学等级(虽然已经很高,但主要集中在代数几何和数论领域),硬刚这顶分析学领域的王冠,胜算微乎其微。

    他需要一把更锋利的刀。

    或者说,一个足够疯狂,足够纯粹的对手,来和他一起磨这把刀。

    林允宁打开邮箱,点击“撰写新邮件”。

    收件人一样,他输入了一个早已烂熟于心的地址。

    那个Id由一串毫无规律的字符组成,看起来像是一个废弃多年的僵尸号。

    但在数学界,它代表着一个活着的传奇,一个已经消失在公众视野中的幽灵。

    ...

    那是隐居在圣彼得堡,拒绝了菲尔兹奖,拒绝了克雷研究所百万美元奖金,只与老母亲相依为命,靠啃黑面包和发酵酸奶度日的一

    格里戈里?佩雷尔曼。

    林允宁的手指在键盘上悬停了片刻。

    窗外的雨终于落下来了。

    雨滴打在玻璃上,汇聚成一股股蜿蜒而下的水流。

    轨迹混乱而不可预测,像极了那些该死的湍流。