ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

大赞Xilinx SDAccel:把FPGA开发带入软件定义时代

2021-03-29 11:54:12  阅读:142  来源: 互联网

标签:SDAccel FPGA 大赞 编译 开发 Xilinx 调试


大赞Xilinx SDAccel:把FPGA开发带入软件定义时代

杨东 FPGA开发圈
大赞Xilinx SDAccel:把FPGA开发带入软件定义时代

作者:杨东


众所周知,Xilinx公司是FPGA芯片厂商的领导者,如今已经成立了30个年头,为我们电子开发者提供了很多优秀的迭代产品,同时不断优化的FPGA开发工具软件。但是随着互联网时代的到来,FPGA的可扩展、高性能等优势使其可以在多领域大展身手,例如Intel、 百度等商业巨头都开始着手使用FPGA作为他们的数据中心,利用FPGA实现一些深度学习、人工神经网络算法等。

六年前Xilinx便开始了一项打破传统FPGA开发流程的研究项目,使软件开发的一套流程能够移植到FPGA开发上来,现在SDAccel开发环境终于与大家见面了。做为Xilinx SDx生态系统中的一员,SDAccel是首个面向OpenCL、C和C++进行架构优化的编译器,能够让开发者在FPGA上实现类似CPU/GPU的开发体验,例如编译、调试和优化等,例如其实现的FPGA数据中心加速服务相比CPU/GPU单位功耗性能提升了25倍,时延则缩短了50到70倍。

Xilinx推出SDAccel:打破传统


下面的百度公司在2014年热门芯片研讨会上公布的一份调查结果显示:

  • 中端 FPGA能够实现375 GFLOPS 的性能,功耗仅为10-20W。
  • 基于FPGA 的加速器可部署在所有类型的服务器中。
  • 和 CPU 和 GPU 相比, FPGA 在深度神经网络(DNN)预测系统中性能更加出色。DNN 系统用于语言识别、图像搜索、OCR、面部识别、网页搜索以及自然语言处理等各种不同应用。

传统的FPGA开发设计使用Verilog语言实现RTL设计,这种开发设计周期长、一些算法的verilog实现相比软件编程语言更加的晦涩难懂,而借助一些软件库可以轻松实现我们的想法,加快产品的研发周期,SDAccel开发环境让没有FPGA开发经验的软件工程师也能够受益于FPGA平台的优势。

SDAccel FPGA软开发三步走


大赞Xilinx SDAccel:把FPGA开发带入软件定义时代
图1 SDAccel开发环境

编译:


软件开发过程中编译代码是第一阶段,而且代码的编译结果与CPU/GPU资源的使用规则一般都是固定的,程序开发人员只需要关心算法的具体实现就可以了。而FPGA的编译过程则是一大难题:编译结果怎么在FPGA的可编程逻辑资源中实现以及FPGA程序代码的存储方式等问题。

SDAccel解决了这些问题,它能够识别选定FPGA型号的逻辑资源和内部存储结构类型,编译器能够在不同状态之间提取并行语句,使用基于阵列读写方式的自动内存结构,完成整个FPGA代码的编译过程。

调试:


在软件开发过程中,完成编译过程并不代表应用程序开发正确,我们还需要在目标硬件上进行不断的调试,发现问题改正错误,软件的调试是一个非常容易理解的问题,但是FPGA得调试却是另一回事,为了能够实现FPGA的调试功能,SDAccel引用了软件调试中经常使用的printf和GBD。

Printf的FPGA实现会浪费一些逻辑资源,这些资源本可以用于实现一些算法功能的,但是这里SDAccel做了一些改进优化,将printf的数据生成与解码显现分离开来,从硬件角度来看,生成printf数据只需要消耗非常少的逻辑资源,数据解码显示则完全有上位机完成,这样实现printf功能几乎对FPGA逻辑资源是零损耗。

程序开发人员可以使用SDAccel的仿真模式进入在线仿真功能,可以像软件调试一样设置断点、单步调试等操作。

优化:


FPGA应用的优化准则与CPU上的优化准则是一样的,只是实现方法不同,CPU上的优化是要关注处理的缓存大小和运算单元数量,而FPGA上的应用优化则关心所选器件型号的逻辑资源和运行时的性能。

总结展望


Xilinx推出的SDAccel让我们看到FPGA开发新的形式,可以让我们像软件一样完成FPGA应用的开发,同样的编译、调试、优化改进操作流程。Xilinx近年来的不断创新带来了一些业界传统变革,如最近提出的All Programmable 概念、SDx开发生态系统,同时她也不再是传统的可编程逻辑公司。这些创新不仅让FPGA应用到更多的领域,也预示着一个新的时代的到来——软件定义时代,我们能做的只有不断学习,紧追时代脚步。

标签:SDAccel,FPGA,大赞,编译,开发,Xilinx,调试
来源: https://blog.51cto.com/15057847/2676083

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有