采用FPGA协处理器实现算法加速
时间:07-14
来源:互联网
点击:
设计实例
图4所示的Mandelbrot图是一种经典的不规则几何图形,该图形广泛用在科学和工程学界用于仿真无序事件,例如天气。不规则图形也用于产生纹理和在视频显示应用上成像。Mandelbrot图像描述为自相似性。放大图形的局部,可以获得类似于整个图形的另外一个图形。
Mandelbrot图形是硬件/软件协同设计的理想选择,因为它具有单个运算密集的函数。通过将关键的函数转移到硬件实现将大大地增加整个系统的速度,使这个关键函数更快。Mandelbrot应用还能清楚地区分硬件和软件进程,使用C-HDL工具很容易实现。
本文使用CoDeveloper工具组作为C-HDL工具组用于该设计实例,而且只修改了软件Mandelbrot C程序以使其与C-HDL工具兼容。其中的改变包括:将软件项目分割成不同的进程(顺序执行的独立单元);函数接口转换(硬件到软件)到流;增加编译器指令来对产生的硬件进行优化。我们随后使用CoDeveloper工具组来创建Pcore协处理器,将该协处理器输入到Xilinx Platform Studio(XPS)。利用XPS,我们将PC连接到PowerPC APU控制器接口,并测试系统。
Xilinx公司的应用说明资料XAPP901中提供了该设计的全面描述和设计文件,并提供下载。同时,用户指南UG096提供一种实现设计实例的逐步设计指导。
我们对Mandelbrot图像纹理问题、图像滤波应用和三倍DES加密的性能改善进行了测量。性能改善显示了从11倍到34倍的加速,在表2中做出了总结。
本文小结
受功率、尺寸和成本的约束,你可能需要做出一个并非理想的处理器选择,通常所选择处理器性能比期望的性能低。当软件代码不能运行足够快时,协处理器代码加速器成为一种很有吸引力的解决方案。你可以在HDL中手动设计加速器或使用C-HDL工具自动将C代码转换成HDL。
使用Impulse C这样的C-HDL工具能使加速器运行更快且更简单。Virtex-4 FX FPGA具有两个嵌入式PowerPC,能实现处理器指令流水线到软件加速器之间紧密的连接。如上所述,关键的软件程序增加速度10倍到30倍,使300MHz的PowerPC提供等于或高于高性能GHz级处理器的性能。上面的实例每个只需要几天的时间来产生,显示了采用C-HDL流程的快速设计、实现和测试。
图4所示的Mandelbrot图是一种经典的不规则几何图形,该图形广泛用在科学和工程学界用于仿真无序事件,例如天气。不规则图形也用于产生纹理和在视频显示应用上成像。Mandelbrot图像描述为自相似性。放大图形的局部,可以获得类似于整个图形的另外一个图形。
图4:Mandelbrot图
Mandelbrot图形是硬件/软件协同设计的理想选择,因为它具有单个运算密集的函数。通过将关键的函数转移到硬件实现将大大地增加整个系统的速度,使这个关键函数更快。Mandelbrot应用还能清楚地区分硬件和软件进程,使用C-HDL工具很容易实现。
本文使用CoDeveloper工具组作为C-HDL工具组用于该设计实例,而且只修改了软件Mandelbrot C程序以使其与C-HDL工具兼容。其中的改变包括:将软件项目分割成不同的进程(顺序执行的独立单元);函数接口转换(硬件到软件)到流;增加编译器指令来对产生的硬件进行优化。我们随后使用CoDeveloper工具组来创建Pcore协处理器,将该协处理器输入到Xilinx Platform Studio(XPS)。利用XPS,我们将PC连接到PowerPC APU控制器接口,并测试系统。
Xilinx公司的应用说明资料XAPP901中提供了该设计的全面描述和设计文件,并提供下载。同时,用户指南UG096提供一种实现设计实例的逐步设计指导。
我们对Mandelbrot图像纹理问题、图像滤波应用和三倍DES加密的性能改善进行了测量。性能改善显示了从11倍到34倍的加速,在表2中做出了总结。
表2:通过协处理器加速器的算法加速性能对比
本文小结
受功率、尺寸和成本的约束,你可能需要做出一个并非理想的处理器选择,通常所选择处理器性能比期望的性能低。当软件代码不能运行足够快时,协处理器代码加速器成为一种很有吸引力的解决方案。你可以在HDL中手动设计加速器或使用C-HDL工具自动将C代码转换成HDL。
使用Impulse C这样的C-HDL工具能使加速器运行更快且更简单。Virtex-4 FX FPGA具有两个嵌入式PowerPC,能实现处理器指令流水线到软件加速器之间紧密的连接。如上所述,关键的软件程序增加速度10倍到30倍,使300MHz的PowerPC提供等于或高于高性能GHz级处理器的性能。上面的实例每个只需要几天的时间来产生,显示了采用C-HDL流程的快速设计、实现和测试。
嵌入式 自动化 FPGA Xilinx 总线 连接器 解码器 滤波器 仿真 C语言 相关文章:
- 基于FPGA的片上系统的无线保密通信终端(02-16)
- 基于Virtex-5 FPGA设计Gbps无线通信基站(05-12)
- 基于FPGA的DVI/HDMI接口实现(05-13)
- 基于ARM的嵌入式系统中从串配置FPGA的实现(06-09)
- FPGA按键模式的研究与设计(03-24)
- 周立功:如何兼顾学习ARM与FPGA(05-23)