多核处理器可替代FPGA
扫描二维码
随时随地手机看文章
Peter认为,鉴于其高性能、易编程及低成本特点,GPGPU技术在许多情况下能够替代FPGA和DSP。
尽管没有针脚,诸如图形处理器(GPU)和Tilera处理器等多核处理器在某些应用中正逐步替代现场可编程门陈列(FPGA)。开发人员表示,GPU可用于执行多种功能,而非单纯的图形处理,从而成就了图形处理器通用计算(GPGPU)技术的出现,其中最为瞩目的便是 NVIDIA’s CUDA。当评估GPGPU、TILE或FPGA技术能否作为任何即定应用的首选时,需考虑(但不局限于)以下因素:
• 可用处理能力
• 延迟
• 可扩展性
• 开发成本
• 技术嵌入
• 价格
处理能力
处理能力的评估一定程度上取决于处理数据类型及处理算法。
由于GPU起初主要负责图形绘制,因此,其尤其善于处理单精度(SP)及(某种情况下)双精度(DP)浮点(FP)运算。Tilera的TILE设备当前不支持硬件FP运算,但要求进行软件模拟,且性能代价高昂。一般而言,FPGA亦是如此,设备通过利用多种资源来处理FP运算问题。达到可接受性能要求IP区块需消耗多个门并要求深流水线技术。例如:当前Tesla级GPU每秒最高可执行1012次浮点运算或1TFLOPS,而Xilinx Virtex-6设备则为150 GFLOPS。
当考虑到定点运算时,情况有所不同。新一代GPU在浮点速率相同的情况下可执行整数运算,例如:当Virtex-6设备提高至500GOPS时,GPU每秒可执行1012次运算或1TOPS。整数性能是TILE处理器的优势所在:8位数据时,TILE-Gx(图1)最高执行能力为750GOPS,32位数据时为188GOPS。
图1:8位数据时,Tilera的TILE-Gx处理器最高执行能力为750GOPS
在信号处理应用中使用定点处理会延长开发时间。在系统定义阶段时间进行诸多分析,进而能够测定各处理阶段的动态范围要求,并确保实际信号应用中无上溢或下溢现象发生。否则,开发人员需要在系统运行时使用额外资源来持续监控动态范围并调整区块比例因数。
无论从时间还是空间上讲,许多通用架构处理开销可能显著较大,因此,逐位运算尤为适用于FPGA。若在FPGA上执行逐位运算,则需要考虑开发时间。毋庸置疑,系统的实际可用处理能力在很大程度上可能会因理论峰值处理能力的不同而有所差异。影响该差异的两个主要因素包括硬件架构算法的适用性及优化执行能力所需时间。
例如:FPGA能够利用其并行及适应多种算法的特性来获得更加接近理论最大值的性能。但是,FPGA需要更大的硅片空间和更长的开发时间来接近这些理论最大值。对于适应于GPU硬件并行模式的算法,GPU已经能够达到峰值的20~30%。它们同样具有合理的硅密度(40nm工艺,32nm研发中)和开发时间(通常只有数周,而FPGA则需几个月)。TILEPro64处理器可提供FPGA相类似的适应性和GPU相类似的可编程性,但是,由于其粗糙的任务级问题分解特点使得其无法像FPGA和GPU那样实现细粒度并行。
内存带宽在评估处理器性能方面同等重要,GPU能够提供3倍于FPGA、6倍于TILEPro64的优势。但是,必须指明,该带宽须以下列条件为基础:出现的大延迟须通过交叉处理进行控制,应在最佳访问模式中通过整合实现接合访问。有了FPGA,开发人员需要充分考虑内存位置。新一代GPU和TILEPro64处理器具有传统的缓存分布,能够帮助优化内存位置并减少开发时间。
延迟
也许能够排除使用GPGPU的最可能因素便是延迟。例如:调用内核所需时间及主存储器较长访问时间均可引起长延迟。许多情况下,这种延迟可能会稍有缓解但是无法完全避免。因此首选应为大数据集处理,原因在于,其为大量运算,换言之,其具备较高的计算强度。在需要满足严格延迟要求的环境下(例如闭回路控制),FPGA为首选。TILE处理器具有良好的延迟特性,“裸机”模式下进行编程时尤为突出。
可扩展性
FPGA能够与诸如Aurora等低开销联接紧密耦合,或执行诸如Serial RapidIO或PCI Express等标准串行结构。GPGPU为协处理器,通常需要一个主处理器。如图2所示,许多GPU能够联接至一个单主处理器(首选多核)中,但是,当各主处理器核使用一个GPU时,共享资源会限制返回。
图2:GE智能平台加固型IPN250和NPN240能够使Intel多核主处理器管理多个NVIDA GT240 96核CUDA GPU
多联接GPGPU间执行代码的常用方法是使用OpenMP。该方法允许在并行线程中自动执行处理回路,且分别使用不同的GPU。在集群层面(主处理器+GPU[或多GPU])还可实现进一步扩展。该集群还可通过PCI Express、10G Ethernet、InfiniBand及其它联接进行联接,并且通过使用诸如MPI等中间件进行编程。
TILE处理器可通过多种网状结构实现核间高度连接,进而调整至不同的处理类型。TILE处理器多交换结构考虑到了核间通用低延迟IPC及核间内存一致性。设备与设备之间可通过10G以太网和PCI Express进行连接。整个设备或核心集群可编程为对称多处理设备。
开发成本
开发成本难以度量。从定性分析的角度,一般认为采用C或C++的多核设备编程要比FPGA编程简单。而且大家普遍认为找到合格的多核设备编程工程师要比招募FPGA 设备的VHDL或Verilog编程人员更加容易。由于开发人员须同时优化硬件和算法(软件),因此需要多种技能,才可使FPGA接近理论性能。在多核情况下,因为硬件已经确定,开发人员可专注于算法开发和优化(仅软件)。
量化该差别是个难题。一种方法是考虑软件规模即代码行(SLOC)多少。这种方法根据算法不同而会有所差异,但多核处理器代码行少于三分之一的现象并不少见。使用更高级的比较方法会使情况变得模糊——如GPGPU采用MATLAB,FPGA编程采用Agility-C或MATLAB系统生成器等。
单单SLOC并不能精确代表开发成本。许多推动软件开发生产率发展的工具和语言创新,如集成开发环境、调试器、测试覆盖率生成和面向对象编程都在对FPGA开发产生影响——但还有很长的路要走。此外,开箱即用的FPGA开发由于较长的综合及布局、布线时间、较低的处理器状态透明度以及可能耗时很久的仿真时间等因素,并不具有最快的软件测试和修改周期。这些问题有相应的解决方案,但都需要额外的投资。
技术嵌入
在应用层面,GPGPU设备可升级至更多核的新产品而无需做出很大改动。例如,无论存在多少核,通过小型执行单元(内核)进行并行处理的方法都依然有效。在开发及运行时,工具链和驱动程序可分别使应用程序与硬件脱离。可同时调用成百上千的线程,运行这些内核。
单个二进制数可运行在具有不同核数量的不同设备上。多数情况下,这可以最大程度简化到新平台的移植。
与此类似,编写的TILE处理器的SMP应用,可在添加了新设备时,自动适用于更大的核数量。
相比之下,将FPGA应用移植到新设备上时,即使算法保持不变,也需要对硬件表达式代码进行大量修改,以适应不同的目标平台。
价格
商用级GPGPU板(图3)的售价可低至$50,而针对超级计算应用的最新GPGPU板的售价则为$4000。含有高端Virtex-6 的FPGA板的售价可能在$4000左右。Tilera板由于其针对性更强,售价会高的多。这三种型号的加固产品由于具有更小的体积、更好的板构造技术、更严格的检测和筛选,因此价格高出许多。例如,完全加固、传导冷却的GPU板售价可在$7000左右。此类板针对军事/航天应用需求,原因是商用级板无法适应恶劣环境下的环境压力,同时也不具备长期项目所需的长使用寿命。
图3: NVIDIA的支持CUDA技术的GeForce GT130M即为GPGPU技术的廉价入门级产品
结论
对于很多应用来说,FPGA在处理能力以及延迟方面的性能仍然无可比拟。但仍有许多应用场合应考虑使用多核设备。由于其定点性能,可考虑直接使用TILE处理器替代FPGA。GPGPU更加擅长浮点运算,因此可考虑将其用于替代FPGA,或作为FPGA的补充。
多核处理器与传感器靠的更近,这种模块可能不久就将面市 – 这些设备紧靠在模数转换器(ADC)后面即FPGA原先所处的位置。原先从带有AltiVec的PowerPC等通用处理器(GPP)改换至FPGA阵列的一些应用现在开始移植到多核架构上。例如,医疗成像设备如计算机断层扫描(CT)和磁共振显像现在采用GPGPU来成像。
目前混合采用FPGA和GPP的雷达系统正在评估使用GPGPU的可行性,以便降低处理子系统的尺寸、重量和功耗(SWaP),从而使其可部署在UAV等较小的平台上,或提升相同占位面积的处理能力。360度态势感知等一些先前使用专门硬件的成像应用如今采用TILE处理器和GPU来采集多个摄像机数据流,然后经过变形、拼接,从而显示全景图(图4)
图4: GPGPU支持多个摄像机数据流采集,从而实时生成全景图。
考虑到多核设备编程简单,及出色的处理能力、低廉的购置成本和与之相关的低廉开发成本,强烈建议将其用于先前主要采用可编程硬件阵列的应用。