FPGA (现场可编程门阵列)由于其硬件并行加速能力和可编程特性,在传统通信领域和IC设计领域大放异彩。一路走来,FPGA的技术并不是一个新兴的硬件器件,由于其开发门槛过高,硬件加速算法的发布和部署保护要求非常高,FPGA的使用一直是高冷的美人,没有走入平常百姓家。也就导致FPGA的计算潜力还没有得到深入的挖掘。
阿里FPGA云服务器平台FaaS(FPGA as a Service)在云端提供统一硬件平台与中间件,可大大降低加速器的开发与部署成本。用户可以直接使用部署加速器提供商提供的加速服务;也可以在无需了解底层硬件的情况下,快速开发和部署自己的定制加速器。
FaaS平台提供给所有的加速器开发者统一的FPGA硬件接口Shell,提前帮用户解决了FPGA开发难度最大的高速接口开发及调试,例如PCIe,Fiber接口, DDR控制器等等,大大简化了开发的时间;用户能够直接得到硬件平台和FPGA接口的最大性能,不会因为团队开发能力和经验的欠缺,造成硬件平台性能浪费。
在提供统一接口提供安全性和便捷性的前提下,阿里云FaaS也尽最大努力保证用户设计的灵活性和快捷性,Role的概念应运而生。Role在动态区域,不同于Shell,用户可以根据需要,随时更换Role部分;这种Shell + Role的组合方式,保证了Shell的最轻量化,极大的提升了开发的便捷性,大大缩短了开发所需时间。
与Shell和 Role对应,在服务器端,FaaS也提供相应的驱动和软件库,为用户提供统一及灵活的软件支持,比如 DMA 驱动, 寄存器 访问驱动等等。
传统的FPGA开发如果从硬件设计开始,需要经历原理设计、PCB设计、PCB生产、装配测试等 漫长的硬件周期; 在逻辑设计阶段,也需要从板卡启动调试、接口调试、驱动开发等最底层的工作开始;这些工作完成之后,开能开始正常的逻辑开发工作。
阿里FaaS平台大大简化了整个FPGA的设计流程。使用FaaS实例,无需硬件周期;逻辑设计阶段,也可直接跳过板卡启动调试以及接口调试,可以直接开始用户逻辑设计;而且,Role的提供,也可简化或者省略一部分用户逻辑的设计。