人工智能Ai芯片层出不穷,GPU、FPGA、ASIC用于人工智能的优势和劣势对比

人工智能(AI)主要包括三大要素,分别是数据、算法和算力。其中数据是基础,正是因为在实际应用当中的数据量越来越大,使得传统计算方式和硬件难以满足要求,才催生了AI应用的落地。而算法是连接软件、数据、应用和硬件的重要桥梁,非常关键。算力方面,主要靠硬件实现,也就是各种实现AI功能的处理器,而随着应用和技术的发展,能实现各种算力、满足不同应用的AI处理器陆续登场,经过不同的发展阶段,发挥着各自的作用。

在比较成熟的AI平台方面,在2012年出现了AlexNet,一直到最近,2018年出现了AlphaGo Zero,在短短的6年内,算力提高了20多万倍,这完全不同于传统计算硬件(如CPU、MCU等)的演进轨迹,速度之惊人令我们难以预测。

来自OpenAI的分析显示,近几年,AI训练所需的算力每3个多月就会翻倍,这比著名的摩尔定律(每18~24个月,芯片的性能翻倍)演进速度快多了。而提升算力的关键是芯片设计,特别是底层的架构设计,目前来看,传统的芯片架构已经难以满足AI应用的需要。包括IC厂商和互联网企业在内,越来越多的厂商开始投入研发或已经推出AI专用芯片。根据Gartner统计,AI芯片在2017年的市场规模约为46亿美元,而到2020年,预计将会达到148亿美元,年均复合增长率为47%。而据麦肯锡预测,未来10年,人工智能和深度学习将成为提升硅片需求的主要因素,2025年,在AI的推动下,全球硅片营收将超过600亿美元,接近全球半导体销售额的20%。

三种AI芯片的对比

从AI芯片的应用场景类别来看,主要分为云端和终端。目前,AI在云端应用的更多,相对成熟,而其在云端应用又可分为训练和推理两种,其中训练的市场规模占比较高。另外,训练需要的数据量和计算量较大,所用的处理器主要是GPU。至于推理,也以GPU为主,此外,还有FPGA,以及专用的AI芯片(ASIC),其中,ASIC还不是很成熟,量产的产品也不多,因此用量有限,还处于发展初期,如果能实现大规模量产,其性能和成本是最优的,主要推进厂商是Google,其标志性产品就是TPU。

综上,目前,行业为实现AI计算,主要采用的芯片有三种,分别是通用型的GPU,可定制的FPGA,以及专用的ASIC。

在计算层面,芯片的晶体管数量和芯片面积决定了算力,面积越大算力越强,但功耗也将随之增加。过去几年,在AI处理器的选择上,可用于通用基础计算且运算速率更快的GPU迅速成为实现AI计算的主流芯片,英伟达也因此占据着数据中心AI芯片的主要市场份额。

FPGA是典型的半定制化芯片,其功能可以通过编程来修改,并行计算能力很强,但是延迟和功耗远低于GPU,而与ASIC相比,FPGA的一次性成本要低很多,但其量产成本很高。因此,在实际应用需求还未成规模,且算法需要不断迭代、改进的情况下,利用FPGA的可重构特性来实现半定制的AI芯片是最佳选择。

AI专用芯片ASIC是面向特定应用需求而定制的芯片,一旦流片,其功能无法更改,因此,必须要有量的保证,且应用需求稳定,不会发生大的变化。专用ASIC芯片的性能高于FPGA,如果出货量可观,其单颗成本可做到远低于FPGA和GPU。

目前来看,由于GPU具备强大的并行计算能力和完善的生态系统,现在云端AI应用方面处于主导地位。FPGA方面,由于是半定制化的,可以通过编程来实现不同的功能电路,因此,其在通用性和性能之间取得了比较好的平衡,但是较高的开发门槛和量产成本,对其应用是个限制。

图:在实现AI功能方面,GPU、FPGA和ASIC的优缺点对比(来源:长城证券研究所)

