当然,既然是在云服务器中的FPGA加速服务,必须涉及到的就是虚拟化,这样才能满足多用户的需求。我们虽然看不到BAT服务器目前在FPGA虚拟化方面的实现如何,但是可以预见虚拟化是必然的一个选择,否则云服务器的规模成本优势将会大打折扣。这样遇到的一个问题就是FPGA虚拟化并不容易实现及使用。试想一下,同一个FPGA内,两个不同的用户在同时使用各自的区域并且互不干扰。这虽然在技术上可以实现,但是BAT服务器目前是否有这些部署,我们还需进一步了解。
除了虚拟化,目前FPGA在云计算中应用有一个很大的挑战就是FPGA的编程难度要比GPU、CPU难很多、而且开发周期长,程序模块化差,当然目前的FPGA可以用很多高级语言去设计比,如HLS、OpenCL等,但其执行效率肯定就要比用Verilog直接开发低不少,这样的话FPGA与GPU相比是否还有功耗优势就不一定了。这样也会影响FPGA加速服务的性能。
有了服务,用在何处是另一个问题,也许BAT也没有特别的想清楚FPGA加速到底用在何处,目前提到的应用也只有深度学习、压缩算法等,还没有什么实际落地的应用。这一探索任务落到了目前很多传统基于FPGA做开发的公司身上,他们已经在BAT服务器中开始测试FPGA加速功能。隔着遥远的网线使用着也许是国外某个深山中的一颗FPGA,意味着做现场控制已经不现实了,这意味着未来的应用来自于FPGA的传统市场比例肯定会比较小,目前来看最快的有可能是某些公司发现之前用GPU实现的功能用FPGA实现更加的划算了,同时研究发现研发投入可以接受,那么可能会转到FPGA加速。
总结,FPGA在云计算中的优势是显而易见的,但是怎样才能找到一种高效、经济的方式将这种优势体现则是更加重要的一个因素。