北京pk10开奖号码查询,pk10直播9号彩票网,北京pk10开奖直播号彩票网,北京赛车pk10直播9号彩票网,www.agbgames.com pk10开奖

Baidu

北京pk10开奖号码查询9号彩票 万利彩票 熊猫彩票 98彩票 www.agbgames.com博乐彩票 云鼎彩票 快赢彩票 快赢彩票 永利彩票 趣彩彩票 金巴黎彩票 广发彩票 葡京彩票 顺发彩票 鸿利彩票 聚富彩票 我赢彩票 大发彩票 财神汇彩票 苹果彩票 欢乐彩票 大唐彩票 盛兴彩票 智博彩票 环球彩票 金彩彩票 彩盈彩票 丰亿彩票 金沙彩票 www.agbgames.com金福彩票 大运彩票 万彩会彩票 大乐购彩票 宏发彩票 八八彩票 金凤凰彩票 易发彩票 豪门会彩票 迪士尼彩票 众彩彩票 丰亿彩票 大世纪彩票 创元彩票 鑫彩网彩票 大无限彩票 利来彩票 华夏彩票 金砖彩票 大金彩票 千禧彩票 全迅彩票 菠萝彩票 大赢家彩票 华人彩票 通博彩票 万家彩票 盛世彩票 福布斯彩票 鼎盛彩票www.agbgames.com 澳彩网彩票 东方彩票 新世佳彩票 皇冠彩票 港龙彩票 迅雷彩票 幸运飞艇开奖 幸运飞艇彩票 幸运飞艇官网 幸运飞艇技巧 幸运飞艇开户 幸运飞艇代理 幸运飞艇开奖记录幸运飞艇开奖直播 幸运飞艇开奖记录查询 www.agbgames.com幸运飞艇投注平台 幸运飞艇计划软件 凤凰娱乐 500万彩票 E时彩 88彩票 J8彩票 5颗星彩票 W彩票网 M5彩票 天天彩票 彩客网彩票 好彩头彩票 彩票在线 www.agbgames.com乐彩网彩票 GT彩票 投彩彩票 中华彩票 568彩票 快开彩票 18彩票 传奇彩票 网易彩票 幸运彩票 e乐彩 彩票控 状元彩票 拉菲彩票 999彩票 杏彩彩票 东方彩票 皇族彩票 qq彩票 金誉彩票 爱投彩票 人人彩票 爱购彩 众购彩票 盈彩娱乐 彩票王 非凡彩票 五洲尚合彩票 www.agbgames.com快开彩票 彩盈线上娱乐 富利娱乐 传奇娱乐 全民彩票北京pk10开奖号码查询

认识多种处理芯片的特性和实战

来源:腾云阁 作者:高剑林2017年04月01日 10:58
[导读] 以x86体系为代表的CPU已经占有了桌面和服务器处理器的绝大部分份额,而且这个趋势还在不断增强。CPU具有兼容性强、易编程、应用资源丰富、价格低廉的优势,但是在某些领域,CPU存在天然的缺陷,以FPGA、GPU为代表的硬件可以克服CPU的缺陷,因此也拥有自己的市场。
关键词:GPUCPUFPGA

以x86体系为代表的CPU已经占有了桌面和服务器处理器的绝大部分份额,而且这个趋势还在不断增强。CPU具有兼容性强、易编程、应用资源丰富、价格低廉的优势,但是在某些领域,CPU存在天然的缺陷,以FPGA、GPU为代表的硬件可以克服CPU的缺陷,因此也拥有自己的市场。

1.1 图解各类型芯片

从设计软件进行计算任务的软件工程人员的角度,可以将芯片分为CPU、GPU、FPGA和ASIC等类型。

对处理器芯片的特性和应用,理论上是软件人员具有最大发言权。但每一类芯片的使用和理解都不是一件简单的事情,以CPU为例:即使从事CPU环境的编程设计多年,也很难谈得上深入理解了CPU的设计思想。能深入各种芯片编程的软件人员更是凤毛麟角,更别谈进行分析和比较。另外一个问题是软件和硬件设计已分离多年,软件设计人员,很难深入理解芯片的设计思路,即使操作系统的设计人员也一样。而芯片的设计厂商由于利益相关,往往只宣扬各自的优点,回避缺陷,在测试对比中选择有利的测试条件,产生对己有利的测试数据。测试数据的真真假假,更加混淆了技术人员的视听。

