王至刚思考了一会。
“那这样,”
“第一步,解决验证问题。”王至刚说道,“我会和无锡方面打招呼。超级计算机,哪怕停掉所有的气象仿真任务,也要把全部节点腾出来。这方面我会去协调。”
他看向何亭波:“海丝不需要等流片。你们派最好的软件团队过去,利用神威的众核架构,写一个‘软件仿真器’。把slr算法放进去跑,用软件仿真硬件行为,用电费和算力换时间。”
何亭波的瞳孔微微收缩。”。
用庞大的算力去填补硬件开发的空窗期,确实能把漫长的迭代压缩到极限。
“如果有神威兜底,通过软件仿真硬件行为,仿真数据准确度能做到95以上。这个方案在物理上是可行的。”
“第二步,解决定制单元与eda问题。”王至刚继续说道,“我原则上同意你的要求。华大九天的刘总已经在路上了。科技部会设专项资金,让他们的一百人内核算法团队,尽快飞往深圳。”
他顿了顿,补充道:“你提到的‘算子硬化’和‘定制单元库’,是这场仗的关键。这种级别的联合开发,我来做担保。合作中如果有什么商业壁垒或知识产权的问题,直接找我来协调。特事特办,一切为了lpu。”
……
解决了硬件和工具,王至刚的目光转向了长桌的另一侧。
“第三步,生态。我们需要为lpu打造一套属于中国的‘cuda’。”
提到cuda,在座的几位软件负责人神色都有些凝重。
“老陈,你搞架构出身,你说说看,cuda为什么能拢断?”王至刚点名寒武纪的陈天石。
陈天石推了推眼镜,一针见血地说道:“cuda的成功,不是因为它的硬件最快,而是因为它把门坎降到了最低。”
“二十年前,想调用显卡计算,需要懂图形学,那是极少数人的特权。英伟达做了一件事:它把复杂的图形硬件,封装成了简单的c语言接口。它让一个不懂硬件的物理学家、生物学家,也能用显卡去跑仿真。这种通用性,才是护城河。”
陈天石看向王至刚:“所以,lpu要想活下来,我们必须开发一套‘中间层’,把slr复杂的逻辑推演,封装成简单易用的工具。”
“谁来做这件事?”王至刚问,“对标英伟达的,应该是摩尔线程?”
“摩尔线程不行。”陈天石摇头,“他们在全力做gpu兼容,那是存量市场的命根子,人手抽不出来。而且lpu的逻辑范式和gpu完全不同,需要全新的编译器技术。”
王至刚的目光在几位巨头之间巡梭,最后定格在何亭波和陈天石身上。
“那就搞‘混合编队’。”
王至刚拍板道:“寒武纪出一支懂理论的队伍,负责定义‘指令集架构(isa)’,你们要把数学公式翻译成机器码;海丝出一支懂工程的队伍,负责做‘编译器’和‘驱动层’,你们要把机器码封装成好用的api。”
“那应用层的深度学习框架呢?”有人追问,“是不是要指定一家牵头?”
“不。”
王至刚摇了摇头,嘴角露出一丝从容的笑意:“这一块,反而要‘放’。”
“我们只需要死死守住底层的指令集和编译器,这就是‘书同文,车同轨’。至于上层是用什么框架来写文章,随他们去。”
他站起身,走到窗前:“阿狸、腾讯、字节,他们手里有场景,有开发者,更有危机感。一旦lpu展现出算力优势,他们会比我们更急着把自家的框架适配上来。”
“谁适配得好,开发者就用谁。这种‘百团大战’,恰恰是我们生态最需要的养料。只要根扎在我们手里,上面开什么花,都属于中国。”
……
任务分配完毕。没有掌声,没有激昂的口号。
几位半导体巨头默默收拾起面前那三页薄薄的纸。
纸虽轻如鸿毛,事却重若千钧。
王至刚看着他们起身的背影,突然觉得这群人很象是一支敢死队。
窗外,西山暮色苍茫,雾气深锁。
他们推门而出,一头扎进这无边的暗夜。
去造那一束光。
……
数天后,无锡,国家超级计算中心。
凌晨三点,机房内依然灯火通明。
巨大的led屏幕上,实时显示着“神威·太湖之光”的负载状态。往日里那些蓝色的气象仿真任务块全部消失了,取而代之的是一片刺眼的红色——那是最高优先级的“lpu架构仿真”任务。
海丝首席架构师李工,正带着团队在进行lpu架构的全系统仿真。
他们面临着一个内核决择:数据精度与带宽的平衡。
在芯片设计中,这就象是在走钢丝。精度高了,数据量就大,传输信道(带宽)就会堵死;精度低了,计算结果就不准,模型就会变傻。
“李工,全精度浮点数fp32方案的仿真结果出来了。”
一位负责微架构的博士指着屏幕上的数据,面色凝重,“虽然计算准确率完美,但片上缓存(sra)的命中率只有40。大量的数据堵在路上,计算单元有一半时间在空转。”
片上缓存就象是芯片内部的“临时仓库”,离计算内核最近,速度最快。如果仓库太小,或者数据太大塞不进去,计算内核就得停下来等数据从外面运进来,效率会大打折扣。
李工看着数据,眉头紧锁。slr模型中,每一个逻辑概念都是一个高维空间中的“盒子”。推理过程,就是成千上万个盒子在空间中不断求交集、求并集。这些“盒子”的数据量太大了。
“我们必须压缩数据。”李工沉声道,“但在哪里压?怎么压?”
会议室里,几位内核骨干围坐在白板前,展开了激烈的讨论。
“试试量化?转成8位整数t8?”有人提议。
“不行。”另一位算法专家立刻反驳,“slr的内核是计算盒子的体积,这代表概率。体积计算需要连乘,连乘对精度非常敏感。t8的精度不够,连乘几次误差就飞了。”
讨论陷入了短暂的僵局。
这时,一直盯着徐辰论文推导过程的一位资深工程师,在白板上写下了一个公式:vo = exp(∑ log(l?))。
“大家看,”他指着公式说道,“徐辰在论文里提到,为了数值稳定性,概率计算最好在对数域进行。”
“对数域……”李工若有所思,“在对数域里,乘法会变成加法,除法会变成减法。”
“没错!”那位工程师接着推演,“如果我们让lpu内部的所有数据,从输入那一刻起,就全部转换为对数形式存储和传输呢?”
众人的眼睛逐渐亮了起来。这不是灵光一闪,而是顺着数学逻辑推导出的必然方向。
“在对数域下,数据的动态范围会极大压缩。”李工迅速在脑海中构建架构图,“原本需要32位浮点数才能表示的概率值,在对数域下,可能只需要16位甚至更少的定点数就能表示,而且精度损失极小。”
“不仅如此,”另一位硬件专家补充道,“加法器的电路面积和功耗,远小于乘法器。如果我们把内核计算全变成了加减法,那就能省下大量的晶体管,用来堆更多的内核!”
“唯一的难点是gubel-softps算子,它需要非线性变换。”
“查表法。”李工当机立断,“神威的异构核正好擅长做这个。全对数域数据流+查表法’的精度损失。”
十分钟后,结果出炉。
“误差小于1e-5!完全在slr的鲁棒性范围内!”
“好!”李工猛地一拍桌子,“就定这个架构!全对数域数据流。掉一半,功耗降低60!这才是lpu该有的样子!”
“准备打包rtl代码。”李工下达了指令,“通知深圳那边,前端设计已经封版,可以开始物理综合了。”
……