- UID
- 1023229
- 来自
- 中国
|
在选择FPGA作为新的JPEG处理平台之前,我们搜索过大量的文献、论文以及借助日益强大的网络资源,其中一篇源自2011年电子工程世界的《FPGA末日来临多核处理器GPU将取代之》的文章尤其引起我们关注;GPU作为我们之前几代JPEG处理处理平台之一,确确实发挥了不可或缺的作用,与此同时,我们也不可忽视的日益增大的功耗,以及性能瓶颈不得不让我们反思,多核GPU难道真的是FPGA的末日吗?
据不完全统计,在搜索引擎中输入FPGA与JPEG词条后,与之相关的论文竟然高达1257篇,可见FPGA在JPEG图像处理领域的研究工作已经相当热门。但还是在与代理商的沟通以及系列FPGA研究工作之后,我们困惑了,因为作为传统软件公司,Verilog对于C/C++就相当于一个相距甚远省份不同的方言;写C/C++,就像喝水就像呼吸空气,我们熟悉的不能再熟悉,让我们写FPGA代码,我的这些软件精英们却几乎从0开始,我们的优势在哪里?困惑归困惑,陌生归陌生,可这一切不正是英雄路上的磨脚石吗?我们毅然选择了FPGA这条崭新的康庄大道。
康庄大道并不是一帆风顺。如何将现成的基于C/C++的JPEG算法转化成RTL语言是摆在我们面前的一块巨石,我们不熟悉硬件语言,而要将如此庞大的算法移植,而效果又必须提高确实存在难度,这里我不得庆幸当时的选择—Xilinx。Xilinx作为FPGA行业的领军企业,不仅在Silicon质量上不断创新,而最新的编译工具Vivado/Vivado HLS给了我们太多的惊喜。庞大的JPEG C++算法,在两位软件精英面前硬生生的转化成活生生的代码并运行到Xilinx Development Board上,而且效果惊人,这给了我们莫大的欣慰和鼓舞。然后就是为了一个latency,为了一个LUT我们不断的约束,不断地尝试,就这样效果逐步提高,在更低功耗的情况下FPGA图片压缩处理能力是GPU处理能力的3倍甚至更高。
一个个FPGA难题逐步被我们攻克,PCIeDMA, DDR Controller,Power optimization等。从最初的ISE到目前的Vivado每一步我们都走的艰辛,每一步成果颇丰。ISE单次布局布线过程需要大约5小时左右,而且实现的结果也常常会有违背时序约束的情况。这极大的影响了调试的进度。当我们将设计移植到Vivado环境下运行时,情况有了令人惊喜的改变,单次实现过程只需要2个半小时到3个小时左右,比较之前减少50%的时间。而且,几乎每次实现都能满足时序约束。FPGA设计的生产力得到了很大的提高,加速了FPGA和软件调试,集成的进度,同时降低了功耗,节省了资源,为实现更高性能提供了条件。在高可靠性,高集成的芯片的基础上,配合Xilinx新一代的编译工具,这一切顺利成章。
精英就是精英,给我一个支点我就能够撬动地球,更何况我们选择的是Xilinx。我们下载资料,我们买书,我们向前辈学习,如今的我们多了一个头衔—FPGA精英。兄弟部门的眼光纷纷投向我们,时常带着一句:听说这帮家伙在搞一个全新的玩意。对,这就是我们,未来公司的服务器上都会有我们的产品,我们的产品让你的图片相应更迅捷,让你的游戏更顺畅。多核GPU是FPGA的终结者,我看恰恰相反,FPGA会在大数据领域绽放更多光彩。 |
|