【枪林弹雨中成长】看不见的算法
2005年,三十岁的我,刚入职华为,进入3G算法项目组。同事告诉我:别顾着埋头赶路,我们做无线算法的,是有理想的,要引领无线通信的变革。
算法是什么?生活中的算法无处不在,当你按下电梯按钮的时候,电梯运行的算法帮你最优化调度资源,缩短等待时间;当你驾车穿行于早晚高峰的时候,交通运行的算法根据变化的车流量实时调控红绿灯,帮助车辆行人更有效地通行……
无线算法也是如此,它通过一系列复杂的数学公式和指令解决无线通信中遇到的各种棘手问题,让用户可以随时随地享受高质量的语音、视频、上网等体验。
有人说,“算法是无线通信的灵魂”,这话一点不假。回头看无线算法20年来的征途,我们的“理想”并不是个虚无缥缈的东西,它渗透到了无线的每个角落,决定了芯片的每一步发展,影响了算法人的每一次抉择……
从1台被放弃的样机起步
据说算法刚起步的那几年,团队有一个预研部,很多人曾开玩笑说,他们做的不是预研,是预言,因为第一款商用芯片里的算法必将从这里诞生,将影响数以万计的人。
2002年的一天,能担当大任的算法似乎出现了。外场测试传来消息:一款“干扰对消算法”(IC)的样机通过了测试,提升了50%的系统容量!理论上,如果实现了IC,就能通过消除噪声达到让运营商在同一频段上多服务一倍用户的效果,对于用户来说,通话体验也将大大得到提升。
但是,这款样机带来的激动心情根本没持续多久——性能提升了一倍,但复杂度却提升了三倍,这种划不来的做法,直接否定了它商用的可能。IC特性的复杂,让它成为通信领域的人人都想吃,但人人不敢碰的香饽饽。算法组只能忍痛放弃这款样机,转身研究其他的特性。
那个冬天寒冷异常,到2003年底,团队成员已经从近30人,减少至不到10人。还在坚持的有从1999年就开始进行无线算法研发的元老级人物,李化加。
2004年,团队终于向公司争取了部门公开招聘的机会,收到了至少500封简历。“要做最好的算法,就得最好的人才。”李化加亲自筛选和面试,凭着一股宁缺毋滥的劲儿,抵住了人力紧缺的压力,最终只留下了最想要的5个人。
从这时候开始,整个算法组开始形成了一种心照不宣的学究气质。李化加跟汪少波等人,像学校实验室师兄师姐们一样,投入大把时间对新员工们进行点对点的技术细节讨论,包括如何研究、如何开展算法设计、如何进行文档写作,每篇分析文档都是千锤百炼后才能同意归档,好多习惯都在那时候被奠定下来。
2005年的我初来乍到,听到前辈们的故事,虽未经历始末,但硝烟四起之感丛生。这年年底,在一款芯片的算法设计即将被冻结的紧要关头,李化加匆匆找到汪少波,说他在业界技术调研的时候,想到了一个以低复杂度实现IC特性的灵感。
那时候,算法的特性都是要做到硬件里去的,也就是说,算法一旦设计完成,就无法再改动——不仅这一版的芯片要依照这个算法去生产,下一版的算法还要跟这一版的算法能配合运作。算法的路只能向前,不能回头。
可是IC特性能够减少噪声扩大容量,实实在在提升每个用户的体验,所以,即使算法的每一步都承担巨大风险,即使这款芯片已经到了算法交付的最后环节,他们还是当机立断,决定把IC这个特性加进去!
“不做IC,这款芯片顶多是性能上的优势,而性能优势是很容易被超越的。做IC,我们就实现了友商还实现不了的特性,这是算法的竞争力。”汪少波的这句话,在三年后的沃达丰比拼上,得到了印证。在那场业界关注的技术比拼上,这款芯片的迭代版本,为华为拿到了第一名。CCPIC(控制信道并行干扰对消)这个名称,由李化加和汪少波开创,到后来成为了华为的专用术语。
“杀敌一千,自损一千二”的理论漩涡
每个人的一生,总会有自己的“关键时刻”。对我而言,那就是2007年。这一年,中国移动决定在珠峰海拔5200米、6500米处采用华为设备建设移动通信基站;这一年,我被任命为第一版商用IC算法的设计人。
带着初生牛犊不怕虎的冲劲,我们设计出了新的IC版本。然而,在推导的过程中却出现了一个奇怪的现象,就是在消除干扰信号的过程中,也损伤了信息本身有用的信号。就像消灭敌人的时候,自己人也受了伤。如果消灭的敌人大大超过自己人,问题不大。可万一出现“杀敌一千,自损一千二”的情况呢?
这正是算法区别于其他专业的地方,即使是一个小小的理论假设,我们也无法视而不见,或者暂时搁置,因为谁也说不准,现在的理论假设,是否会成为最后压垮整个算法设计的致命稻草。
可是,业界友商没有实现IC的先例,学界论文也没有这个问题的相关描述——我很清楚,可能要做第一个吃螃蟹的人了。
攻关组马上成立,除了“苦思冥想,连续作战”,没有捷径。探讨、推导、测试、验证,循环往复。在接下来两个月时间里,我们从什么是信号、什么是噪声这些最基本的概念出发,一点点抠细节,探寻问题的本质。那些攻关的晚上,我经常做一个梦,在梦里我自己变成了信号,和干扰信号大战三百回合。每每醒来,浑身是汗。
钻得深了,我才得以留意到以前没有注意过的运算细节——我们的算法里引入了一个特殊项,既包括信号,也包含噪声,这就是为什么在消除噪声的同时,信号也有损伤的原因。找到关键突破点后,我们经过准确的运算分析,得出了一个意外结论——“杀敌一千,自损一千二”只是理论推测,真实场景根本不会发生。
揭开这个苦苦追寻的答案,压在我们胸口几个月的大石终于卸了下来。理论漩涡的平息,也让我们吃了一颗定心丸。
一颗“螺丝钉”扭转乾坤
理论问题得到了解决,算法设计也顺利进入收尾阶段。然而,测试结果却犹如晴天霹雳:性能提升的效果极其不稳定,对用户的影响就是一会儿信号好,一会儿信号差。这种情况真是称得上“血案”级别,别说做业界最好算法的雄心,连商用的信心都快没有了。
而且,目前这个阶段不可能对芯片本身进行任何改动,唯一能接受的只能是修改可编程部分。就好比临近交房,设计师对房子图纸不满意,想重新改造,打破一面墙,再造一个门,可是急于入住的房主能接受的,只是挪动一个螺丝钉。
下班时,只有路灯在等着我。它们有的昏暗无光,有的明亮异常,有时把我的影子拉得很伟岸,有时甚至让我找不到自己的影子。做算法,孤独的时刻有很多,但从来没有一次像那天一样强烈。
那段时间,定位组、开发组、测试组、攻关组的同事成天混在一起,每天早出晚归。当时每排除一个疑点,项目经理都激动地请大家吃饭,后来有人都忍不住说,“还是搞定了一起请吧,不然要把你吃的倾家荡产了……”
四个月的时间,上千次的测试仿真,日日夜夜的归纳推演,我们终于找到揪住了“嫌犯”:定点过程中的不当截位。通常的截位应该采用四舍五入方式,而我们为了实现方便,采用了直接丢弃的方式,相当于“九舍无入”。通常“九舍无入”都没有大问题,但当多个芯片合并时,舍入误差被急速放大了,正是这个“小”误差,酿成了这次的大错误。
当时,入职仅两年的朱有团灵机一动,提出了一个“负数加1”的方案——只对数值的最后一个比特进行更改,就达到了“四舍五入”的效果,用非常小的代价解决了这个非常棘手的问题。本来要砸墙的房子,真的靠旋转了一颗螺丝钉就扭转了乾坤!朱博也由此一战成名,还荣获了当年公司级的金牌个人。
后来我们才知道,原来友商也一直在寻求IC的商用化模式,只是没有做出有效的算法,于是走了另外一条降低干扰的路径。在沃达丰的现场比拼中,技术分值华为第一,不得不说,IC算法确实是助力登上宝座的最大利器。IC商用化的传奇就此开启,华为基站的接收能力再未遇过来自友商的实质挑战。
送上门的真经,我们没有要
2009年,我们急切地把视线拓展出去,以期寻找新的突破。巧的是,友商Q基于产业发展的考虑,主动与华为无线达成战略合作意向,向华为分享他们掌握的IC技术。
拥有丰富的IC运营经验,保持CDMA系统最重要的基本专利,连世界公认的算法巨匠都曾供职于此,友商Q理所应当是我们膜拜的“佛祖”。同事们都戏称,这简直是一次千载难逢的“西天送经”。
果然,它的算法设计能力带给我们的震撼是巨大的。其中最令人称奇的是,他们可以通过对消历史信息来提升性能。这种设计,不仅是我们从来没有过的算法思维,也更达到了我们从未达到过的卓越性能。不用苦苦搜寻,无需反复求证,我们只要在这个基础上稍做优化,就会得到日思夜想的算法“真经”!我兴奋异常,其他小伙伴们也难掩激动之情。
然而,伴随着交流的深入,我们却发现了这种算法的“阿喀琉斯之踵”:为了拥有足够多的历史信息,这种算法要将每个用户的重传率设得比较大。容量固然可以提升,但时延也会变长,给用户的感知就是增加了等待时间。
一边是卓越的性能增益,这是算法人梦寐以求的目标;一边是提升用户的体验,这是算法最朴素也最深刻的奥义。每个人的心中好像出现了一座天平,到底要往哪边倾?大家都犹豫了。
“不能为了一张好看的成绩单,让用户的体验受损。”讨论会上,黄心晔的一句话掷地有声。上上下下一致同意,我们要舍弃跟进友商的算法设计。“佛祖”送上门的真经,被我们拒绝了。
不过,他们的思维方法却极大地激发了我们的灵感。在信息的传送过程中,既有传送成功的信息,也有传送失败的信息,友商没有对后者进行快速对消,我们是不是可以补上这个空缺?
为确保方案的有效性,我们在仿真平台上全方位对比了我们和友商Q的方案,结果表明,设定短时延下,我们的算法优于友商,设定长时延下,与友商基本相当。为了万无一失,我们累计梳理了50多个可能的影响因素,并在样机项目中逐一排除其影响。最终这个特性顺利交付,实验室测试的结果不负众望,40%以上的增益实实在在地呈现在面前。
自掘三尺地,新一轮自虐行动
4G商用加速发展,3G新版芯片如何推出新的算法特性?不破不立,我们准备先自掘三尺地,从版本的现有问题中,尝试挖掘金矿。
有人开着车沿着测试外场不停转圈测业务数据,有人缩在实验室里一遍遍分析性能曲线,还有人抽丝剥茧梳理方案和应用场景,终于找到了IC算法新的增长点。原版本的设计有一个“毫不利己,专门利人”的特点——控制信道给其他信道提供增益,自己却不能享受增益,这其实阻碍了整体性能的提升。既然如此,我们能不能把它变成“利人又利己”呢?
问题找到了,但给出解决方案更非易事。李乐亭、杨建强等团队的“最强大脑”们,立马成立几个小分队,多方向地尝试思考。有人提出改变现有的并行处理方式,而让多个用户串在一起,前一个用户对消掉的干扰,可以提升下一个用户的性能,间接实现“利己”。理论验证这个办法确实有效,但操作起来工作量太大,不适合全面施展。
这个角度的思考倒打开了我们的思路,我们决定尝试在现有方案上增加一次并行处理,迂回地解决“利人又利已”的难题。当然,这绝非是描述的这么简单,大量的配套方案和针对性改进才是真正的“幕后英雄”。
还能不能再往前走一步?当目前方案已经获得验证之后,我们展开了新一轮的“自虐行动”。受友商Q思路的启发,我们有了新的想法:如果能在信息还未出发之前,预测它将会带上哪些“行李”,对消掉不必要的东西,就能给旅途减负。把这种思路和并行方案嫁接起来,新的方案呼之欲出了!
整整两年内,从毫无头绪到渐露曙光,从单点试探到全面开花,我们发挥想象,给出了绚烂的算法方案。干扰对消算法最终浴火重生,在本以为到达巅峰的情况下,又提升了15%的系统容量。
攀登不止,初心依旧
从初创小团队的摸索,到与瑞研专家的合作,再到现在与法国、俄罗斯、德国、美国等至少7个国家的联动……历经近20年的光阴,算法团队经历了从纯粹国产、中外协作、到全球深度融合的成熟之路。全球智慧、理论大家和实践能手的无敌组合,让我们对5G算法的研发充满了信心。
我一直很喜欢孔子说的“知不可为而为之”这句话。对于算法人而言,这句话的意义便是,做事不问可不可能,但问应不应该。别人能做到,我们应该也能做到。别人做不到的,我们应该抢先做到。我们已经做到的,还应该要做到更好。
一首小诗和所有的算法人共勉:
我不是思想家,我引领无线通信变革。 我不是指挥家,软硬件系统因我而协奏。 我不是发动机,我驱动无线核心竞争力。 我是数学公式,更是理论与工程的完美统一。 你们看不到我,但我在你身边。 我是算法,无线通信的灵魂。
“我们做无线算法的,是有理想的。”三十岁那年听到的话,似乎又在耳畔响起。
------------------------
本文转自“华为中国”公众号
- 点赞
- 收藏
- 关注作者
评论(0)