异构计算的两大派别 为什么需要异构计算?

news/2024/11/23 5:33:37/

在互联网行业,随着信息化的普及,数据量的暴增使得人们对存储空间又有了新要求,同时,机器学习、人工智能、无人驾驶、工业仿真等领域的崛起,使得通用CPU在处理海量计算、海量数据/图片时遇到越来越多的性能瓶颈,如并行度不高、带宽不够、时延高等。

为了应对计算多元化的需求,越来越多的场景开始引入GPU、FPGA等硬件进行加速,异构计算应运而生。异构计算(Heterogeneous Computing),主要指不同类型的指令集和体系架构的计算单元组成的系统的计算方式。

20世纪80年代,异构计算技术就已经诞生了。所谓的异构,就是CPU、DSP、GPU、ASIC、协处理器、FPGA等各种计算单元、使用不同的类型指令集、不同的体系架构的计算单元,组成一个混合的系统,执行计算的特殊方式,就叫做“异构计算”。

特别是在人工智能领域,异构计算大有可为。众所周知,AI意味着对计算力的超高要求,目前以GPU为代表的异构计算已成为加速AI创新的新一代计算架构。

我们为什么需要异构计算?

谈到计算,我们通常会想到CPU,但是CPU属于通用计算,受制于摩尔定律,随着计算多元化的发展,特别是应用类型的多样化,导致CPU在处理某些计算类型方面出现“力不从心”的情况。引入特定的单元让计算系统变成混合结构成为了必然,每一种不同类型的计算单元都可以执行自己最山擅长的任务。

CPU虽然运算不行,但是擅长管理和调度,比如读取数据,管理文件,人机交互等,例程多,辅助工具也很多;GPU管理更弱,运算更强,但由于是多进程并发,更适合整块数据进行流处理的算法;FPGA能管理能运算,但是开发周期长,复杂算法开发难度大。适合流处理算法,不管是整块数据进还是一个一个进。还有实时性来说,FPGA是最高的。

当人工智能等海量计算力诉求到来之后,GPU、FPGA配合CPU进行计算也就“水到渠成”了。

异构计算的两大派别——GPU和FPGA

我们最熟悉的异构计算平台就是“CPU+GPU”以及“CPU+FPGA” 架构。这些典型异构计算架构最大的优点是具有比传统CPU并行计算更高效率和低延迟的计算性能,尤其是业界对计算性能需求水涨船高的情况下,异构计算变得愈发重要,整个计算行业生态无一不在此发力。

众所周知,相比CPU,GPU和FPGA拥有太多的优势,GPU有更高的并行度、更高的单机计算峰值、更高的计算效率;而FPGA的优势则主要体现在它拥有更高的每瓦性能、非规整数据计算更高的性能、更高的硬件加速性能、更低的设备互联延迟。

目前异构计算使用最多的是利用GPU来加速。主流GPU都采用了统一架构单元,凭借强大的可编程流处理器阵容,GPU在单精度浮点运算方面将CPU远远甩在身后。各个GPU厂家都推出了适用于通用计算的GPU,GPGPU(General Perpose GPU)。一时间,整个业界都在谈论GPU计算。

除了GPU,FPGA成为近年半导体产业的热点。FPGA作为一种高性能、低功耗的可编程芯片,可以根据客户定制来做针对性的算法设计。所以在处理海量数据的时候,FPGA 相比于CPU 和GPU,优势在于:FPGA计算效率更高,FPGA更接近IO。

PGA不采用指令和软件,是软硬件合一的器件。对FPGA进行编程要使用硬件描述语言,硬件描述语言描述的逻辑可以直接被编译为晶体管电路的组合。所以FPGA实际上直接用晶体管电路实现用户的算法,没有通过指令系统的翻译。

当然除了GPU和FPGA,ASIC也是目前计算芯片的一种选择。ASIC是一种专用芯片,与传统的通用芯片有一定的差异,是为了某种特定的需求而专门定制的芯片。ASIC芯片的计算能力和计算效率都可以根据算法需要进行定制,所以ASIC与通用芯片相比,具有以下几个方面的优越性:体积小、功耗低、计算性能高、计算效率高、芯片出货量越大成本越低。但是缺点也很明显:算法是固定的,一旦算法变化就可能无法使用。

目前人工智能属于大爆发时期,大量的算法不断涌出,远没有到算法平稳期,ASIC专用芯片如何做到适应各种算法是个最大的问题。

