大变局——FPGA异构计算自序
0赞接触到OpenCL是在3年前,当时参加Altera的全国教师大会,知道Altera准备推动这样一种新的FPGA开发方法。当时的感觉是:不关我事。觉得这样一种新的语言来开发FPGA的方法在成熟之前,我应该不会去使用它。另外更多的还有疑虑,C to Silicon的口号喊了多少年了。从上个世纪90年代开始就开始喧嚣,前前后后好几轮了。每一轮一开始都轰轰烈烈,结果到后面都无疾而终。而这一次基于OpenCL的FPGA开发方法是否能带来不一样的结果呢?说实话心里是存在着很大的疑虑。我相信也是现在大多数听到用OpenCL来开发FPGA的工程师朋友们也都或多或少的存在着相同的疑虑。
相信第一次听到使用OpenCL来开发FPGA的朋友心中一定会有这个疑问:OpenCL相对于我们传统的HDL优势在哪里,使用OpenCL来开发FPGA会不会遇到什么瓶颈和问题?我也是带着这样的疑问参加了2012年底在厦门召开的Altera的教师大会。在会上听到了负责Altera公司OpenCL技术支持的工程师陈涪师兄对FPGA异构计算的详细介绍,并通过会下的交流才终于认识到——这一次不同了!不同之处在于,这并不是简单的FPGA开发方法的变革,而是FPGA应用领域和使用对象的变革。FPGA的应用将转向一个新的领域——高性能异构计算和海量数据处理。而FPGA的使用对象也不是传统的硬件工程师而很有可能是一帮天天玩软件的程序员。换言之,在目前看来OpenCL和HDL之间其实并不存在可以比较的先决条件——因为这是针对不同的应用领域和不同的开发目的而设计出的不同开发方法。因此本书并没用采用《基于OpenCL的FPGA》之类的书名,而是选择了《FPGA异构计算》这一更符合的目前FPGA设计方法变革的题目。当然,由于这套异构计算系统是依靠OpenCL来开发的,所以再后面又加了一个副标题而最终定名为《FPGA异构计算——基于OpenCL的开发方法》。
那么FPGA异构计算到底能解决什么问题,主要面向哪些行业或者领域呢?我认为FPGA异构计算现阶段以及未来很长一段时间主要解决的都是高性能高能效大数据处理这一主要问题。说具体一点其所面对的具体领域就是:金融计算、期货定价、石油勘探、海量图像检索等等。这些领域通常被传统上被各类高性能计算系统所盘踞,并随着高性能计算系统的发展而不断的向前发展。而随着高性能计算系统的发展,多核和异构计算系统已经成为正在发生的转变。目前大量采用CPU+GPU异构架构的高性能计算系统已经纷纷被研发出来,包括最新占据了超级计算机的榜首的“天河2号”。但正如现在媒体报道的,“天河2号”的能耗是大的惊人的。如何用更低的功耗提供更强大的计算能力就成为高性能计算向前发展必须要解决的问题。其实我们从“比特币矿机”的发展历程就可以知道,采用FPGA来加速运算会获得比GPU更高的能效比。因此,采用FPGA来替代GPU作为未来高性能计算的加速器,应该是现阶段的FPGA异构计算发展的主旋律。换言之,大家目前需要关注的是FPGA如何替代GPU的话题,而不是OpenCL如何替代HDL的话题。这是两种异构计算系统的竞争,而不是两种开发语言的竞争。
最后说一下本书所面向的读者,这一直是出版社最为关心和最为纠结的。通过前面的介绍大家应该明白了,这本书面向的读者主要并不是现在这帮使用现有FPGA开发方法的硬件工程师们,也不是要教育大家去放弃现在的FPGA开发方法转移到另外一种方法上。本书主要目的是为大家介绍一种新的异构计算系统及其编程方法,是为那些高性能计算系统及软件的开发者介绍如何用FPGA来构建一种更高能效的异构计算系统的。但非常不幸的是,由于国内高性能计算方面研究的滞后尤其是是高性能计算应用研究的滞后,可能导致最需要这本书的读者不一定有机会接触到这本书。我国传统的文理分科、专业划分等问题,人为的造成了学科上的割裂。传统上的学经济、金融、管理学科的大多数文科出身,对数学工具的使用尚且还有待商榷,更不要说对高性能计算方法和技术手段的掌握的了。而反观欧美发达国家,计算机技术已经任何一个学科的基础技术。包括音乐、艺术在内的我们认为完全依靠个人灵感的学科,欧美国家的研究者都在尝试着对其建模并用计算方法加以分析,遑论金融、期货等这类本身就具备极强规律性的学科了,从2006年起就已经看到欧美学者将FPGA用于金融计算的报道。在2014年的计算机系统与高性能计算会议“Design, Automation & Test in Europe Conference”(DATE)上,也已经有采用FPGA异构计算的方法来实现期权定价的论文发表。由于本人对于金融、期货是外行,在请教了相关方面的专家以后他们表示改论文使用的算法是金融界相当“简单”和“原始”的算法。而当我提出是否有兴趣进一步合作开展相关研究时,他们却基本都顾左右而言它。在国内想要做跨学科研究之难,由此可见一斑。不过值得欣喜的是,国内已经有以华西证劵为代表的一系列具有前瞻眼光的行业公司开始认识到FPGA异构计算系统的优势,也有像百度、腾讯这样的互联网大公司在尝试使用这一方法。希望本书能够起到抛砖引玉的作用,为推广FPGA异构计算技术在国内的发展做出一点点小小的贡献。
在此特别感谢Altera公司大学计划陈卫中先生以及师研女士的大力支持,特别感谢Altera公司陈涪师兄的技术指导,特别感谢在本书编辑出版过程中提供了大力帮助的西安电子科技大学出版社各位领导和编辑,特别感谢参与本书编辑的各位同学。