三十年以后,当乔希·费舍尔(Josh Fisher)向妻子回忆起MultiFlow创业的奥德赛之旅时,他一定非常怀念那个计算机历史上的“西部大开发”时代,那个各类人才风云际会,拥有各种宏大想法并为之付诸实践的1980时代。
那时,计算机领域尚在混沌之初,各种技术路线百家争鸣,拥有新技术的公司不断浮现。很多在一个月前还不存在的公司,每天都在生产配备奇特硬件的奇怪机器,你可以在车库里生产一台计算机,让你的技术变得流行起来,然后赚一桶金。似乎什么事都有可能发生。
其中,有两家创业公司和它们创造的计算机显得格外耀眼。一家是OneFlow此前写过的思维机器公司
另一家则是与思维机器怀揣同样愿景的Multiflow公司。它们在1983、1984年前后相继成立,不过,不同于连接机器的计算方法,Multiflow Trace机器的软件使用指令级并行(ILP)的并行形式来加速程序的执行,公司创始合伙人乔希提出的超长指令集架构(VLIW),是基于他在纽约大学读研时发现的跟踪调度(Trace Scheduling)技术而提出,该架构当时最多可发出和计算多达28条指令,并且尽可能一次执行完毕,这大大加速了计算速度。
从曾经的六年创业历程里,Multiflow公司也曾风光无两。他们建造了VLIW微型超级计算机Trace系列机器并展示了ILP技术的实用性,公司筹集了约6000万美元的风险投资,巅峰时期拥有170名员工,以平均约35万美元的价格向全世界出售了约140台计算机。
Multiflow汇集了一大批才华横溢的工程师。拥有该公司背景的工程师中,包括乔希在内有两位获得了计算机架构领域的最高奖项“埃克特-莫切利奖(Eckert-Mauchly award)”,还产生了其他领域的三名Fellow级人物。很多工程师在各自行业大放异彩。
乔希本人的人生经历足够惊奇。他患有先天性注意缺陷障碍(ADD),使得他在学习、工作时难以集中注意力,但他在计算机领域却有异常天分,在研究相关问题时能出奇地保持专注。他成为耶鲁大学教授,并转型为优秀的企业管理人,最后以惠普高级研究员的身份退休,期间他发表的关于VLIW技术的论文后来被评为计算机体系结构大会(ISCA)历史上最具影响力的论文之一。
更重要的是,VLIW技术启发了众多公司的技术创新。可以说,后来所有公司使用的VLIW编译技术绝大部分都是基于Multiflow团队的工作,当时没有别的团队研发如此复杂的编译器。早期的超级计算机初创公司Cydrome等也做了基于VLIW的产品,英特尔EPIC架构脱胎于这一技术,它被应用于各种嵌入式处理器中等。尽管仍有争议,VLIW已成为高性能嵌入式系统中的一股中坚力量。诸如Habana等AI芯片的底层架构也是VLIW,一些场景中需要大量的向量计算,适合采用VLIW设计多发射处理器。
如今,与那些计算机历史上那些值得被后世铭记的机器一样,Multiflow Trace计算机也像老古董那样被陈列在加州山景城的计算机博物馆供人观摩。
不过,从1983年开始,当乔希四处分享他的创新技术思想时,很长时间内都被学界主流认为不现实。乔希始终憋着一口气,为了证明VLIW技术的可行性,他和一群志同道合的伙计打算创业去造出一台新型计算机。在《Multiflow:一个创业公司的奥德赛》一书中,他的妻子Elizabeth Fisher详细记述了Multiflow的非凡创业史。
1
不被认可的VLIW
当乔希还在纽约大学Courant学院的计算机科学专业做研究生时,他的导师设计了一台通过最低层的微代码指令控制的计算机仿真器,微代码是并行执行的,但最大的问题是需要手工编写。
他想找到一种从串行执行微码自动创建并行执行微码的方法,也就是说,让计算机获取工程师写的串行代码及其所有分支,并自动将其转换为并行代码。但是,当时没人知道在计算机程序中该如何处理分支代码。
有一天,他突然灵光一闪,意识到如果是手工编码,他不会只看一小段代码,而是会看整个程序。他认为可以编写这样的一套软件:着眼于整个程序,而不是一小部分代码,就像手工编码那样。在查看代码时,程序可以猜测代码最可能会通过的分支路径。
在计算机有了第一条路径后,就可以查看代码并在此过程中找到并行性,如果猜错了,就添加代码进行补充,如此循环同样的过程,直到它查看了所有代码。如果能实现这一点,那将是一个真正的突破,无需费力去手工编码就能自动提高计算机的速度。
这个想法使他大吃一惊。如果这样做了,不仅会让手动并行变得不再必要,而且还会以惊人的速度执行代码。看着一个测试程序的图表,他在计算机寻找并行性的路径上画了一条线,这让他想起了车间调度的方式,所以将这项技术称为“跟踪调度”。
跟踪调度是第一个在占用不同基本块的指令之间找到大量并行性的实用算法,大大提高了指令级并行架构的潜在加速能力。在乔希的博士论文中,他介绍了这种指令级并行性的软件解决方案。
1979年初,乔希去了耶鲁大学工作,开始和他的学生们致力于实现这一方案,但在这一过程中,他最初的想法也发生了变化。
乔希认识到,跟踪调度应该在工程师的代码被编译(翻译成计算机的指令语言)后使用。跟踪调度需要成为编译器的一部分与程序其余部分交互,以产生想要的加速。因此,他们的研究重点成为为创建跟踪调度编译器。
乔希把跟踪调度看作全新技术领域的一部分,创造了“指令级并行”这个术语,包括通过并行执行操作来加快计算速度的所有努力。
为了实现跟踪调度所设想的性能加速,他需要一种不同类型的计算机,一种在设计之初就考虑到跟踪调度技术的通用计算机。这是一种使用自动生成的代码构建的计算机,同时执行的操作将被集中到“指令字(instruction words)”中,“指令字”越长,可用的并行性越高。
在他入职耶鲁的前两年,与两位华裔科学家发生了有趣的交集。一次是在乔希做耶鲁大学研究生入学招生工作期间:他需要从20份来自中国的简历里筛选出一位学生进入耶鲁,其中一份申请书引起了乔希的兴趣,内容描述了从废弃的垃圾场里捡来的真空管组装而成的一台电视机。乔希认为,能在如此艰难的环境下制造出这样的东西,并表现出自豪感,申请人一定很特别,更不用说他的独创性。在乔希的推荐下,耶鲁录取了这位职业曾是建筑工的候选人,他成为世界上第一个“图灵奖”获得者艾伦·佩利斯的最后一届研究生,后来,他成为了普林斯顿大学计算机科学系讲席教授、美国工程院院士,他就是李凯教授。
还有一次,这个年轻的耶鲁大学研究员从卡耐基大学的高级教员孔祥重(HT Kung)那里抢走了研究经费。当时他们在一架飞机上聊天,孔觉得乔希是个拥有很有前景的软件技术的年轻人,对他很亲切,但当他们同时到达一场学术资助活动的现场时,前者才意识到这个研究员也要跟他竞争经费,并对他的研究进行了彻底盘问。值得提一下孔祥重教授的一些成就:Google TPU里面使用的脉动阵列技术;数据库系统广泛使用的乐观锁以及高性能网络里广泛使用的基于信用的流控技术(credit-based flow control)。这些技术在深度学习系统里也有广泛应用。
在耶鲁,他找到了一群专注、热情、渴望学习的学生,他们对编译器和架构课程很感兴趣,在利他主义精神的驱使下设计了诸多实用的系统工具。
在接下来的两年里,乔希和他的研究生John Ellis, Alex Nicolau和John Ruttenberg编写了Bulldog编译器。他的学生在Bulldog编译器上的研究成为了他们博士论文的基础,随后,John Ellis的论文被评选为ACM年度最佳计算机科学论文。
1983年左右,乔希开始公开谈论一种用来运行跟踪调度代码的新型计算机,他称这种风格为超长指令字(VLIW)。VLIW架构使用一种将普通串行代码压缩成长指令字的新型编译器,使用该架构的机器有望提供比其他技术构建的机器超出10到30倍的性能。
可是,这种不同以往的计算机设计对很多人来说太奇怪了,很少有其他计算机科学家考虑过这个问题,没什么人愿意听他的研究结果。他们都持怀疑态度,也许从学术角度来看有点意思,但乔希的想法还是有点疯狂,他们的偏见在于,压根不可能建造一台依靠软件而不是硬件来提速的通用计算机。
尽管他试图通过方式各种说服人们,试图让他的同事们接受他的研究,但依然在很长时间内不被学术界认可。反而反对意见却不增多,连他尊敬的人也站起来说乔希的想法行不通或无法实现,他们的潜台词是,如果这种技术是实用的,那早就应该有人做出来了。
乔希很反感这种逻辑,对此感到困惑和失望。他相信VLIW架构远远超出了一个学术项目范畴,它有潜力改变所有的科学计算。
随后,他开始转向计算机业界。他认为,为了追求利润,工业界会比固守计算机理论的学界同行对新技术更感兴趣。他计划与工业界接洽将技术推向市场,证明VLIW技术的价值。
2
Multiflow成立,Trace问世
1984年,微型超级计算机的问世让其成为计算机行业中人人都在谈论的热门产品,它能让单个部门的计算能力几乎达到一台超级计算机的水平,价格却不到100万美元。
这时,乔希和他的学生John O 'Donnell和John Ruttenberg成立了Multiflow计算机公司,出于市场选择,这些创始人也决定将产品面向微型超级计算机市场。
在乔希的领导下,O 'Donnell负责硬件工作,Ruttenberg负责编译工作,他们招募了来自耶鲁大学的约20个工程师加入这个初创团队。大多数人开始在这个并不熟悉的领域里摸索前进。
这帮人太聪明了,乔希尊重他们,希望让他们最大程度发挥自己的创造力去决定产品的发展。良好的工作氛围让这帮人充满创业劲头,每个人都工作很长时间,有时通宵达旦,空气中弥漫着热情和乐观的气氛,相信他们将给计算机行业带来革命性变化。
如果只是单纯钻研技术,这里也许是技术人的天堂,但毕竟这是一个创业团队。很快,他们就遇到了创业以来的第一个严峻挑战。
8月底,由于意向投资方阿波罗(Apollo)公司管理层的调整,阿波罗董事会最终终止了给Multiflow的50万美元投资。这让他们措手不及,一度好几周发不出工资,还有人因此去了阿波罗公司工作。他们第一次遭遇破产倒闭的风险。
与此同时,由于阿波罗对外散播不利于Multiflow的消息,让他们寻求新融资时也遭遇了困难。随后,具有猎头经历的唐·埃克达尔(Don Eckdahl)成为新任CEO拯救Multiflow于危难之际,由于风投信任有商业运作经验的埃克达尔,提供了20万美元的融资。
在埃克达尔担任CEO后的最初几年里,公司走在坦途上,逐步变成一个在资本市场备受瞩目的公司。1985年2月,Multiflow完成了第一轮700万美元的融资;1986年5月,融资1060万美元;1987年5月,融资1800万美元。
随着时间的推移,公司开始变成上百人的团队,Multiflow聘请了尽可能多的优秀人才加入,到这种体量的公司一般会引入正规的管理流程,但它的管理结构依旧如常,在这种宽松的工作氛围下变得更有凝聚力,具有不同工作风格和强烈个性的人互相信任,没有人表现出特别自负,他们做着有成就感的事,追求完美。
能吸引这么多优秀人才加入,一方面是因为乔希的个人品质给他人留下了深刻的印象,他逻辑强大、聪明、正直,具有相似特质的聪明人会识别、吸引跟他们一样的聪明人加入。另一方面,每个人都希望体验构建新技术的兴奋感,而Multiflow正走在这样一条技术路径上。
所有工程师都在一起工作,软硬件工程师互相协商,他们没有循规蹈矩般地遵守传统计算机科学的界限,没有任何领域是讨论和探索的禁区。他们摸着石头雄心勃勃地前进,只为创造不同凡响的计算机。
当乔希发明VLIW技术时,他认为硬件是很容易构建的部分,但当他们试图发挥出硬件极限能力时却发现困难重重,且成本高昂,这恰恰也是当前AI芯片行业所面临的问题。他们还模仿了在耶鲁大学的Bulldog编译器设计出Multiflow编译器,期间几乎创建了一个全新的语言,但工作进度却远远落后于计划。
无论如何,1987年4月,Multiflow发布了第一款Trace计算机,从那时起,对VLIW技术不起作用的质疑就永远消失了。Cydrome公司也采用了VLIW类型的架构,这是当时唯一一家与Multiflow公司采用具有类似方法的微型超级计算机制造商。
Trace有7/200、14/200和28/200三种型号,除了政府部门和大学,Multiflow主要把它卖给惠普、摩托罗拉等制造业公司。1989年1月,Multiflow推出了300系列产品,与200系列唯一的变化是浮点计算。
3
资金链断裂,两度裁员后公司倒闭
1987年,MultiFlow经过三轮融资筹集了近3600万美元,有一部分销售收入,但对维持公司运转来说并不足够,糟糕的是,资金来源也变得紧张。
那年10月,受到全球股市崩溃的影响,风投市场裹紧钱袋子,由于没有盈利,Multiflow也无法上市去公开市场募资。他们和对Multiflow技术感兴趣的微型计算机的市场领导者DEC接洽,但谈判并不顺利,况且,即使有DEC的投资也不足以让Multiflow成为一家财务稳定的公司。
与此同时,计算机行业正在发生变化,计算机硬件变得更便宜,以乔布斯的NeXT公司为代表生产的个人电脑可以运行许多科学应用,整个微型超级计算机市场遭受威胁。
危机已至。乔希和另一个创始人O 'Donnell认为,Multiflow定价和销售策略也要做出改变。乔希希望通过降低价格以及去国外销售的方式来纾解困境,但这没有说服CEO埃克达尔。
第一次遭遇倒闭危机时,是职业经理人埃克达尔的加入将公司从死亡边缘拉了回来,很长时间内,乔希习惯和他的意见保持一致。但这次,几个合伙人之间产生了激烈争论,再加上销售不景气和对其人才管理的不认可,董事会对埃克达尔失去了信心。
风雨飘摇之际,Multiflow经历了两次裁员,很多在公司工作很长时间的人离开了。
更让人沮丧的是,公司内部发生的存储芯片被盗、员工离婚事件更加打击了乔希和整个团队的士气。这些问题外界知之甚少,甚至媒体对Multiflow的正面报道有增无减。
就这样撑到1988年末,Multiflow似乎没有未来了。他们还是没有合理的商业计划,但又不得不为了公司活下去寻找救命稻草。1989年3月,它和老牌工作站制造商Adage宣布达成协议,两家公司打算换股合并,但最终未能成行。1990年3月,DEC宣布终止与Multiflow进行了一年多的合同谈判。
没有现金流,短期内也看不到前景,董事会投票决定关闭公司。在商界摸爬滚打六年后,Multiflow最终退出历史舞台。
4
Multiflow失败了,但VLIW被发扬光大
任何一个好想法能够存活下来并且改变世界,既取决于它的技术优势,也取决于它的成长时机,并且有足够的好运气。
Multiflow有足够前沿的原创技术,但在其成长期,内部管理、销售策略没有跟上公司迅速发展的要求,同时,在那个计算机技术融合的开端,他们没有跟上整个行业的变化,微型超级计算机对大多数科学计算来说已经不是必需的产品,没有一家微型超级计算机公司在那时存活下来。
但它留下了很多遗产。它曾经是很多人的梦想,但它倒闭后,员工们也只能讨论其他工作机会,一起创业的革命友谊让包括创始人在内的大约40人决定继续合作,争取其他公司会将他们打包带走。当时的思维机器、Alliant、英特尔、惠普、克雷和DEC都曾与他们接洽,但没有一家公司能承诺聘用那么多人,他们还是散落四处。
Multiflow的工作经历也使得曾在此工作的工程师名声大噪。从这里出去的人遍布整个计算机行业,许多人依然在布道VLIW。
它让乔希在科学界收获赞誉,也让他在识别人才和组建出色的技术团队方面获得了声誉。他于1990年加入惠普实验室,从事PA-WW项目。1994 年,他成立了惠普剑桥实验室,继续研究VLIW架构和编译器,并为专用设备开发定制处理器,一些处理器现在被用于各种数字视频消费产品。
John O 'Donnell创立了Equator Technologies,软件工程师Ben Cutler和Cindy Collins也加入了该公司,他们继续开发VLIW编译器,几年后,又开始制造VLIW芯片。
John Ruttenberg加入了硅谷图形公司(Silicon Graphics),带着编译器的传统,Paul Rodman、Doug Gilmore和Woody Lichenstein也加入了这个公司。Paul Rodman现在Google TPU团队工作。
Geoff Lowney和Bob Nix去了DEC工作,使用Multiflow编译器开发了一个新的架构。Geoff Lowney后来成为Intel Senior Fellow。
Bob Colwell和Dave Papworth去了英特尔,后来都成为Intel Fellow。2005年,Bob Colwell获得了埃克特-毛希利奖(Eckert-Mauchly award),当时他已是英特尔奔腾处理器的首席架构师。
Multiflow的公共关系专家Brian Cohen,指导开发的IBM深蓝象棋项目,被评为1998年最佳公共关系项目。
尽管Multiflow作为一家公司失败了,VLIW也没有像乔希所希望的那样改变科学计算,但它却在技术社区得到广泛传播,尤其在处理器领域被继承,发扬光大。
VLIW编译器经常被用作新编译器开发的基准目标,后继者有英特尔的Proton编译器和NEC Earth Simulator 编译器等。MIT和华盛顿大学等是接收和使用这一编译器用于高级研究目的高校。Multiflow的技术授权给了英特尔、AMD、高通、DEC、惠普、富士通、日立和Silicon Graphics等公司。尤其作为嵌入式系统的一部分,VLIW被广泛应用于打印机、智能手机、计算机图形芯片、有线电视盒、蜂窝基站、GPS设备等产品中。
从一开始很多计算机科学家认为VLIW技术不会起作用,到极大推动计算机架构的发展,回头来看,他们没有失败,乔希和Multiflow的技术远见和无畏追求为今天的计算机发展带来了巨大回报。
主要参考资料
1.Multiflow Computer: A Start-up Odyssey by Elizabeth Fisher
2.https://en.wikipedia.org/wiki/Multiflow
3.https://en.wikipedia.org/wiki/Josh_Fisher
4.https://www.nytimes.com/1989/05/31/business/business-technology-a-new-way-to-speed-computers.html
其他人都在看
OneFlow v0.5.0 正式上线
“我们决定去登月”| OneFlow开源这一年
对抗软件系统复杂性③:恰当分层,不多不少
动态调度的“诅咒”| 原有深度学习框架的缺陷③
玩转大模型,是时候展示你真正的技术了
点击“阅读原文”,欢迎下载体验OneFlow新一代开源深度学习框架