专用的AI芯片应该是未来的发展趋势,无论是在云端还是在边缘侧,随着应用的逐渐落地,应用场景和各种专用功能会愈加清晰,市场需求也会越来越多。另外,与GPU和FPGA相比,ASIC的专利壁垒要小得多,而且其设计难度也是最小的。随着AI应用场景的落地,专用的ASIC芯片量产成本低、性能高、功耗低的优势会逐渐凸显出来。

AI芯片案例

目前,在AI应用方面,全球数据中心用GPU市场基本被英伟达垄断,这里用到的都是高性能GPU,其门槛很高,又是用于AI,因此,还没有什么竞争对手。

除了GPU芯片本身之外,英伟达还有一个优势,那就是其在AI计算方面,有CUDA软件生态系统的配合。CUDA编程工具包让开发者可以对每一个像素轻松编程,在这之前,对程序员来说,GPU编程是一件很痛苦的事,CUDA成功将Java、C++等高级语言开放给了GPU编程,从而让GPU编程变得简单了许多,研究者也可以更低的成本快速开发他们的深度学习模型。以图形处理器加速卡Tesla V100 PCIe/SXM2为例,其芯片采用台积电的12nm制程工艺,通过与CUDA软件和NVLink快速通道的配合,能达到近125兆次深度学习的浮点运算训练速度,而以16bit的半精度浮点性能来看,可达到31Tera FLOPS。

FPGA方面,Altera被英特尔收购之后,赛灵思是目前的霸主,作为传统的CPU厂商,英特尔近几年正在AI领域大力布局,收购相关公司自然是一个重要手段,通过收购全面布局 FPGA和ASIC,除了Altera的FPGA之外,还通过收购Mobileye和视觉处理器公司Movidius,布局无人驾驶和计算机视觉,这也是将来AI大有可为的两个应用领域。

在收购Altera之后,英特尔的技术发展路线就出现了调整,例如,其原来的产品策略是做分立的CPU+FPGA加速器,而两家公司整合后,由简单的分立器件叠加改为了封装集成,即将CPU和FPGA芯片封装在一起,这还不算完,英特尔下一步还要将CPU和FPGA集成在同一芯片内,做成SoC。

赛灵思方面,该公司于2018年底推出了以低成本、低延迟、高能效深度神经网络(DNN)算法为基础的Alveo加速卡,基于该公司的UltraScale架构,采用了台积电的16nm制程工艺,目标市场就是数据中心和云端的AI推理市场。

AI专用ASIC方面,国内外已经有多家企业投入了研发,例如国内的寒武纪(正在开发NPU)、地平线(BPU系列),还有华为海思和比特大陆,也在专用AI芯片方面投入了不少资源。国外最为知名的就是谷歌的TPU了,这也是到目前为止,最为成熟的高性能AI专用芯片了。做ASIC需要对应用场景有深刻和精确到位的了解,而这方面却是传统芯片设计企业和IDM的短板,因此,目前做AI专用ASIC的,大多是系统产商,互联网巨头,或者以算法起家的公司。

在中国,比特大陆的算丰 (SOPHON) BM1680和BM1682云端安防及大数据AI推理系列产品已经上市,此外,还有其它几家没有量产的芯片,如华为海思的昇腾Ascend 910系列,据悉会采用台积电的7nm制程工艺,预计会在今年年底量产。此外,百度的昆仑芯片(采用三星的14nm制程),以及阿里平头哥的Ali-NPU等,也处在研发阶段,距离量产还有一段时日。

以上谈的主要是用于云端的AI芯片,包括GPU、FPGA和ASIC,这也是目前AI的主要应用领域,而在终端和边缘侧,更多的要依靠不断成熟的ASIC,因为ASIC与应用场景有着非常紧密的关系,而这里说的应用场景,主要是在终端和边缘侧。

结语

