一
秦风从钱永昌办公室出来的时候,口袋里揣着一张纸条。纸条上写着一个名字和一串电话号码。名字是钱永昌用钢笔写的,字迹苍劲有力——“老孙”。电话号码是研究院材料研究所的座机。
他站在研究院门口的台阶上,把纸条看了三遍,然后掏出手机拨了过去。电话响了七声,没人接。他又拨了一遍,响了五声,还是没人接。他把手机揣回兜里,跨上自行车,往家属区骑去。
“零零七,”他在心里说。
“嗯?”
“孙德茂这个人,你了解多少?”
“孙德茂,五十八岁,研究院材料研究所退休返聘专家。华夏一号合金的奠基人之一。他在材料领域了三十四年,从学徒到研究员,是华夏航天材料领域资格最老的那一批人。他主导研发的华夏一号合金,是目前国内最先进的航天材料,用在载人飞船、空间站、运载火箭上。”
“听起来挺厉害的。”
“厉害是厉害,但这人脾气臭,不好相处。在单位的时候,跟领导拍过桌子,跟同事吵过架,把新来的研究生骂哭过好几个。人送外号‘孙阎王’。退休后在家带孙子,谁都不见。钱永昌让他去找你,是给了他面子。换了别人,门都进不去。”
“阎王?”秦风的嘴角慢慢勾起一个痞痞的弧度。“我喜欢。”
“你上回听到‘韩阎王’也是这么说的。你就不能找点正常的人?”
“正常的人不了不正常的活。阎王好啊,阎王下面的人,都是能人。脾气大,是因为有本事。没本事的人,哪有脾气?”
“你这歪理,一套一套的。”
“不是歪理,是道理。”
秦风骑着自行车,穿过研究院的院子,拐进家属区。家属区在研究院的东边,是一大片老旧的住宅楼,六层高,外墙刷着米黄色的涂料,已经褪色了,一块深一块浅。楼间距不大,中间种着几排老槐树,树冠很大,遮出一大片阴凉。树下停着几辆自行车,几个老人在下棋,旁边围着几个看热闹的。一个老太太拎着菜篮子从秦风身边走过,看了他一眼,没说话。
秦风把自行车停在一棵槐树下,锁好,按照纸条上的地址找到了孙德茂的家。在三楼,门是老式的防盗门,漆面已经斑驳了,露出下面灰黑色的铁皮。门上的猫眼黑漆漆的,看不清里面。秦风抬手敲了三下,力度适中,不急不慢。
没人应。
他又敲了三下,比刚才重了一些。还是没人应。
他把耳朵贴在门上听了听,里面没有动静。他掏出手机看了一眼时间——下午两点四十。这个点,退休老头应该在睡午觉。但他不打算走。他靠在墙上,从口袋里摸出一颗棒棒糖,剥开糖纸扔进嘴里。草莓味的,甜。他把糖纸叠成一只很小的纸鹤,放在楼梯扶手上,然后双手进口袋,等着。
等了大概十分钟,门开了。
一个头发花白的老人站在门口,穿着一件洗得发白的蓝色工装,里面是白背心,脚上踩着一双拖鞋。工装的袖口磨得起毛了,领口有一块洗不掉的油渍。脸上的皱纹很深,像是被岁月一刀一刀刻出来的。眼睛不大,但很亮,像两颗钢珠,看人的时候带着一股子审视的劲儿。他上下打量着秦风,目光从头顶扫到脚底,又从脚底扫回头顶。
“你谁?”
“秦风。钱老让我来的。”
“钱永昌?”孙德茂的眉头皱了一下,然后松开了。他没有让开门口,而是继续挡在那里,像一堵墙。“他让你来什么?”
“请您出山。”
孙德茂哼了一声。“出什么山?我退休了。在家带孙子,挺好的。你回去吧。”
他说完就要关门。秦风伸出手,撑住了门。他的手不大,但很有力,门被他撑住了,关不上。孙德茂看了他的手一眼,又看了他一眼。
“你什么意思?”
“孙老,我就说几句话。说完就走。您听完,要是还觉得不行,我以后再也不来了。”
孙德茂盯着他看了三秒钟,然后松开了门,转身往屋里走。“进来吧。鞋别踩脏了地板。”
秦风跟着孙德茂走进客厅。客厅不大,但很整洁。沙发是老式的,铺着白色蕾丝罩子,罩子洗得发白,但很净。茶几上摆着一个搪瓷茶杯,杯壁上印着“先进工作者”几个字,红色的,已经有些模糊了。电视开着,声音很小,放的是一部抗战剧,屏幕上一个八路军战士正在喊“冲啊”。墙角有一张婴儿床,里面躺着一个一岁多的小孩,正在睡觉,小手握成拳头,举在脑袋两边,嘴巴微微张着,呼吸均匀。
孙德茂在沙发上坐下来,指了指对面的椅子。“坐。你说吧。”
秦风没有坐。他站在客厅中间,双手在口袋里,嘴角挂着痞笑。这个笑不是刻意的,是他天然的表情,不笑的时候也像是在笑。他的校服T恤皱巴巴的,头发翘着,运动鞋的鞋带松了一只,整个人看起来吊儿郎当的。但孙德茂注意到,他的眼睛很亮,不是那种被灯光照出来的亮,是从里面往外透的亮。
“孙老,您搞了一辈子材料,就这么在家带孙子,不觉得可惜?”
“可惜什么?”孙德茂端起茶杯,喝了一口,放下。“我该做的都做了。华夏一号合金,用在载人飞船上,用在空间站上,用在运载火箭上。我这一辈子,值了。剩下的,是你们年轻人的事。”
“您就不想再做点别的?”
“别的什么?”
秦风从口袋里掏出一个U盘,放在茶几上。U盘是银色的,金属外壳,上面刻着航天研究院的logo,边角磨得发亮。他把U盘推到孙德茂面前。“这里面有一个新的合金配方。代号华夏一号合金二代。强度比一代高百分之三十,耐高温高百分之五十,抗腐蚀性能提升三倍。您看看。”
孙德茂看了一眼那个U盘,没有伸手。他的目光在U盘上停了两秒钟,然后移开了。“不看。”
“为什么?”
“我说了,我退休了。这些事,不归我管了。”
“您是不相信我能搞出比一代更好的配方?”
孙德茂没有说话。但他的眼神变了。不是愤怒,是好奇。一个十五岁的孩子,说搞出了比华夏一号合金更好的材料。这不是狂妄,就是无知。但他知道钱永昌不会随便让一个孩子来找他。钱永昌那个人,一辈子不轻易开口。他开口了,说明这个孩子确实有点东西。
“你这孩子,”孙德茂靠在沙发上,双手交叉抱在前。“你几岁?”
“十五。”
“十五岁,搞出了新材料配方?”
“不是搞出来的,是算出来的。分子动力学模拟,跑了三千个小时。在我的笔记本上跑的,跑了三个月,中间死机了七次,重跑了七次。最后出来的数据,我验证了三遍,确认没问题,才写成方案的。”
孙德茂沉默了几秒钟。他的手指在沙发扶手上轻轻敲击,有节奏地发出“嗒嗒”声。那是他的习惯,思考的时候就会敲。“你说你算出来的?用什么软件?”
“开源的分子动力学软件,我自己改写了核心算法。原来的算法太慢,三千个小时跑不完。我优化了并行计算的部分,把计算效率提高了五倍。”
“你一个十五岁的孩子,改写分子动力学算法?”
“不是因为我聪明,是因为我用的笔记本太老了,不优化跑不动。人都是被出来的。”
孙德茂盯着他看了三秒钟,然后嘴角动了一下。那不是笑,是一种说不清的表情。“你这个人,有点意思。”他伸出手,拿起了U盘。“电脑在书房。跟我来。”
秦风跟着孙德茂走进书房。书房不大,三面墙都是书架,塞满了专业书和技术手册。书架的每一层都塞得满满当当,有些书横着塞在竖着的书上面,像牙齿不齐的人。书桌上放着一台老旧的台式电脑,屏幕是液晶的,但型号已经很老了,边框很宽,厚度像砖头。桌上还堆着几摞文件,一个放大镜,一把游标卡尺,一个生了锈的订书机。
孙德茂把U盘进去,打开文件夹。里面只有一个文档,标题是《华夏一号合金二代配方及制备工艺》。文件大小显示是1.8MB,创建期是五天前。他点开文档,开始看。
第一页,配方成分。秦风列了十三种元素,每一种的配比精确到小数点后四位。孙德茂的目光扫过那行数字,眉头皱了一下。这个配比,跟他搞了一辈子的华夏一号合金完全不一样。一代华夏一号合金是铁基的,加了铬、镍、钼,性能已经很好了。但秦风这个配方,是钛基的,加了铝、钒、锆,还加了稀土元素。这个方向,他从来没有想过。
第二页,制备工艺。秦风写了详细的工艺流程,从原料准备到熔炼铸造,从热处理到冷加工,每一个步骤都有温度、时间、压力参数。孙德茂看得很慢,一行一行地读。他的眉头皱得更紧了。
第三页,性能参数。强度、耐高温、抗腐蚀、疲劳寿命、断裂韧性,每一项都有理论值和模拟值。孙德茂看到强度那一行的时候,手指停了一下。强度比一代高百分之三十。不是百分之三,是百分之三十。这个数字,他在梦里都不敢想。
第四页,微观结构分析。秦风用分子动力学模拟了合金的晶格结构、晶界分布、析出相形态。每一张图都标注得清清楚楚,下面有详细的分析说明。孙德茂盯着那些图看了很久,他的眼睛亮了。不是稍微亮了一点,是明显亮了,像是有人在他脑子里点了一盏灯。
他猛地抬起头,盯着秦风。
“这个数据,你是怎么算出来的?”
“分子动力学模拟。我用了三年时间,建了一个模型,把合金的原子排列、晶界能、析出相稳定性都算了一遍。一开始算出来的数据不对,跟理论值差了很多。我找了三个月的问题,最后发现是边界条件设错了。改了边界条件,重新算,数据就对上了。”
“三年?”孙德茂的声音有些发紧。“你从十二岁就开始算这个?”
“十二岁那年,我爸给了我一本《材料科学基础》。我看完之后,觉得材料这个东西挺有意思的。原子排列不一样,性能就不一样。晶界结构不一样,性能就不一样。析出相大小不一样,性能就不一样。我想,能不能设计一种新的合金,把每一种参数都调到最优。然后我就开始算。算到现在。”
孙德茂看着他,沉默了很久。他的目光从秦风的脸上移到屏幕上,又从屏幕上移回秦风的脸上。他的手指又开始敲了,嗒嗒嗒,嗒嗒嗒。
“你这个配方,理论上可行。但有几个地方,我觉得有问题。”
“您说。”
“第三页的冷却速率,你写的是每秒一千度。这个速率,现有的设备达不到。最快的气冷,每秒也就几百度。每秒一千度,需要液氦冷却。液氦冷却的成本太高,不现实。”
“我知道。所以需要新设备。或者,改工艺。如果把铸件的尺寸缩小,冷却速率可以提上来。小尺寸的样品,每秒一千度是能达到的。先用小尺寸验证性能,再想办法放大。”
孙德茂想了想,点了点头。“有道理。还有一个问题。第五页的疲劳寿命,你写的是十万小时。这个数据,你是怎么得到的?”
“用加速寿命试验的模型外推的。高温、高应力下测了十个样品,每个样品跑了一千个小时,然后外推到常温、常应力下的寿命。外推模型用的是阿伦尼乌斯公式,参数是我自己拟合的。”
“你拟合的参数?你用什么数据拟合的?”
“一代华夏一号合金的公开数据。我查了三十多篇论文,把一代合金在不同温度、不同应力下的疲劳数据整理出来,用最小二乘法拟合了阿伦尼乌斯公式的参数。然后把二代合金的加速试验数据代入,算出了十万小时。”
孙德茂沉默了。他的手指不敲了。他靠在椅背上,盯着天花板。天花板上有光灯管,两,有一在微微闪烁,发出细微的嗡嗡声。他盯着那灯管,看了很久。
“你这孩子,”他终于开口了,声音有些沙哑。“你这些东西,是从哪学的?”
“看书学的。我爸书架上的书,我从小就看。看不懂的就问,问不懂的就自己琢磨。琢磨不透的就先放着,过一段时间再看。看着看着,就懂了。”
“就这些?”
“就这些。”
孙德茂看着他,看了很久。然后他笑了。那是秦风进门以来,他第一次笑。不是嘴角动一下,是真的笑了,眼角的皱纹都挤在一起,像一把打开的扇子。
“你这个人,跟我年轻时候有点像。”
“哪点像?”
“不要脸。我年轻的时候,也觉得自己什么都能搞出来。搞了一辈子,发现很多东西搞不出来。不是不想搞,是条件不允许。你这个配方,比我年轻时想的那些东西都难。但你搞出来了。不是搞出来了,是算出来了。”
他从U盘里把文件拷到电脑桌面上,然后把U盘拔下来,递给秦风。“这个配方,我收下了。我会仔细看。但你刚才说,让我出山?”
“对。华夏一号合金二代,需要您来把它造出来。我只会算,不会造。您会造。”
孙德茂把U盘放在桌上,站起来,走到窗前。窗外是家属区的院子,几棵老槐树,一片草坪,几个老太太在树荫下聊天。一个小孩在骑小三轮车,骑得歪歪扭扭的。他的目光落在那棵老槐树上,看了很久。
“我今年五十八了。退休两年了。这两年,我在家带孙子,做饭,买菜,看电视。子过得挺安稳的。”他顿了顿。“但你那个配方,我放不下。我了一辈子材料,从学徒到研究员。华夏一号合金,是我这辈子最大的成就。但我知道它还有不足。强度不够,耐高温不够,寿命不够。我退休前一直在想办法改进,但没来得及。你那个配方,把我没来得及做的事,做了。”
他转过身,看着秦风。
“我跟你。”他走回来,伸出手。“但有一条——材料这块,我说了算。你不能外行指导内行。”
秦风握住他的手。那只手不大,但很有力,握得很紧。手掌上有厚厚的茧子,指关节突出,指甲修剪得很整齐。这是一双了一辈子活的手。“孙老,欢迎加入。”
“别叫我孙老。叫我老孙。”
“老孙。”秦风笑了,笑得痞痞的。“那您也别叫我秦总什么的。叫我秦风。”
“秦风。”孙德茂念了一遍这个名字,嘴角动了一下。“你这个人,跟我年轻时候真的很像。”
“哪点像?”
“不要脸。我年轻的时候,也这么不要脸。后来被领导骂多了,被同事挤兑多了,就学会了夹着尾巴做人。但你是对的。搞科研,就要不要脸。要脸的人,不敢想,不敢,不敢失败。不要脸的人,什么都敢。”
秦风从孙德茂家出来的时候,天已经快黑了。他骑上自行车,往家的方向蹬。链条嘎吱嘎吱地响,轱辘一颠一颠的。他的心情很好,嘴里哼着歌,还是那首跑调的军歌。夕阳在他身后,把他的影子拉得很长,拖在灰色的路面上。
“零零七,”他在心里说。
“嗯?”
“老孙搞定了。材料这块,有人了。”
“老孙是个靠谱的人。他搞了三十四年材料,经验丰富。有他在,材料这块你不用心了。但光有材料不够,你还需要控制系统。”
“控制系统,我找谁?”
“你需要一个编程天才。不是那种科班出身的,科班出身的思维太僵。你需要一个野路子,一个不按常理出牌的人。你的非对称磁镜控制算法,需要实时调整磁场构型,响应时间要在毫秒级。这个算法,常规的控制工程师写不出来。需要一个脑子好使、不按套路出牌的人。”
“有推荐吗?”
“有。你学校附近有个网吧,老板的儿子。叫林小禾,十七岁,高二,辍学了。天天在网吧打游戏,但他不是网瘾少年。他是在写代码。他自己写了一个游戏外挂,卖了两年,赚了二十多万。但他的外挂不是那种破坏游戏平衡的垃圾,是用AI算法做的辅助工具。他的编程水平,比很多研究生都强。”
“一个高二辍学生,写AI外挂,卖了二十多万?”
“对。但他最近被抓了。不是因为他写外挂,是因为他用外挂赚的钱没交税。罚款交了,但学籍没了。他爸把他关在家里,不让出门。”
秦风的嘴角慢慢勾起一个弧度。“一个写AI外挂的辍学生。这个有意思。”
“你又要说‘我喜欢’了?”
“你猜对了。”
“你这个人,就是喜欢找麻烦。”
“不是找麻烦,是找人。有本事的人,都有毛病。没毛病的人,太正常了,正常到平庸。我不需要平庸的人。”
二
第二天一早,秦风没去学校。他给他妈发了条消息:“妈,今天不舒服,请假一天。”他妈回了条语音,叮嘱他多喝水多休息。他听了,笑了一下,把手机揣进口袋,骑上自行车往建设路去了。
建设路在老城区,路不宽,两边是各种小店——五金店、杂货店、小吃店、网吧。路面上坑坑洼洼的,自行车骑过去颠得屁股疼。秦风骑得不快,一边骑一边看路边的招牌。
阳光网吧在一栋两层小楼的二楼。招牌是红色的灯箱,“阳光网吧”四个字,其中“阳”字的字旁不亮了,变成了“光网”,“吧”字的嘴巴也灭了,变成了“光网巴”。秦风把自行车锁在楼下的电线杆上,上了楼。
网吧里很暗,窗帘拉得严严实实,只有电脑屏幕的光。烟雾缭绕,空气里混着烟味、泡面味和汗味,还有一种说不清道不明的酸臭味。几十台电脑,坐了大半,有人在打游戏,有人在看电影,有人在聊天。键盘声噼里啪啦的,夹杂着骂声和笑声。
秦风走到吧台前。吧台后面坐着一个中年男人,秃顶,胖,穿着一件洗得发白的背心,手里拿着一把蒲扇,一下一下地扇着。他的脸上有汗珠,顺着脖子往下流。他看了秦风一眼,目光懒洋洋的。
“上网?身份证。”
“我找林小禾。”
中年男人的脸色变了。他放下蒲扇,坐直了身体,打量着秦风。“你是谁?”
“我叫秦风。来找他聊聊。”
“聊什么?他不在。”
秦风看了一眼吧台后面的门。门是木头的,关着,但门缝里透出光。门把手上挂着一把锁,锁是开着的。“叔叔,我知道他在。我找他聊技术。不是坏事。”
中年男人盯着他看了几秒钟,然后叹了口气。他靠在椅背上,用蒲扇拍了拍大腿。“你是他同学?”
“不是。我是他未来的伙伴。”
“伙伴?”中年男人哼了一声。“他一个辍学生,你有什么好跟他的?”
“叔叔,您儿子写的外挂,是用AI算法做的。这种水平,很多研究生都达不到。他要是好好读书,考个好大学,学计算机,将来前途无量。但他现在辍学了,您不觉得可惜吗?”
中年男人的脸色更难看了。他低下头,看着手里的蒲扇,沉默了很久。“这孩子,废了。天天窝在房间里,对着电脑,也不出门,也不说话。我跟他说,你出去找点事做,他不听。我跟他说,你去复读,明年再考,他不听。我拿他没办法。”
“叔叔,您让我跟他聊聊。聊完,他要是还不愿意出来,我以后再也不来了。”
中年男人沉默了几秒钟,然后指了指那扇门。“去吧。他在里面。”
秦风走过去,敲了三下。
没人应。
他又敲了三下。还是没人应。
他握住门把手,推了一下。门没锁,开了。
房间很小,大概七八平米。一张单人床,床上被子没叠,拧成一团。一张书桌,桌上堆着各种线缆、硬盘、电路板。一台电脑,屏幕亮着,上面是一行行代码。窗帘拉着,灯没开,只有电脑屏幕的光。一个少年坐在书桌前,背对着门,瘦削,肩膀很窄,穿着一件黑色的卫衣,帽子扣在头上。他的手指在键盘上飞快地敲击,速度快得惊人,噼里啪啦的,像机关枪。屏幕上,代码像瀑布一样往下滚动,一行接着一行,几乎不停顿。
秦风站在门口,没有进去。他靠在门框上,双手在口袋里,嘴角挂着痞笑。他看着那个背影,看了一会儿。
“林小禾?”
少年没有回头。手指没停。键盘继续噼里啪啦地响。
秦风走进去,在他旁边站定。他看了一眼屏幕。代码是Python,写得工工整整,注释很清楚,变量命名规范,缩进整齐。他不是一个新手。新手写不出这样的代码。他在写一个神经网络模型,层数很深,参数很多,训练数据很大。
“你在写什么?”秦风问。
少年还是没有回头。但他的手指停了一下。就那么一下,然后继续敲。“你是谁?”
“秦风。”
“不认识。”
“你爸让我进来的。”
少年的手指又停了一下。“我爸让你进来的?你是他找的说客?”
“不是。我是来找你活的。”
“活?”少年终于转过头,看着秦风。帽子下面是一张苍白的脸,瘦削,颧骨突出,眼睛很大,但很暗淡,像蒙了一层灰。嘴唇裂,下巴上有几颗青春痘。他的眼神里没有好奇,没有敌意,只有一种东西——疲惫。
“什么活?”
“写代码。”
“写什么代码?”
“控制算法。毫秒级的实时控制,磁场构型动态调整,非对称磁镜的等离子体约束系统。”
少年的眼睛亮了一下。那是秦风进门以来,他眼睛第一次亮。“你说什么?非对称磁镜?等离子体约束?你是搞聚变的?”
“对。聚变引擎。”
少年盯着他看了三秒钟,然后笑了一下。不是开心的笑,是嘲讽的笑。“你几岁?”
“十五。”
“你十五岁,搞聚变引擎?你当我傻?”
秦风没有生气。他从口袋里掏出一个U盘,放在桌上。“这里面有我的方案。你看完,觉得我在吹牛,我走人。觉得有点意思,我们再聊。”
少年看了一眼U盘,又看了一眼秦风。他的眼神变了,从嘲讽变成了好奇。他伸手拿起U盘,进电脑。屏幕上弹出一个文件夹,里面有几个文档。他点开第一个,标题是《非对称磁镜聚变反应堆可行性分析》。
他开始看。
他的眼睛在屏幕上移动,一行一行地扫过那些公式、那些数据、那些图表。他的表情变化很快——从怀疑到惊讶,从惊讶到震惊,从震惊到一种近乎疯狂的专注。他的手指不再敲键盘了,他的手放在桌上,一动不动。他的嘴唇微微翕动,像是在默念什么。
秦风没有打扰他。他拉了一把椅子,坐下来,翘起二郎腿,从口袋里摸出一颗棒棒糖,剥开糖纸扔进嘴里。草莓味的,甜。他等着。
十分钟过去了。二十分钟过去了。三十分钟过去了。少年还在看。他一页一页地翻,看得很慢,每一页都要停留很长时间。他的眼睛越来越亮,不是被屏幕光照亮的,是从里面往外透的亮。
四十分钟后,他关掉了文档,拔下U盘,放在桌上。他转过身,面对着秦风,眼神完全不同了。之前的疲惫、黯淡、嘲讽,全都不见了。取而代之的是一种光,那种光,是一个人在看到一件真正有价值的东西时才会有的。
“你写的?”他的声音有些发抖。
“我写的。”
“这些公式,都是你自己推的?”
“自己推的。”
“这个控制算法,是你自己设计的?”
“自己设计的。用了三年时间。一开始写的版本很烂,响应时间要几十毫秒,本不能用。我优化了一年,改了三版,才把响应时间降到毫秒级。”
“你用什么语言写的?”
“Python。核心算法用Cython优化了,关键路径用C写了扩展。纯Python跑不动,毫秒级的实时控制,Python解释器那点延迟都不行。”
“你一个人写的?”
“一个人。三年。”
少年沉默了很久。他的手指在桌上轻轻敲击,有节奏地发出“嗒嗒”声。那是他的习惯,思考的时候就会敲。
“你那个控制算法,我看懂了。但有一个问题。”
“你说。”
“你的算法是基于模型的。你假设磁场的动态特性是线性的,但实际上,等离子体的行为是非线性的。你的线性模型,在低参数下可能够用,但在高参数下,一定会失效。”
秦风的嘴角慢慢勾起一个弧度。“你看出来了?”
“废话。我写了三年代码,什么算法没见过?你的算法,线性的,基于卡尔曼滤波。卡尔曼滤波对线性系统是最优的,但对非线性系统,不行。”
“那你觉得应该怎么办?”
“换算法。不用卡尔曼滤波,用粒子滤波。粒子滤波可以处理非线性系统,精度更高,鲁棒性更好。但计算量更大,需要更强的算力。”
“粒子滤波,我考虑过。但计算量太大,毫秒级实时控制,现有的硬件跑不动。”
“跑得动。用GPU加速。你现在的算法是在CPU上跑的,换到GPU上,计算速度能提升几十倍。粒子滤波的并行度很高,GPU天然适合。”
“你会写CUDA?”
“会。我写的那个外挂,就是在GPU上跑的。CPU跑不动,一帧要几百毫秒,卡成幻灯片。换到GPU上,一帧只要几毫秒,丝滑。”
秦风看着他,眼睛里有一种光。“你叫什么来着?”
“林小禾。”
“林小禾,你愿意跟我吗?”
林小禾没有立刻回答。他看着秦风,看了很久。然后他站起来,走到窗前,拉开窗帘。阳光照进来,刺得他眯了一下眼睛。他已经很久没有拉开窗帘了。他的房间,已经很久没有见过阳光。
“我爸说你来找我活。他以为你是什么人?搞传销的?”
秦风笑了。“我要是搞传销的,用得着自己写几十万行代码?”
林小禾也笑了。那是秦风进门以来,他第一次笑。不是嘲讽的笑,是真的笑,嘴角往上翘,眼睛眯成一条缝。“你这个人,有点意思。”
“那你跟不跟我?”
“跟。但有一条——控制算法这块,我说了算。你方案里的算法,线性卡尔曼滤波,在高参数下肯定崩。我来重写,用粒子滤波,GPU加速。你不能外行指导内行。”
“可以。但你得先让我看看你的水平。”
“怎么看?”
“你现场写一段代码。粒子滤波的实现。十分钟,能写多少写多少。”
林小禾转过身,坐回电脑前,手指放在键盘上。他深吸了一口气,然后开始敲。键盘噼里啪啦地响,速度快得惊人。代码一行一行地出现在屏幕上,变量定义、初始化、预测步骤、更新步骤、重采样。他写得很快,但很有条理,每一行都有注释,每一个函数都有文档字符串。他的手指在键盘上飞舞,像是在弹一首激烈的钢琴曲。
五分钟,他写出了粒子滤波的框架。七分钟,他写完了预测步骤。九分钟,他写完了更新步骤。十分钟,他写完了重采样。
他停下来,靠在椅背上,看着秦风。“够不够?”
秦风看着屏幕上的代码,看了几秒钟。然后他站起来,伸出手。“欢迎加入。”
林小禾握住他的手。那只手很瘦,骨节突出,但很有力。“什么时候开始?”
“现在。”
三
秦风带着林小禾走出房间的时候,网吧老板——林小禾他爸——正在吧台后面打瞌睡。蒲扇掉在地上,他歪着头,嘴巴微张,发出轻微的鼾声。林小禾看了他一眼,没有说话。秦风也没有说话。两个人悄悄出了网吧,下了楼。
站在楼下,阳光刺眼。林小禾眯着眼睛,抬手挡了一下光。他已经很久没有白天出门了,眼睛不适应。
“去哪儿?”他问。
“研究院。我的实验室。”
“你的实验室?研究院给你配了实验室?”
“钱永昌给的。一间空房子,从废料堆里捡的零件,我自己搭的装置。”
“你从废料堆里捡零件搭装置?”林小禾看着他,眼神里带着一种说不清的东西。“你这个人,真是个疯子。”
“疯子才能出疯子的事。正常人,不出聚变引擎。”
林小禾沉默了一瞬,然后笑了。“你说得对。正常人,也写不出粒子滤波的实时控制系统。”
两个人骑着自行车,往研究院的方向去。秦风在前面,林小禾在后面。林小禾的自行车是一辆山地车,黑色的,很新,跟他爸给他买的。但他很少骑,车胎的气不太足,骑起来有点沉。他跟在秦风后面,看着秦风的背影——那件皱巴巴的校服,那头翘着的头发,那双踩着踏板不停转动的腿。他的嘴角慢慢勾起一个弧度。
他已经很久没有这样了。很久没有出门,很久没有晒太阳,很久没有跟人说话,很久没有笑。自从被学校开除,他就把自己关在那个小房间里,不见人,不说话,不出门。他每天对着电脑,写代码,打游戏,睡觉。他不知道自己在什么,也不知道自己想什么。他只知道,他不想见任何人。任何人见了他,都会问同一个问题——“你以后怎么办?”他不知道。他不想知道。
但今天,秦风来了。一个比他小两岁的少年,搞聚变引擎,从废料堆里捡零件,一个人写了几十万行代码。他说,我需要你。林小禾知道,那不是客套,不是恭维,是真的需要。因为他的控制算法,在秦风那个方案里,是不可或缺的一环。没有他,秦风的方案也能跑,但跑不远。有了他,秦风的方案能跑到终点。
这种感觉,他已经很久没有过了。被需要的感觉。
四
秦风推开实验室的门,林小禾跟在后面走了进去。
他站在实验室中间,转了一圈,看着那些从废料堆里捡回来的设备——真空腔体上的锈斑,线圈上歪歪扭扭的绕线,电源柜面板上掉了的按钮,工控机那台厚得像砖头的CRT屏幕。他看了一会儿,然后转过头,看着秦风。
“这就是你的实验室?”
“这就是。”
“从废料堆里捡的?”
“从废料堆里捡的。”
“你就在这儿,搞出了聚变方案?”
“对。”
林小禾沉默了几秒钟。然后他走到工控机前面,蹲下来,看着那台老古董。他伸出手,摸了摸机箱,手指上沾了一层灰。他看了看手指上的灰,笑了。
“这台机器,能跑粒子滤波?”
“跑不了。所以我需要你帮我把算法移植到GPU上。研究院有一台GPU服务器,在计算中心,我可以申请使用时间。”
“你申请到了?”
“还没。钱永昌说帮我协调。应该问题不大。”
林小禾站起来,拍了拍手上的灰。“行。那我先写代码。在CPU上把算法调通,再移植到GPU上。你那个线性卡尔曼滤波,我先帮你改成粒子滤波。改完之后,你拿你的数据跑一遍,对比一下效果。”
秦风从桌上拿过一个笔记本,翻开,撕下几页,递给林小禾。“这是磁场动态特性的实测数据。你拿去做模型辨识。线性模型不够用,你建一个非线性模型。需要什么数据,跟我说。”
林小禾接过那几页纸,看了一眼。密密麻麻的数据,时间、电流、电压、磁场强度。他的眼睛扫过那些数字,脑子里在飞速运转。
“这些数据,是你自己测的?”
“我自己测的。用那台从废料堆里捡的装置,跑了几百次,记下来的。”
“几百次?你一个人?”
“一个人。”
林小禾看着他,沉默了一瞬。“你这个人,真是个疯子。”
“你说过了。”
“再说一遍。疯子。”
秦风笑了。“疯子就疯子。疯子才能搞出聚变引擎。”
林小禾把纸折好,塞进口袋。他走到工控机前面,拉过椅子,坐下来。他的手指放在键盘上,停了一下。然后他开始敲。
键盘噼里啪啦地响。屏幕上,代码一行一行地出现。秦风站在他身后,看着屏幕,没有说话。他看着那些代码,看着林小禾的手指在键盘上飞舞,看着那个曾经把自己关在房间里不见人的少年,此刻像换了一个人。他的眼睛很亮,他的手指很快,他的脑子很清晰。他在写代码的时候,是活着的。
秦风走到实验台前,拿起笔记本,翻开新的一页。笔尖在纸上沙沙地响,一行行公式流淌出来。他写的是磁场动态特性的非线性模型。不是线性的,是非线性的。林小禾说得对,线性模型在高参数下会失效。他之前也知道这个问题,但他一直没有解决。因为非线性模型太复杂,他算不懂。现在,有林小禾了。林小禾写粒子滤波,用GPU加速,能算动。
两个人,一个在写代码,一个在写公式。实验室里很安静,只有键盘声和笔尖声。窗外的阳光照进来,照在那台从废料堆里捡回来的装置上。真空腔体上的锈斑在阳光下格外明显,线圈的绕线歪歪扭扭。但那台装置,验证了一个颠覆性的理论。它证明了非对称磁镜是可行的。它证明了秦风是对的。它证明了,从废料堆里捡回来的垃圾,也能变成宝贝。
秦风写完最后一个公式,放下笔,靠在椅背上。他看着窗外,阳光很好,天很蓝。他的嘴角慢慢勾起一个痞痞的弧度。
“零零七,”他在心里说。
“嗯?”
“两个了。老孙,林小禾。材料有了,控制有了。下一个找谁?”
“动力系统。你需要一个搞动力的人。不是化学火箭,是聚变火箭。懂聚变,懂推进,懂工程。这种人,研究院里有,但不好请。他们都有自己的,不会轻易跟你。”
“有推荐吗?”
“有。你爸。”
秦风愣了一下。“我爸?”
“你爸搞了二十多年火箭发动机,化学火箭是顶尖的。聚变火箭他虽然不熟,但他的工程经验、管理能力、对航天系统的理解,都是你需要的。而且,他是你爸。他不会害你。”
秦风沉默了很久。他看着窗外,天很蓝,云很白。他爸在研究院的主楼里,在四楼的办公室,在写文件,在画图纸,在抽烟。他爸不知道他在什么。他爸只知道他搞了一个方案,钱永昌觉得不错,给了他一个实验室。但他爸不知道,他已经搭出了一台原理验证装置,已经产生了稳定的等离子体,已经验证了非对称磁镜的可行性。他爸不知道,他已经请到了孙德茂,请到了林小禾。他爸不知道,他正在一件大事。
“我爸,”秦风轻声说。“他会答应吗?”
“你问他。”
秦风拿出手机,翻到他爸的号码。他的手指悬在屏幕上方,停了几秒钟。然后他按下了拨号键。
电话响了四声,接通了。
“爸。”
“嗯。”秦建国的声音很低,很沉,像大提琴的低音弦。
“您下班后,来一趟我的实验室。在副楼二层,205。”
“什么事?”
“您来了就知道了。”
电话那头沉默了几秒钟。“好。”
电话挂了。秦风把手机放在桌上,靠在椅背上,看着窗外。阳光很好,天很蓝。他的嘴角慢慢勾起一个痞痞的弧度。
(第五章完)