在对各种芯片比较和研究的过程中,我们认为不应该沉湎于具体芯片的架构和设计思路,而应该关注芯片的实际应用。有两个原因支持我们的思路。一个原因是芯片的架构非常繁复,熟悉各种芯片几乎是不可能的任务。另一个更重要的原因是技术的价值在于应用。不管何种芯片设计或者架构,最终决定芯片价值的是实际的应用。从应用的角度出发,应按照易用性和经济性两个维度考察芯片。

易用性指用芯片进行编程的难度以及相关编程资源的获取难度。这个指标技术人员虽然不怎么关心,但其实对芯片发展有重大,甚至是绝对的重要性。例如在FPGA的编程实践中,相关的编程资源非常难以获得,即使获得也往往是代价巨大。比如常见的JPEG图片,相关的FPGA编解码库往往需要付出数万美元的成本,这和CPU领域大量的开源库完全不能相提并论。价格的昂贵还带来了测试和验证的繁杂。提供库资源的厂商往往需要旷日持久的沟通和谈判以及签署协议才能进行验证工作,这在很多研发项目运作中几乎是不可承受的。

经济性指提供相同性能情况下的芯片成本。芯片往往型号众多,比如FPGA芯片,既有上千美元甚至几千美元售价的高端型号,也有几美元计价的低端型号。脱离芯片成本谈论性能没有意义。需要指出的是,成本是综合的运营成本,而非单独的芯片购买成本。比如某款芯片如果性能等于CPU十倍,那么它不仅仅是顶替了十颗CPU,而是顶替了十台服务器的采购成本以及十台服务器的运营成本,考虑到实际的运营成本往往大于采购成本,后者可能更具有重要性。

1.2 芯片的分类

对常用的处理器芯片进行分类,有一个明显的特点:CPU&GPU需要软件支持,而FPGA&ASIC则是软硬件一体的架构,软件就是硬件。这个特点是处理器芯片中最重要的一个特征。

认识多种处理芯片的特性和实战

上图可以从两个角度来说明:从ASIC->CPU的方向,沿着这个方向芯片的易用性越来越强,CPU&GPU的编程需要编译系统的支持,编译系统的作用是把高级软件语言翻译成机器可以识别的指令(也叫机器语言)。高级语言带来了极大的便利性和易用性,因此用CPU&GPU实现同等功能的软件开发周期要远低于FPGA&ASIC芯片。沿着CPU->ASIC的方向,芯片中晶体管的效率越来越高。因为FPGA&ASIC等芯片实现的算法直接用晶体管门电路实现,比起指令系统,算法直接建筑在物理结构之上,没有中间层次,因此晶体管的效率最高。

本质上软件的操作对象是指令,而CPU&GPU则扮演高速执行指令的角色。指令的存在将程序执行变成了软件和硬件两部分,指令的存在也决定了各种处理器芯片的一些完全不同的特点以及各自的优劣势。

FPGA&ASIC等芯片的功能是固定的,它们实现的算法直接用门电路实现,因此FPGA&ASIC编程就是用门电路实现算法的过程,软件完成意味着门电路的组织形式已经确定了,从这个意义上,FPGA&ASIC的软件就是硬件,软件就决定了硬件的组织形式。软硬件一体化的特点决定了FPGA&ASIC设计中极端重要的资源利用率特征。利用率指用门电路实现算法的过程中,算法对处理器芯片所拥有的门电路资源的占用情况。如果算法比较庞大,可能出现门电路资源不够用或者虽然电路资源够用,但实际布线困难无法进行的情况。

存在指令系统的处理器芯片CPU&GPU不存在利用率的情况。它们执行指令的过程是不断从存储器读入指令,然后由执行器执行。由于存储器相对于每条指令所占用的空间几乎是无限的,即使算法再庞大也不存在存储器空间不够,无法把算法读入的情况。而且计算机系统还可以外挂硬盘等扩展存储,通过把暂时不执行的算法切换到硬盘保存更增加了指令存储的空间。

处理器芯片各自长期发展的过程中,形成了一些使用和市场上鲜明的特点。CPU&GPU领域存在大量的开源软件和应用软件,任何新的技术首先会用CPU实现算法,因此CPU编程的资源丰富而且容易获得,开发成本低而开发周期,而FPGA&ASIC编程需要的资源通常很难获得,这些资源往往以IP(intellectual property)的方式授予和收费,授予的周期往往很长而且需要签署法律协议,而费用也很昂贵。导致FPGA&ASIC的开发成本高而且周期很长。

1.3 CPU架构和编程设计

