SDAccel 开发环境运用.docx
《SDAccel 开发环境运用.docx》由会员分享,可在线阅读,更多相关《SDAccel 开发环境运用.docx(7页珍藏版)》请在第一文库网上搜索。
1、SDAcce1开发环境运用赛灵思的SDAcce1开发环境为FPGA提供软件应用设计流程。赛灵思FPGA器件主要由可蝇逻辑架构组成,能让应用设计人员利用空间和时间并行性,最大化篁法性能或大型应用中关键内核的性能。位于这种架构核心的是由基于查找表的逻辑元、分布式存储器单元和乘法-累加单元构成的阵列。设计人员可以用不同方式组合这些元件,把逻辑实现在算法中,同时满足功耗、吞吐量和时延方面的设计目标要求。把FPGA架构元件组合为逻辑功能一直是便性工程人员的工作范畴,这个过程更类似于汇编层面的编码,与现代软件设计实务相去甚远。虽然常用软件设计流程早已脱离汇编编码的层面,但由于CPU编译和FPGA编译之间内
2、在的差异,FPGA设计实践的发展步伐要缓慢一些。在CPU和型领域,硬件是固定的,所有的程序均根据静态指令集架构(ISA)编译。虽然CPU和GPU之间的ISA不同,但基本的底层编译方法是相同的。这种相似性促使设计实践从手动汇编编码向使用OpenC1TMC、C和也等软件开发常用的编程语言进行编译、调试和优化的设计流程发展演化。在FPGA设计方面,设计人员能够为运行特定工作负载开发自己的处理架构。FPGA的一大重要优势就是能够根据特定系统需求定制架构,但这不利于FPGA应用开发中采用软件开发实践方法。六年前赛灵思开始积极的研发工作,通过开发一种把直观的软件开发设计循环引入FPGA的开发环境,来打破这
3、一障碍。面向OpenC1C、C和C的赛灵思SDAcce1TM能够让FPGA器件的应用编译、调试与优化方式类似于CPU和GPU的流程,而且在用于数据中心应用加速时,可将性能功耗比提升高达25倍。软件设计人员可以使用SDAcce1开发环境开发和加速众多功能与应用。下面介绍如何使用SDAcce1环境实现中值滤波器应用的编译、调试与优化设计循环。中值滤波器中值滤波器是一种常在图像处理中用于降噪目的的空间函数(图1)。中值滤波器使用的算法用围绕中心像素的3x3像素窗口,根据所有相邻像素的中值计算中心像素值。这一计算公式为:OutputPixe1ij=median(inputPixe1i-1j-1,inp
4、utPixe1i-1j,inputPixe1i-1j1,inputPixe1ij-1,inputPixe1ij,inputPixe1ij+1,inputPixe1i+1j1,inputPixe1i+1j,inputPixe1i+1j+1);编译运用OpenC1C等语言编写中值滤波器函数后,就进入开发的第一个阶段一编译。在CPU或GPU上,编译是软件设计流程中的一个必要的也是必然的步骤。目标ISA是固定而公开的,编程人员只需关心可用的处理内核数量和算法的高速缓存缺失情况。FPGA编译更像一个开放问题:在编译时目标ISA并不存在,逻辑资源还有待组合成处理架构,系统存储器架构也尚未定义。SDAcce
5、1开发环境中的编译器提供三项功能,可帮助编程人员应对如下这些挑战:自动在循环内的语句间和跨循环迭代提取并行性、根据对阵列的读写模式自动调用存储器架构、以及对给定FPGA器件内部基本逻辑元的类型和数量的架构感知能力。这三项功能对中值滤波器的源代码的重要性见图示(图2)Ofor(Inty0;yheight;y+)intoffsety*vid,th;intprevintnextoffset-widh;offset+width;for(intx=0;xwidth;x+)/Getpixe1swithin3x3apertureuintrgbSIZE;rgb0rgb(1rgb2input(prev+x-1)
6、;input;(prev+x;inputprev+U;:gb);rgb3rgb4rgb5rgb6rgb7rgb8inputoffsetinput;(offsetxnpu(offsetinputnext.+input(next;+inputs(next+uintresu1t=0;+x-U;+;+X+1;-U;x;X+1;/Iterateovera11co1orchanne1sfor(intchanne1=0;channe13;channe1+)resu1tI=getMedian(channe1r/Storeresu1tintomemoryoutputoffset+=resu1t;)图2-中值中值
7、滤波器的运算可以表达为由一系列由两个部分组成的嵌套循环。第一个部分负责从名为“输入”的外部存储器中阵列取出数据,然后把值存储在本地阵列“RGB”中。算法第二个部分是一个围绕getMedian函数的“f匹”循环。getMedian就是计算发生的位置。通过分析图2中的代码,SDAce11环境认为RGB阵列上不存在循环-承载数据依赖关系。每次循环迭代都有一个专有RGB副本,这个副本可以存储在不同物理资源上。从这个代码看出的SDAcce1环境的另一大特点是对getMedian函数调用的独立性。图2所示的算法版本在带有固定边界的“for”循环内部执行getMedian函数。根据滤波器的性能目标和所选的F
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SDAccel 开发环境运用 开发 环境 运用