4月13日,计算机所的大礼堂里,黑压压坐满了人。
主席台上方悬挂着横幅:“星河计划第三次全体会议——昆仑工程可行性论证会”。
台下座位分为四个区域。
最前排,首长、钱先生、孙老几位并排坐着,低声交谈。
他们身后,是星河计划二十七个技术组的组长。
哈工大包康建、西军电秦世襄、数学所陈教授、物理所周先生、长光所的王先生、封装组组长……每一张面孔背后,都是一个国家级科研团队,一张覆盖全国的协作网络。
左侧区域,计算机所的夏先生带着三十多名骨干,正在翻阅手里的材料。
他们是昆仑工程的牵头实施单位,今天要听的是需求,也是“任务”。
右侧区域,红星所的宋颜教授、吴国华、钱兰等人坐在一起。
6305厂的陈光远、郑长枫、刘工等人坐在一起。
吕辰坐在宋颜旁边,手里捏着几页稿纸,指节有些发白。
两侧的旁听席上,星河计划一百多家成员单位的代表挤得满满当当。
这是星河计划成立以来,规格最高、规模最大的一次全体会议。
刘星海教授走上主席台。
他扫视全场,缓缓开口:“同志们,今天这个会,是星河计划第三次全体会议。”
“第一次全体会议,是在1962年的‘百工联席会议’上,星河计划正式立项。那时候,我们只有一张蓝图,四项边缘技术,二十七个组还凑不齐人。”
“第二次全体会议,是在1963年第二次百工联系会议期间,我们拿出了红星一号计算器,证明了星河计划这条路,走得通。”
他顿了顿,语气凝重而有力:“今天是第三次。”
“在讲今天的正题之前,我先向各位汇报两件事。”
“第一件:6305厂,贯通了。”
台下响起一阵压抑的骚动。
刘星海的声音像在给历史旁白:“1964年4月7日,超纯水系统联调成功,光刻机完成最终调平,涂胶显影机、刻蚀机、扩散炉全部安装就绪。全厂一百零七套核心设备,二百六十八公里管线,全部贯通。1200名工人、500名技术员、350名电路设计师已经入驻。”
“第二件,”他看向陈光远,“陈厂长,你来说。”
陈光远站起来,激动宣布:“各位领导,各位专家,6305厂向各位汇报,五微米工艺,已经在6305厂线跑通了。”
“第一批红星一号的量产芯片,正在封装测试。良率15%,有望半年内提高到六成以上。”
全场安静了几秒,然后爆发出热烈的掌声。
首长带头鼓掌,脸上露出难得的笑容。
钱先生坐在那里,缓缓点头。
掌声平息后,刘星海继续说:“同志们,这意味着什么?”
“意味着星河计划从图纸走向了现实。意味着我们自己的集成电路,从实验室走向了生产线。意味着6305厂这个孩子,已经能站起来了。”
他话锋一转:“但是,站起来了,然后呢?”
“芯片造出来了,往哪儿用?装在哪里?跑什么?”
“装在计算器里,只能算加减乘除。装在仪表里,只能显示几个数字。这点用处,配不上我们三年来的心血,配不上二十七个组一百多家单位的付出,更配不上国家对我们的期望。”
“芯片的价值,不是造出来,是用起来。”
他走到黑板前,写下两个字:昆仑
“今天要论证的,就是这个用起来的地方。”
刘星海指着黑板上的字:“昆仑是什么?”
“它不是一台普通的计算机。”
“它是向量运算系统。”
他在黑板上一笔一划写下这四个字。
“什么是向量运算?”
“普通计算机,是一个数一个数算。叫标量运算。”
“向量运算,是一批数一批数算,像列队冲锋,而不是单兵作战。”
“打个比方,你要算一百个数的平方。普通计算机要算一百次;向量运算,一次就算完。”
他顿了顿:“为什么我们要做向量运算?”
“因为炼钢厂的热处理线数字孪生,要算的是整个温度场的分布;哈工大的磁盘仿真,要算的是磁畴的集体翻转;气象局的预报,要算的是大气层的整体运动……”
“这些东西,用普通计算机算,等不起。”
“用向量运算,才有可能。”
他看向吕辰:“小吕,你上来,把架构讲透。”
吕辰深吸一口气,站起来,走向主席台。
台下几百双眼睛落在他的身上,有期待,有审视,有怀疑,也有好奇。
他走到黑板前,拿起粉笔。
“各位老师,我先画个图。”
他在黑板上画了一个三层结构。
底层,是一个方阵,标着“向量处理单元阵列”。
中层,是两个并排的方块,一个标“向量存储系统”,一个标“时钟同步系统”。
上层,是一个宽宽的方块,标“向量化算法接口”。
“这是昆仑的架构。”
他转过身:“底层,是计算核心。基于五微米集成电路,每个芯片包含多个向量处理单元。这些单元可以同时执行相同的指令,处理不同的数据。”
“中层,是存储与同步。包教授的磁盘阵列,要能‘成批’喂数据;秦教授的时钟系统,要保证所有处理单元‘步伐一致’。”
“上层,是算法接口。把需要计算的数据,从‘一个一个算’翻译成‘一批一批算’。”
他顿了顿:“这不是冯·诺依曼架构。”
“冯·诺依曼是‘单指令单数据’,一个指令,处理一个数据。”
“昆仑是‘单指令多数据’,一个指令,处理一批数据。”
“这套架构,我们叫它:向量并行计算架构。”
台下安静了几秒。
然后,钱先生举手了。
他盯着黑板上的三层结构:“小吕,你刚才说,‘单指令多数据’,一个指令,处理一批数据。我问你一个问题:怎么保证这一批数据,都适用于同一个指令?”
钱先生进一步解释:“数据是有差异的。同样是温度场,有的地方温度高,有的地方温度低。你把它们塞到一起算,用同一个公式,会不会把‘不同’强行变成‘相同’?”
吕辰愣了一下。
钱先生继续说:“向量运算的优势,在于‘整齐划一’。但现实世界的数据,往往是不整齐的。你要让不整齐的数据‘向量化’,就得先做预处理,把数据分类、对齐、填充,让它们变得整齐。这个预处理的代价,你想过没有?”
吕辰沉默了几秒:“钱先生,我想过。但我没算过。”
“我的初步判断是,对于魏教授的数字孪生,数据本身是连续的、有规律的,预处理代价相对可控。但对于一些离散的、不规则的问题,可能不适合向量化。”
“所以昆仑的定位,不是通用计算机,是专用科学计算系统,专门跑那些能向量化的问题。”
钱先生点了点头:“好。知道自己能干什么、不能干什么,比什么都能干强。”
他回到座位。
钱先生刚坐下,包康建举手了:“小吕,你那个‘中层’,有我们存储组的磁盘。我问你:向量运算,一次要喂一批数据。这个‘一批’是多大?”
吕辰道:“取决于问题。可能是几十个,可能是几百个。”
包康建点头:“好。那我问你,磁盘的寻道时间是毫秒级的,数据传输率是KB/s级的。你那个一批数据,如果存得七零八落,磁盘要花多少时间去找?”
吕辰沉默。
包康建教授定论:“你那个‘向量存储’,不是把数据存进去就行,是要保证数据‘摆得整齐’,连续存放、按需预取。否则,磁盘就是瓶颈,向量单元就得干等着。”
他看向夏先生:“夏所长,你们搞过磁盘文件系统吗?”
夏先生摇头:“没有。我们只研究过磁带。”
包康建笑了:“那正好。哈工大搞了三年磁盘,文件系统是现成的。但那是给‘标量’用的,不是给‘向量’用的。要匹配昆仑,得重新设计。”
他看向吕辰:“小吕,这个问题,算不算‘昆仑的问题’?”
吕辰点头:“算。而且是大问题。”
包康建道:“好。那我认领了,存储组负责研究‘向量化文件系统’。”
包康建刚坐下,秦世襄举手了。