AI发展正处于强劲的上升阶段,此时,各种AI芯片实现方案都有其发挥的空间,可以说是处于最佳时期,这也给众多厂商占领各自擅长之应用市场提供了更多的机会。而随着应用场景的完全落地,以及AI专用芯片的成熟和大规模量产,这一发展窗口期很可能就将关闭,因此,眼下各家厂商,无论是做GPU、FPGA,还是做ASIC的,都在抓紧时间研发和拓展市场,竞争愈发激烈。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252634.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

dom和bom

先看几个两个例题&#xff1a; 星座对应日期&#xff1a; <select id"s1">   <option>a</option>   <option>b</option>   <option>c</option>   <option>d</option>   </select>   <se…

分享自己针对Automation做的两个成熟的框架(QTP 和Selenium)

自己在google code中开源了自己一直以来做的两个自动化的框架&#xff0c;一个是针对QTP的一个是针对Selenium的&#xff0c;显而易见&#xff0c;一个是商业的UI automation工具&#xff0c;一个是开源的自动化工具。 只是代码&#xff0c;可能你直接看的话&#xff0c;有点不…

全景视频拼接关键技术

一、原理介绍 图像拼接(Image Stitching)是一种利用实景图像组成全景空间的技术&#xff0c;它将多幅图像拼接成一幅大尺度图像或360度全景图&#xff0c;图像拼接技术涉及到计算机视觉、计算机图形学、数字图像处理以及一些数学工具等技术。图像拼接其基本步骤主要包括以下几…

Part8 多态性 8.1运算符重载

1运算符重载的规则C 几乎可以重载全部的运算符&#xff0c;而且只能够重载C中已经有的。不能重载的运算符&#xff1a;“.”、“.*”、“::”、“?:”重载之后运算符的优先级和结合性都不会改变。 重载的两种形式&#xff1a;   1 重载为类的非静态成员函数&#xff1b;   …

H面试程序(29):求最大递增数

要求&#xff1a;求最大递增数 如&#xff1a;1231123451 输出12345 #include<stdio.h> #include<assert.h> void find(char *s) {int maxleng 0;int length 1;int pos 0;int i 0;while(s[i] !\0){ if((s[i])<0||(s[i]>9)){assert(0);}if((s[i1]-0) &g…

reorder-list

/*** Definition for singly-linked list.* class ListNode {* int val;* ListNode next;* ListNode(int x) {* val x;* next null;* }* }*///思路:通过不同的首结点获取到不同的尾结点,然后拼接public class Solution {public ListNode get…

四大主流芯片架构(X86、ARM、RISC-V和MIPS)

目前市场上主流的芯片架构有 X86、ARM、RISC-V和MIPS四种&#xff1a; 序号架构特点代表性的厂商运营机构发明时间1X86性能高&#xff0c;速度快&#xff0c;兼容性好英特尔&#xff0c;AMD英特尔1978年2ARM成本低&#xff0c;低功耗苹果&#xff0c;谷歌&#xff0c;IBM&…

微博预计要火一阵的SleepSort之Shell及C实现

今日在微博看到如此奇妙的代码。竟然还有新的sort算法&#xff0c;对于我这样的渣渣必须研究一下&#xff0c;代码例如以下&#xff1a; #!/bin.bash function f() {sleep "$1" //sleep 这么多secho "$1" }while [ -n "$1" ] //第一个參数不为空…

相关类以及常用方法

1、system&#xff1a;(系统相关类&#xff09; 常用方法&#xff1a; a) : system.arraycopy(制定数组&#xff0c;开始复制的位置&#xff0c;目标数组&#xff0c;开始粘贴的位置&#xff0c;需要复制的长度) 。 将指定源数组中的数组从指定位置复制到目标数组的指定位…

2021-11-15