无论是x86体系为代表的繁杂指令系统(CISC)CPU还是精简指令系统(RISC)CPU,其核心都是执行一套指令系统。x86体系的CPU不断更新换代,不断提升主频,采用更先进的工艺和新架构,目的就是为了更高性能地执行x86指令。因为X86系列的CPU应用广泛,已经成为事实上的标准,本文所指的CPU特指X86系列的CPU。

从CPU内部结构观察,大致可分为控制器和执行器,再加上存储管理部件MMU以及总线接口部件。控制器不断从存储器取出指令,进行指令译码,执行器从译码完成的指令队列中取出译码指令执行。各个功能部件既能独立工作,又能与其他部件配合工作,下图给出了CPU各个部件之间的指令操作流水图。

认识多种处理芯片的特性和实战

指令系统是计算机系统发展中的巨大进步。借助指令系统,高级语言的出现成为可能,大大方便了计算机的应用。但是事情的另一面是使用指令系统后,所有的计算任务都要翻译为指令,执行一个简单的计算任务可能就需要多条指令完成。从晶体管的角度来看,简单的计算任务可能就需要众多的晶体管共同参与。为提升性能,采用指令系统的CPU,其性能设计出发点是增强指令执行的效率。

以前CPU的架构设计一直围绕如何增强指令执行的效率,为此采取的措施是不断提升主频、加多流水线(奔腾首次应用了双路流水,而现在的CPU往往拥有20以上的流水数目

)以及增加CPU的cache提升取指令的效率(早期奔腾芯片拥有几十K的缓存,而至强E5的三级缓存超过10MB,甚至可达到30MB)。近几年,CPU的架构更加重视多核的应用,期望通过多核实现更高的性能。

CPU设计出发点是增强指令的运行性能,因此CPU的核心功能强大,占用的晶体管资源庞大,具有很高的运行效率,因此CPU的多核不可能做到非常多。目前顶级的X86 CPU具有十多个核心,而GPU已经达到几千个核心。

对编程设计来说,如果线程完全独立的执行计算任务,线程间数据不存在共享和竞争关系,那么并行效率可以达到线性效果。不过现实中的编程,有很大一类是单任务的并行化,即将一个繁杂的任务通过多核并行执行来加速,那么就面临两个困难:一个是将任务并行化之后面临多线程之间的切换代价。因为CPU核心功能强大,因此操作系统切换线程时需要CPU内部大量的状态寄存器置位,所以线程之间切换是代价很大的操作(实测中,线程切换大概需要几十微秒),如果计算任务的执行时间小于这个数字,那么多线程执行对性能提升可能并无收益,甚至可能效率反而下降。

另一个问题是任务执行中数据的依赖关系。如果计算任务中某部分必须利用前面部分的计算结果,即存在数据依赖性,那么就必须等前面部分计算完成才能执行后面的计算,而不可能并行计算。数据依赖是计算中经常遇到的场景,编程设计需要调整代码结构尽量减少相关性提升并行性。

1.4 GPU的架构和编程设计

1234下一页全文

本文导航

推荐阅读

发表评论

elecfans网友

分享到:

用户评论(0

pk10开奖记录 pk10开奖直播www.agbgames.com pk10直播 pk10官网 pk10开奖 pk10论坛 pk10技巧 pk10助赢软件 pk10杀号 pk10杀号软件 pk10冠亚军玩法 pk10冠军玩法 pk10玩法攻略www.agbgames.com pk10玩法规则 pk10中奖规则 pk10定位胆玩法 pk10彩赔率多少 pk10走势 pk10开户 pk10开奖记录百度9号彩票网 pk10开奖号码查询 pk10开奖直播 pk10计划群www.agbgames.com pk10玩法 pk10网站 pk10玩法介绍 pk10后二 pk10改单 pk10开奖直播百度9号彩票网 pk10qq群 pk10稳赚 pk10分析软件 pk10群 pk10平台网址 pk10赚钱 pk10综合走势图www.agbgames.com pk10遗漏 pk10人工计划 pk10投注技巧 pk10直播百度9号彩票网 pk10开奖时间 pk10评测 pk10平台评测网 pk10网站制作 pk10现场开奖 pk10官方开奖www.agbgames.com pk10地址 北京赛车pk10开奖记录 北京赛车pk10开奖直播 北京赛车pk10直播 北京赛车pk10官网 pk10官网百度9号彩票网 北京赛车pk10开奖 北京赛车pk10论坛 北京赛车pk10技巧 北京pk10玩法规则 北京赛车pk10助赢软件 北京赛车pk10杀号 北京赛车pk10杀号软件 北京赛车pk10冠亚军玩法 北京赛车pk10冠军玩法www.agbgames.com 北京赛车pk10玩法攻略 北京赛车pk10中奖规则 pk10开奖百度9号彩票网 pk10论坛百度9号彩票网 北京赛车pk10定位胆玩法 北京赛车pk10彩赔率多少 北京赛车pk10走势 北京赛车pk10开户 北京赛车pk10开奖号码查询 北京赛车pk10开奖直播 北京赛车pk10计划群 北京赛车pk10玩法 北京赛车pk10网站www.agbgames.com pk10技巧百度9号彩票网 pk10助赢软件百度9号彩票网 pk10杀号百度9号彩票网 pk10杀号软件百度9号彩票网 北京赛车pk10玩法介绍 北京赛车pk10后二 北京赛车pk10改单 北京赛车pk10qq群 北京赛车pk10稳赚 北京赛车pk10分析软件 北京赛车pk10群 北京赛车pk10平台网址 pk10玩法规则百度9号彩票网www.agbgames.com pk10中奖规则百度9号彩票网 pk10定位胆玩法百度9号彩票网 北京赛车pk10赚钱 北京赛车pk10综合走势图 北京赛车pk10遗漏 北京赛车pk10人工计划 北京赛车pk10投注技巧 北京赛车pk10开奖时间 北京赛车pk10评测 北京赛车pk10平台评测网 北京赛车pk10网站制作 pk10走势百度9号彩票网 北京赛车pk10现场开奖www.agbgames.com 北京赛车pk10官方开奖 北京赛车pk10地址 北京pk10开奖记录 北京pk10开奖直播 北京pk10直播 北京pk10官网 北京pk10开奖 北京pk10论坛 北京pk10技巧 北京pk10玩法规则 北京pk10助赢软件 北京pk10杀号 北京pk10杀号软件 pk10开户百度9号彩票网www.agbgames.com 北京pk10冠亚军玩法 北京pk10冠军玩法 北京pk10玩法攻略 北京pk10中奖规则 北京pk10定位胆玩法 pk10冠军玩法百度9号彩票网 北京pk10彩赔率多少 北京pk10走势 北京pk10开户 北京pk10开奖号码查询 北京pk10开奖直播 pk10彩赔率多少百度9号彩票网 北京pk10计划群 北京pk10玩法 北京pk10网站www.agbgames.com 北京pk10玩法介绍 北京pk10后二 北京pk10改单 北京pk10qq群 北京pk10稳赚 北京pk10分析软件 北京pk10群 北京pk10平台网址 北京pk10赚钱 pk10冠亚军玩法百度9号彩票网 pk10玩法攻略百度9号彩票网 北京pk10综合走势图 北京pk10遗漏 北京pk10人工计划 北京pk10投注技巧 北京pk10开奖时间 北京pk10评测www.agbgames.com 北京pk10平台评测网 北京pk10网站制作 北京pk10现场开奖 北京pk10官方开奖 北京pk10地址 北京赛车pk拾开奖记录 北京赛车pk拾开奖直播 北京赛车pk拾直播 北京赛车pk拾官网 北京赛车pk拾开奖 北京赛车pk拾论坛 北京赛车pk拾技巧 北京pk10玩法规则 北京赛车pk拾助赢软件 北京赛车pk拾杀号www.agbgames.com 北京赛车pk拾杀号软件 北京赛车pk拾冠亚军玩法 北京赛车pk拾冠军玩法 北京赛车pk拾玩法攻略 北京赛车pk拾中奖规则 北京赛车pk拾定位胆玩法 北京赛车pk拾彩赔率多少 北京赛车pk拾走势 北京赛车pk拾开户 北京赛车pk拾开奖号码查询 北京赛车pk拾开奖直播 北京赛车pk拾计划群 北京赛车pk拾玩法 北京赛车pk拾网站 北京赛车pk拾玩法介绍www.agbgames.com 北京赛车pk拾后二 北京赛车pk拾改单 北京赛车pk拾qq群 北京赛车pk拾稳赚 北京赛车pk拾分析软件 北京赛车pk拾群 北京赛车pk拾平台网址 北京赛车pk拾赚钱 北京赛车pk拾综合走势图 北京赛车pk拾遗漏 北京赛车pk拾人工计划 北京赛车pk拾投注技巧 北京赛车pk拾开奖时间 北京赛车pk拾评测 北京赛车pk拾平台评测网www.agbgames.com 北京赛车pk拾网站制作 北京赛车pk拾现场开奖 北京赛车pk拾官方开奖 北京赛车pk拾地址