不同处理器芯片在构建异构计算方面有着自己的鲜明特点。CPU、GPU领域存在大量的开源软件和应用软件,任何新的技术首先会用CPU实现算法,因此CPU编程的资源丰富而且容易获得,开发成本低而开发周期。FPGA的实现采用Verilog/VHDL等底层硬件描述语言实现,需要开发者对FPGA的芯片特性有较为深入的了解,但其高并行性的特性往往可以使业务性能得到量级的提升;同时FPGA是动态可重配的,当在数据中心部署之后,可以根据业务形态来配置不同的逻辑实现不同的硬件加速功能。

ASIC芯片可以获得最优的性能,即面积利用率高、速度快、功耗低;但是AISC开发风险极大,需要有足够大的市场来保证成本价格,而且从研发到市场的时间周期很长,不适合例如深度学习CNN等算法正在快速迭代的领域。

结语

当前计算多元化趋势不可阻挡,单一的CPU已经无法计算力的需求。在这种情况下,以GPU和FPGA为代表的异构计算大行其道。特别是人工智能、大数据、物联网等新技术的推动,应用类型呈现多样化,其对计算的需求也呈现差异化的特点。不管是“CPU+GPU”还是“CPU+FPGA” ,都是为了更好地服务个性化的计算需求。

可以预见的是随着计算产业的演进,异构计算具有广泛的发展空间,我们也会看到越来越多的异构计算架构在承载应用方面发挥越来越重要的作用。

相关推荐:

小梅哥FPGA设计思想与验证方法视频教程

对话FPGA原厂——既聊技术,也谈市场

NI FPGA基础学习视频(基于cRIO)


http://www.ppmy.cn/news/455578.html

相关文章

CPU+GPU异构式并行加速环境的搭建

CPUGPU异构式并行加速环境的搭建 前言基本思路环境搭建OpenMP环境搭建CUDA环境搭建 前言 此文章假设阅读对象有C语言基础但在并行领域未曾入门,介绍了如何搭建CPUGPU异构式并行加速环境。其中,CPU上需要使用的语言为OpenMP,GPU上需要使用的语…

异构型实例科普---我眼中的异构计算

author:pasca time:2018/01/27 文章目录 摘要一、传统计算的困境二、异构计算的崛起三、”厨房论“异构计算GPU:手脚麻利但是比较笨的帮厨FPGA: 功能多变的万能料理机ASIC:最强订制料理机 四、总结 摘要 本文旨在梳理及加深自身…

异构是什么

异构(heterogeneous,来自中世纪拉丁文 heterogeneus,来自希腊语 heterogenēs ),即由不同的元素或部分组成,不均匀的意思。 含义 异构是指一种包含不同成分的性质。在不同领域有不同意思。 化学 在化学中…

异构开发与异构编程(CUDA GPU)

 什么是异构开发或者编程呢? 虽然自己从事CPUGPU相关工作,但是对异构这个概念之前还不太明确,经过结合开发经验以及查阅资料,对此概念有了一定的理解。 一定要注意能够使用GPU计算的程序必须具有以下特点…

异构计算--CUDA架构

1.CUDA是什么? CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,是一种通用并行计算架构,该架构使GPU能够解决复杂的计算问题。说白了就是我们可以使用GPU来并行完成像神经网络、图像处理算法这些在CP…

异构加速在加速什么

目前市面上的加速芯片挺多的,比如GPU、FPGA、TPU,以及针对各种特殊应用所开发的加速芯片。自己一直想理清楚这些加速芯片到底在加速什么,一直没有确切答案。一般宽泛的说法是CPU处理效率较低的,我们就进行加速,但个人觉…

英特尔助力快手实现异构计算加速 显著提升性能,降低系统TCO

昨晚睡得好吗?睡不好可以刷快手的《11 点睡吧》。这部当代人睡眠困境的微综艺,总曝光量达到 107亿,不但科普睡眠知识,更深度探讨都市人的喜怒哀乐[1]。惊人的曝光量背后,是快手对用户画像数据的精准分析,离…

深入理解CPU和异构计算芯片GPU/FPGA/ASIC

转自,http://www.cnblogs.com/qcloud1001/p/6617764.html 随着互联网用户的快速增长,数据体量的急剧膨胀,数据中心对计算的需求也在迅猛上涨。诸如深度学习在线预测、直播中的视频转码、图片压缩解压缩以及HTTPS加密等各类应用对计算的需求已…