本文将重点围绕国产CPU的发展历程与当前产业链各领军企业的布局情况作详尽解读&#xff08;并包含特大号独家整理的最新进展&#xff09;&#xff0c;具体如下&#xff1a; 1、国产CPU发展历程回溯 2、飞腾&#xff1a;PK生态的主导者 3、鲲鹏&#xff1a;快速崛起的领导者 …

关于在ubuntu下配置AMD显卡驱动的总结

同样先卸载先前版本 代码:sudo sh /usr/share/ati/fglrx-uninstall.sh代码:sudo apt-get remove --purge fglrx fglrx_* fglrx-amdcccle* fglrx-dev*重启 代码:sudo reboot下载驱动&#xff0c;右边直接有ubuntu32位和64位驱动链接&#xff1a;http://support.amd.com/en-us/do…

Python3中的hasattr()

Python3已经将此内置函数移除了。查阅Python v3.0 documentation发现可以使用 hasattr(object, name)内置函数来完成callable的功能&#xff0c;方式如下&#xff1a; 3.0之前&#xff1a;callable(func) 3.0之后&#xff1a;hasattr(func, __call__) 这两者结果是相同的。 转载…

计算机结构简图

北桥,南桥是主板上芯片组中最重要的两块了.它们都是总线控制器.他们是总线控制芯片.相对的来讲,北桥要比南桥更加重要.北桥连接系统总线,担负着cpu访问内存的重任.同时连接这AGP插口,控制PCI总线,割断了系统总线和局部总线,在这一段上速度是最快的.南桥不和CPU连接通常用来作I/…

原始Ajax

var $ { request:function(obj){ //1. 获得xmlhttprequest对象兼容性处理 var xhr; //undefined未定义 try{ //主流浏览器里面的ajax对象 xhr new XMLHttpRequest(); }catch(e){ //IE低版本的浏览器 xhr new ActiveXObject("Microsoft.XMLHTTP"); } //2. 建立和…

Servlet 与 Ajax 交互一直报status=parsererror

Servlet 与 Ajax 交互一直报statusparsererror 原因&#xff1a;servlet 返回的数据不是 Json 格式 1、JS代码为&#xff1a; 1 var jsonStr {clusterNum:2,iterationNum:3,runTimes:4};2 $.ajax({3 type: "post",4 //http://172.2…

25LINQ拾遗及实例

投影 □ 遍历数组索引&#xff0c;Select获取 int[] indexes {0, 2}; string[] strs {"a", "b", "c", "d"}; var result from i in indexes select strs[i]; foreach (string str in result) { Console.Write(str " &quo…

国产CPU的6大品牌,3大路线对比

这些年来&#xff0c;中国最想发展的科技产品是什么&#xff1f;那必须是芯片&#xff0c;特别是2018年中兴事件、2019年华为事件之后&#xff0c;国内的芯片产业就彻底地火爆了起来。 按照数据显示&#xff0c;截止至2020年10月份&#xff0c;国内已经有27万家芯片企业&#…

BluePrint和ORM

一、蓝图创建 1 #引入库文件2 from flask import Blueprint,request,jsonify3 4 user Blueprint(5 "site",6 __name__,7 template_floder"templates_folder_path",8 static_floder"static" 9 ) #创建蓝图 10 1…

【js实例】Array类型的9个数组方法,Date类型的41个日期方法,Function类型

前文提要:【js实例】js中的5种基本数据类型和9种操作符 Array类型的9个数组方法 Array中有9个数组方法: 1.检测数组 2.转换方法 3.栈方法 4.队列方法 5.冲排序方法6.操作方法 7.位置方法 8.迭代方法 9.归并方法 在实例中介绍,实例如下 /* Array类型 js数组中的每一项可以用来保…

调用咏南中间件插件演示

function GetSvrData(const accountNo, defineId: WideString; inParams: OleVariant): OleVariant; virtual; abstract; // accountNo&#xff0c;帐套编号 // defineId3位插件编号2位自定义编号&#xff0c;defineId必须是唯一的 // inParams&#xff0c;TDataSet.Params的OL…