工业趋势正在推动FPGA在异构计算范式中发挥重要作用。 开放计算语言(OpenCL)是一个用于在异构环境中编程FPGA的行业标准开发平台。
本章将向您介绍为什么异构计算是必要的,以及用于创建在其上执行的软件的新语言的出现 。
Heterogeneous Computing
异构计算是指使用一种以上类型的处理器来执行专门处理功能的系统。随着系统的整合,异构计算越来越成为标准,并且必须包含几种不同的处理器体系结构。
并行计算是计算机同时执行许多计算的能力,其原理是将大问题分解为小问题,然后并发(并行)解决。并行计算已经成为当前计算机体系结构的主导范式,其中常见的就是多核处理器,程序将多个实例分配给多个处理器,同时执行。
Why Use OpenCL on FPGAs?
对异构计算的需求导致了新的编程语言来利用新的硬件。
OpenCL是一种用于编写跨由CPU、GPU、DSP、FPGA和其他类型处理器组成的异构平台执行的程序的框架。 OpenCL是一种用于开发内核(在硬件设备上执行的函数)以及允许主程序控制内核的应用程序编程接口(API)的语言。 OpenCL允许使用基于任务和基于数据的并行能力进行并行计算。
FPGA本质上是并行的,因此它们非常适合OpenCL的并行计算能力。 FPGA为您提供了一种替代典型数据或任务并行性的方法,它还提供了流水线并行性,在这种并行性中,任务可以以推拉配置生成,每个任务都可以在有或没有主机交互的情况下从上一个任务中获取数据。其次就是FPGA的编码是HDL编码语言,但是OpenCL允许使用c语言编写程序,然后使用OpenCL提供的额外功能,将代码分离为可以执行的执行代码和可以发送到FPGA的内核代码。
简单来说有以下几个好处:1.开发方便,就上所述,用c语言代替HDL语言编码
2.代码检测,可以检测并确定性能敏感的区域
3.性能,可以实现高平衡高效率
4.效率,使用OpenCL提供高性能服务
5.异构系统,使用OpenCL,您可以无缝地开发针对FPGA、CPU、GPU和DSP的内核,为您提供真正的异构系统设计。
6.代码复用,OpenCL允许可移植代码进入不同的代码区域,项目,延长使用寿命。