对这两款Intel GPU大家觉得ddr4和ddr3的性能差距距大么

GPU虚拟化@Intel专家|KVM社区实名群分享
我的图书馆
GPU虚拟化@Intel专家|KVM社区实名群分享
简介GPU虚拟化的状况虚拟化技术发展到现在,已经比较成熟了。CPU, 内存,存储,IO设备等都已经可以虚拟化,可以实现多个虚拟机实例共享同一硬件资源。而GPU(图形处理器单元)作为计算机的一个很重要的组成部分,其浮点运算和并行运算速度可以比CPU都强。但是在虚拟的技术中, QEMU对GPU虚拟的支持,很长时间都是纯粹的软件模拟,并没有充分利用硬件GPU的资源,性能大大折扣。GPU密集工作性负载,对高性能GPU虚拟化的需求越来越强烈。如:3D/2D 图形加速& & & && & 游戏& & & & & &VDIMedia Transcoding& & & && & 视频会议, CDN高性能计算(GPGPU)OpenCL/CUDA& & & &Geometric computing, Scientific computing, Machinelearning& & & &Bioinformatics, Finance, Medical industry,Meteorology&&&&&& Personalized medicine, drugdiscovery,Big Dataanalytics顺应潮流,这几年, NVIDIA、AMD和intel相继推出自己的基于硬件的虚拟化解决方案。AMD: 其GPU虚拟化解决方案是完全基于业界标准的SR-IOV(单根输入输出虚拟化)。这是由PCI SIG组织开发的一种规范,为设备的硬件虚拟化应用提供了标准化方法。其能够允许多达15个虚拟化桌面共享同一个图形处理器,其最终用户就能够同等地访问GPU,无论他们是何种工作负载,而且不会有任何性能上的损失。SR-IOV标准允许一个GPU给多个虚拟机共享使用,因此为每一个用户都提供了虚拟化的性能进行设计、创造并且执行他们的工作负载,而没有一个用户会占据整个GPU。由于硬件的复杂性,目前支持的GPU厂商只有AMD。NVIDIA:没有像AMD那样使用的基于硬件的GPU虚拟化技术。其虚拟化方案是称为Grid桌面虚拟化技术,该技术是基于它最新的Tesla GPUs的。NVIDIA的虚拟化方案比较有意思的一个特色是可以虚拟出几种不同model的虚拟显卡。&FloridaAtlantic University基于NVIDIA GPU 虚拟化方案的VDI已经有几年历史了,他们称,可以使用8-12个虚拟化桌面同时共享一个GPU 板卡。有关NVDIA的GPU虚拟化的更多介绍请参考其官方http://www.nvidia.cn/object/nvidia-grid-cn.htmlIntelGPU虚拟化解决方案做为intel的员工,今天的重点还是要介绍intel自己的GPU解决方案。Intel有三种GPU虚拟化的方法。API转发(GVT-S)将openGL或者DirectX的API转发给host上的Graphics Driver上。优点:性能佳、可以共享。缺点:功能滞后。直通设备(GVT-d)利用VT-d将显卡直通给虚拟机。优点:性能佳、功能完备。缺点:不能共享。完全GPU虚拟化(GVT-g)优点:性能佳、功能完备、可以共享Intel的完全虚拟化解决方案包括软件和硬件方案。可以将GPU直通给多个虚拟机,可以在性能,功能,共享方面达到很好的平衡。&由于在共享和性能方面的平衡,intel的GVT-g 是很值得推荐的。Intel KVMGT技术KVMGT 是Intel? 完全GPU虚拟化(GraphicsVirtualization Technology GVT-g) 的KVM实现,是VGT-g的纯软件方案。其mediatedpass-through相当于软件实现的GPU分时复用,不同于SR-IOV。KVMGT从intel的broadwell处理器开始支持。其性能:3D性能可以达到host的80%以上。2D性能可以达到host的70%以上。Media解码能力可以到host的90%以上。Media转码能力可以到host的80%以上。guest为windows的3D/2D性能与HOST对比。KVMGT支持的Features可以运行native的driver。DirectX*11.1OpenGL*4.2OpenCL*1.2MediaSDK16.2DirectX*12支持的不同操作系统的guest数量:MultipleVMs up to 7SupportUbuntu* GuestSupportWindows* 7 x32/x64SupportWindows* 8 x32/x64GuestWindows* 10 x64&目前支持的远程显示协议:虚拟化技术in openstack目前,Openstack 对于AMD的GPU虚拟化是应该支持的。因为AMD每个SRIOV的GPU可以作为PCI设备pass-through到guest。Citrix 提出了2个版本的方案支持Nvidia和 XENGT(VGT-G的XEN实现)。第一个版本是基于on-demand的方案,社区感觉有些复杂。之后他们提出了一个新的方案,pre-define的方案。pre-define的方案,预先定义虚拟的GPU(VGPU),定义好之后,数量不能修改了,并且通过openstack的代码,做hack,将每个pre-define的VGPU作为SRIOV设备,并且每个设备分配一个虚拟的PCI &BDF号,该BDF号只有Openstack可见。社区比较倾向这个方案,但是还没有得到approve, upstream还需要时日。对于KVMGT,可以在Citrix实现基础上,比较容易的实现。对于企业来说,如果业务需求,需要GPU的虚拟化,自己完全可以很快的基于Openstack实现自己私有的GPU虚拟化方案,没有必要依赖社区。对于不想做开发的企业,我们会做一个KVMGT的demo,可以参考我们。此外我们在巴塞罗那的峰会,提交的一个KVMGT的topic,《enabling GPU virtualization in Openstack》,感兴趣的同行可以支持一下。谢谢。&QA&&&1、2vm的时候,每个vm能跑到native的多少性能?比如3dmark11答:2个VM我们一般是统计性能之和。每个VM 3dmark11的数据大概是native的vm的分数一半多一点&2、enabling&GPU&virtualization&in Openstack这东西在那里能看到?答:现在可以看到摘要,也可以投票,https://www.openstack.org/summit/barcelona-2016/vote-for-speakers/&3、intel的显卡是集成在主板芯片上的吧?答:Intel目前的显卡是和CPU集成的,不是在主板上。&4、多谢专家的介绍,请问windows 客户操作系统需要安装什么样的驱动,在哪里可以获取; 对spice的支持怎么样,虚拟的GPU和spice是怎么整合的,谢谢答:windows的驱动直接从Intel官网下载,跟裸机上跑的驱动是一样的。KVMGT发布时候会给定一个驱动版本号,那个是QA经过测试的版本&5、你好,从Intel的角度看,现在kvmgt是处于什么状态,demo,beta,还是可商用?另外对于spice协议支持的代码什么地方可以获取?谢谢。答:SPICE的支持目前处在POC阶段。可以用但是性能并不好,原因是对VM的每次屏幕刷新需要一次拷贝。这一块有优化的解决办法,我们正在做.&6、主板集成的显卡,能用KVMGT么?最多能带多少VM?答:KVMGT只支持Intel的GPU,从Haswell开始,更老的用不了,以后upstream的代码从Broadwell开始支持&7、GVT-d现在已经upstream了吗?答:redhat最近有一个博客详细描述GVT-d的支持,在VFIO里,可以看下。http://vfio.blogspot.com/2016/07/intel-graphics-assignment.html&8、直播云这个词现在经常听到。是否用到这个技术,答:“直播云”或“视频云”,也许会是潜在的应用,目前应该是以bare metal机器为主我猜。&9、gpu对网络的优化有没有改善 ?答:这个可能跟GPU的虚拟化并没有特定的关系,gpu不负责网络优化。如果想在固定带宽内做数据压缩,intel有QAT技术,支持硬件的压缩。&10、GPU可以实现在kvm下面动态调整显存吗?或者说指定对应虚拟机的显存答:我们目前是只支持静态显存设置,是在启动VM之前。动态显存是个很好的问题,目前没有支持,看需求。&11、对CPU有限制吗?比如skylake的Pentium的GPU可以用GVT-d吗?答:唯一的要求是有GPU。GVT-d就是指的VT-D,支持VT-D的机器都可以&12、这类显卡的视频处理是否只是并发4路,如果是的话,与1:7 VMs不匹配啊答:并发路数应该与VM个数没有关系的。可以起7个VM,每个里面处理多路并发&13、我想问的是:(GVT-g)的方式是不是这样的,VM里面看到的是整个物理的GPU,访问方式是利用pass-through直接对GPU进行访问,但是要多个VM同时访问的话,这个调度是在hypervisor来调度、还是VM的驱动来调度?还是GPU的硬件来调度?答:KVMGT是完全由软件调度的。显存的访问是pass-through的。KVMGT内部对显存做了partition。这是个好问题&14、请问我的物理机上如果有多块显卡,我如何分配指定给特定的虚拟机呢?答:向OpenStack请求启动虚拟机是通过选择flavor来确定CPU,RAM,DISK的,我们的计划也是在Flavor中的extra_spec里面实现GPU类型的选择。所以GPU的分配是在虚拟机启动的时候由nova选择的。&15、请问我的物理机上如果有多块显卡,我如何分配指定给特定的虚拟机呢?答:KVMGT只支持Intel的集成显卡,不会遇到多块显卡的问题问:这样啊!那这个技术对于机器学习有帮助吗?答:对于机器学习目前IntelGen graphics的运算能力还有差距,并不是Intel主推的机器学习平台&16、不同的VM之间做context switch的时候,GPU的pipeline是不是要完全flush?这个context是i915的驱动来管理的吗?答:我们目前switch的时间点是GPU idle,就是说当前VM所发的任务跑完了。context的管里是一个实现问题。我们目前的实现里面:guest的context是做了shadow,影子context是由i915管理&17、VM内的多路并发没问题,但性能不足下的多路,浪费调度资源,设计合理性方面是否需要慎重考虑答:是的,确实是。虚拟机之间的调度是存在性能损耗的&18、KVMGT什么时候可以upstream?答:KVMGT目前正在进行upstream。我们主要的代码是改在kernel i915驱动里面。其中有一部分是驱动本身的扩展,更主要的一部分是虚拟gpu模型。目前第一部分已经upstream了,第二部分会作为英特尔GPU驱动的一个子模块,目标是今年upstrem到linux kernel,&19、openstack和Citrix虚拟化那个好,用户交付来说答:OpenStack可以提供更全面的公有云,私有云和混合云的解决方案,提供计费,租户管理,网络,存储个类服务,和Citrix的关注点有所不同。openstack 是云计算,原则上可以支持各种GPU虚拟化技术。 对于用户交付来说,Citrix应该是商业软件,他们应该交付好些吧。&20、gt技术3d画面是不是只是放在显存里没有export出来?有没有可能直接吧显存里渲染好的画面送到硬件视频编码给host上的协议服务端?能支持7个vgpu是并行的吗还是只是用某种方式分享一个物理gpu的时间片?听说intel的芯片带了视频编码硬件&这个和gpu部分是一起的还是一个独立的部分&也就是说用硬件视频编码的同时3d渲染的性能会不会下降?&答:也是很好的问题。3D渲染出来的结果是可以直接做硬件编码的。这也是我们SPICE优化想做的事情 ,Intel有硬件编解码的fix function,与3D渲染有一定的并发性。但是3D和media操作还是有共用的单元,存在相互影响,KVMGT对GPU运算单元是分时共享。不是并发的。招聘福利&腾讯云招聘-云布道师(深圳)工作地点:深圳职位类别:技术类工作年限:八年以上招聘人数:2人发布日期:日岗位职责:面向云计算行业,开发者进行技术及产品布道,通过个人影响力及独特见解,引发业界关注与思考,提升腾讯云在业界的影响力,口碑及知名度; 云计算相关的技术文章撰写,深度技术观点输出; 开发者大会,沙龙,workshop等活动的技术演讲; 云计算产品及技术类课程的开发,授课; 重大PR事件的舆论引导,品牌维护。岗位要求:本科以上学历,8年以上互联网产品,技术,架构设计相关经验; 丰富的互联网从业经验,具备一定的IT行业知名度; 对云计算相关产品,技术,发展方向有深入的理解; 具备很好的沟通交流,演讲能力,思维敏捷,视野开阔。;有意向者发简历到:社区福利&感谢品高云赞助,投稿送小米充电宝,仅有10个机会。
TA的最新馆藏[转]&[转]&
喜欢该文的人也喜欢&&|&&责编:周博林
1横跨两个生态系统 着力打造低价平板  英特尔近期正式推出9款新Atom移动平台处理器核芯,而这9款无一例外都是针对而推出的,从而再一次看到英特尔在平板电脑市场上的发力趋势。今年4月份的英特尔2014&IDF峰会上,英特尔已经放出狠话,计划今年出货4000万颗Atom平板处理器,比去年翻两番,其中将有60%走向Android平板。  英特尔处理器核芯最大的优势是能横跨Windows和Android平板,是唯一一个能运行这两个生态系统的厂商,同时得益于英特尔对深圳平板生态圈的大力支持,不仅可以进一步缩短生产时间和压低制造成本,同时也促进了芯片出货的数量。Atom平板目前的成本已经低于同等级的ARM产品,像联想、华硕这样一线厂商,Android手机以及平板已逐渐改用Atom核芯,而其他品牌以及华南厂商也都在考虑调换阵营。英特尔Atom新核芯全解析  就目前来看完成4000万颗Atom平板处理器出货量还有一段不小的距离,但英特尔的统筹布局考虑却很全面,5月28日英特尔宣布与中国平板电脑芯片厂商瑞芯微达成战略合作协议,主要针对平板电脑共同推出四核芯3G芯片,锁定入门级高性价比Android平板市场,这一合作对于双方都是一个利好,英特尔能够更好的整合深圳白牌产业链,借此提升出货量。  说了一些题外话,然而今天的主角还是要回到最新9款Atom处理器核芯上,依然同属Bay&Trail-T平台,都是四核心四线程,22nm工艺,基于Silvermont&CPU架构、HD&Graphics&GPU核显架构(四个执行单元),2MB二级缓存,支持AES/SSE4指令集。新版核芯步进从原来的B0/B1都升级到了最新的C0,主要是改善了USB方面的一些问题。  那么这9款新Atom核芯的参数上有哪些区别,性能差距又是怎样,我们通过下面的文章来进行进一步解读。&2性能差距不太大 Atom命名规则解析·性能差距不太大&Atom命名规则解析  介绍处理器核芯这类文章和之前笔记本时代相比,实际意义的确已不是很大了。从当前平板产品的部署情况和Atom处理器性能差距上看,大多数消费者购买平板时都不在意具体是什么核芯,就像很多人不在乎iPhone&5S的四核A7处理器有多强一样,仅知道不便宜的产品性能也不会差到哪去。  然而,对于平板厂商采购和有数字对比癖好用户来说,处理器成本和微乎其微的性能差距对他们最终选择起到了很重要的指导作用。  话不多说切入正题。英特尔近期发布9款Atom凌动新款处理器算是上半年英特尔较大规模的一次更新。9款新核芯均是为布局而生,性能并没有带来太多惊喜,规格型号依然沿用了互补穿插的方式,因此性能和之前Atom核芯相差不大,只能算是小幅度升级。随着产品数量的增加,Atom的命名方式也有了新的变化,尤其是最后一位字母的意义让很多用户摸不着头脑。英特尔最新发布9款Atom处理器参数对比  上面的这张表是9款Atom新核芯的详细参数,根据不同字母后缀,不同型号的内存支持、封装方式有所差异。前三位完全一样代表Atom&Z3700系列,第四位是分级标识数字越大性能越强。  最大区别就是命名方式的最后一位,无后缀的性能强,都是双通道LPDDR3-1067,最大容量4GB。Z3735D、Z3745D和Z3775D都是单通道64位的DDR3L-RS-1333,最大2GB。Z3735E削减为单通道32位,最大容量1GB。Z3735F、Z3735G的规格分别和Z3735D、Z3735E几乎完全一致,但封装方式略有不同,Z3735F、Z3735G采用第三类封装(592个触点),其他的都是第四类(1380个触点),针脚间距更大,同时失去了一些IO规格,直接体现在接口数量方面。场景设计功耗有2.0/2.2W两种。英特尔2014年最新发布的9款主攻平板移动处理器核芯(图片来自英特尔官方网站)  如果对处理器感兴趣的网友,应该在我们的近期的评测文章中看到了Atom&Z37x5的具体表现了,热卖产品中联想ThinkPad&10将要搭载最高阶Atom&Z3795处理器,华硕TF103C配备的是Atom&Z3745四核处理器,而国产品牌由于成本控制方面的考虑,大都采纳性能相对较弱的几款,例如刚刚评测过的七彩虹i803&Q1,则搭载的就是Atom&Z3735E处理器。搭载Atom&Z3795处理器可以支持64位操作系统(图片来自谷歌)联想ThinkPad&10搭载的就是Atom&Z3795处理器核芯  从英特尔官方给出的参考价格考虑,Atom&Z3795定价40美元,也就是ThinkPad这样的一线大品牌会考虑该型号,主要面向对象是移动商务办公,商用平板和强劲性能作为主打卖点,因此整机价格保持在3000元,并不会切进到消费级主流市场。此外,Atom&Z3795支持4GB内存,这就意味着一直以来64位Atom核芯,真正可以运行在64位操作系统上。  相比之下,Atom&Z3745、Atom&Z3745D和四款Atom&Z3735x也受到OEM以及山寨平板的青睐,价格是Z3795的一半,牺牲性能换低成本可以冲击千元以内7、8、10.1英寸Android平板阵营。近期曝光的一些新平板也反映出厂商对Atom&Z3745的情有独钟,该核芯属于一颗中低端型号,四核心,CPU频率1.33-1.86GHz,GPU频率311-778MHz,内存支持双通道LPDDR3-1067,场景设计功耗2.0W。目前新品10.1英寸华硕TF103C(Android)和宏碁Aspire&Switch&10(Windows)都采用这款处理器。  性能由高到低来看,顶级Atom&Z3795可以支持双通道4GB运行内存,因此可安装64位Windows&8操作系统,此外,略低一档的Z3775和Z3775D处理器主频与Z3795相差不大,但主频却和下面的处理器拉开了不小的差距,因此以上三款价格偏高,主要锁定在Windows平板阵营中,配合10.1英寸及以上大屏幕主攻生产力平板为最佳。3参数规格区别在哪?实测处理器性能·参数规格区别在哪?实测处理器性能◆项目一:AnTuTu&  虽然被网友们戏称为娱乐兔,但系统评测这款依然凭借其全面的数据库,以及历代版本跑分成绩可被继承对比的特性被众多媒体、用户所采用。那么伴随着智能移动终端设备的成长,安兔兔系统评测已经从当初的新生代变成了现在的老江湖。目前安兔兔系统评测的最新版本为V4.3,加入了测试前内存清理等新特性。CPU处理器性能测试软件:AnTuTu&Benchmark(图片来自)  那么从版本号进入3.0时代开始,安兔兔系统评测一直在更新着其内置的3D图形测试引擎,再加上CPU整数/浮点运算性能、内存读写性能、数据库IO以及SD卡读写等项目,整个测试平台由8项测试内容所组成,通过一套换算评分系统对用户手中设备的整体性能进行评估。从目前的情况来看,移动级SoC系统的最高测试跑分成绩仍在40000分以下。Atom&Z3745与Atom&Z3735E安兔兔跑分成绩对比  由于搭载新款Atom处理器的平板新品数量暂且不多,目前我们仅评测过Atom&Z3745与Atom&Z3735E这两款处理器,主频分别是1.86GHz和1.83GHz相差不大。不过从安兔兔的最终跑分成绩看,不出意外Atom&Z3745整体性能更高一些。一方面和Atom&Z3745睿频幅度高有关,而另一方面,Atom&Z3745所支持的双通道64Bit内存,比Atom&Z3735E的单通道32Bit内存要更有优势,同时GPU频率也稍高一些。◆项目二:GeekBench&3  出自Primate&Labs的Geekbench系列处理器性能测试软件,是目前少有的支持同时也是跨多平台的Benchmark类跑分测试软件,所以说我们会在几乎所有采用iOS系统的设备的评测文章中找到它的身影。它的评测范围较AnTuTu以及Basemark&OS要精简很多,仅限于处理器的整数/浮点运算、内存读写性能等内容。处理器CPU性能测试软件:Geekbench&3(图片来自Google&play)  Geekbench&3是这款评测软件目前的最新版,依旧有iOS、Android、Mac、Windows、Linux等多平台的版本。相比以往的版本,其界面适配了苹果&iOS&7系统的扁平化UI样式,并且被引入到了其它平台中。功能方面,Geekbench&3引入了真实环境测试,模拟用户的多任务应用运行场景。另外Geekbench&3可以充分利用处理器的多核心特性,释放整个平台的潜能。GeekBench&3处理器单核、多核性能测试对比  GeekBench&3由于可以跨系统平台测试处理器性能,因此性能对比具有一定的参考价值。我们通过GeekBench官方数据库查询,发现最新9款Atom处理器成绩只有其中几款被收录,其余的还没有成绩。以上得到成绩虽然不算完整,但已可以表明处理器的性能强弱。另外,我们还加入了今年年初普及率较高的Atom&Z3740和Z3770。不过,无论单核还是多核旗舰级的Atom&Z3795表现最佳,纵向其他Atom核芯呈阶梯式排列,之间的性能差距并不是很大。如果横向对比高通骁龙800的话,升级版Atom&Z3775可以与对位。◆项目三:  3DMark原本是Futuremark公司在PC端推出的一款专门测量显卡性能的软件,不过随着版本的更迭,3DMark已经渐渐转变成了衡量整机性能的软件,在发烧友心中更是树立起了测试标杆的形象。2013年2月,继3DMark&11之后,新一代产品以“3DMark”这个复古的名字重磅亮相。处理器GPU性能测试软件:3DMark&for&Mobile(图片来自Google&play)Atom&Z3745测试成绩Ice&Storm场景14093分  3DMark&for&Mobile的数据目前我们只拿到了Atom&Z3745这一款的数据,由于搭载Z3735E的七彩虹i803&Q1只是工程样机,因此系统无法测试3DMark&for&Mobile的成绩。从实际结果中可以看到,Intel&HD&Graphics第7代图像显示芯片依然表现出色,新款Atom&Z3745获得了14093分,图形性能和之前Z3740相比要略高一点,理论上Z3795和Z3775表现是最好的,如果拿到真机我们也会第一时间奉上评测结果。&44G网络支持 Atom全面提升移动实力 ·4G网络支持&Atom全面提升移动实力&  通过上述英特尔Atom移动处理器芯片的解析,大家对新款处理器有了一定了解。此外,英特尔对小尺寸平板的网络和通话也开始有了新的动作,本次Computex台北电脑展上将会展出Asus&MeMO&Pad,而处理器将搭载Moorefield最新64位芯片。  最新的信息显示英特尔代号为Moorefield的最新64位芯片有望将于即将举行的Computex大会上隆重登场,一位英特尔发言人告诉外媒CNET,旨在为8英寸及8英寸以下的智能设备(包括智能手机及)专门设计的芯片Moorefield,又名四核Atom&Z。将于6月4日举行的台北Computex大会上展出。Moorefield将向小尺寸手机平板发起挑战LTE支持会给平板电脑带来更快更稳定的网络支持  Moorefield使用更小的芯片封装方式,能更好地使用在小尺寸平板及手机平板上。并且具有更低更优秀的TDP,意味着发热量更小。最重要的是该芯片内建LTE支持,即内置了英特尔的XMM&7260&LTE芯片,支持300Mbps的理论峰值速度。今后7英寸手机平板将会得到最好适配。写到最后:  单从Baytrail-T平板电脑处理器性能上看,最新9款核芯大多数并未带来什么大惊喜。个人认为唯有Z3795还具备一些性能上的突破,双通道4GB运行内存,可以运行64位操作系统,打破了Windows平板电脑一直以来使用32位系统的格局。对于性能要求更高的商用型平板电脑而言,的确是个不错的选择。即将到来的2014年台北电脑展上还会看到更多的平板产品展出。  随着平板电脑取代笔记本电脑的呼声不断升高,10.1英寸及以上的Windows平板市场依然有不小的拓展空间,相比高大上的微软Surface&Pro&3,搭载Atom核芯平板将会进一步占领中低价Windows平板市场。双管齐下,冲击中低价位段的Android产品线,英特尔也给出了Atom&Z3735x系列下的四款核芯,虽然性能略显偏弱,但价格却很诱人,当然实际采购价还会比官方低一些,主要针对中小尺寸的Android平板量身定做。&除此之外,英特尔也没有放松对LTE网络方面的支持,对于手机以及8英寸及以下手机平板有很重要战略意义&。&&
产品定位 操作系统
投诉欺诈商家:
天津重庆哈尔滨沈阳长春石家庄呼和浩特西安太原兰州乌鲁木齐成都昆明贵阳长沙武汉郑州济南青岛烟台合肥南京杭州东莞南宁南昌福州厦门深圳温州佛山宁波泉州惠州银川
本城市下暂无经销商
4¥13995¥20886¥13497¥12498¥23889¥248810¥1769geci="";welcome="open";
tips="欢迎来到MoePC";想让HTML5达到原生性能 英特尔开源技术中心这么说
编者按:HTML5应用被视为让本地软件云端化的利器,HTML5游戏也被视为一片新的蓝海,然而,HTML5远逊于原生的性能让众多开发者望而却步。本次InfoQ中文站便就此问题采访了英特尔(中国)开源技术中心负责crosswalk runtime和H5优化、硬件加速的两位工程师。
InfoQ:请先做个简单的自我介绍
余枝强:我是英特尔中国开源技术中心的软件技术经理余枝强,主要负责HTML5引擎 -Crosswalk在安卓平台的开发, 以及一些新兴Web技术的研发
顾扬:我是英特尔中国开源技术中心web研发经理顾扬,负责web图形相关功能(CSS, Canvas2D和WebGL等)的实现和优化
InfoQ:大家都很期待H5达到原生性能,那么从硬件层面和浏览器层面来说,H5能否达到原生性能呢?
余枝强:其实现在轻度、中度游戏/应用如果能够通过一些全栈式的优化(包括应用层,软件库,Web引擎层),某些场景下可能还需要一些Hybrid实现, 这样,HTML5应用接近或达到类似原生应用的性能应该问题不大。但重度、计算量大的应用(比如复杂的3D游戏,包括物理引擎等)目前确实还是有不少差距的。
我这里可以分享几个例子,它们都是一开始性能有较大的差距,但通过相应的优化性能达到了质的提升。
其中一个例子是和腾讯Alloy团队合作的,针对HTML5图像处理库的优化。原先这个图像处理库在移动端性能不理想,比如说对一副图像实现一个木雕效果需要十几秒甚至几十秒的时间(其中涉及到较为复杂的计算),后来我们在应用里引入并行 (WebCL, 它可以利用CPU 以及GPU中的多核的能力),通过对图像处理库相应的部分用WebCL重新实现,另外在Crosswalk引擎里加入WebCL的支持以及相应优化,最后这个图像处理时间在安卓平台上从几十秒降低到2秒以内。
另外一个例子是和触控科技合作了, 针对一个游戏-“进击的小怪物”的 HTML5版本做优化,其中涉及到比较酷炫的消除/爆炸效果,而这些效果在最新的Chrome里跑只有十几的fps 。通过引入Crosswalk 的游戏模式,把上层相对耗时的API通过原生的实现再桥接到HTML5引擎中,使得酷炫效果的性能比Chrome好5倍左右。
另外最近我们在调研一种典型的用户场景:大规模的图片的加载和滑动的性能问题, 以及和原生应用的性能区别。经过初步的调研,我们发现性能的差距有几个方面的原因:没有做更好的缓存,没有利用系统服务,不必要的事件处理,不必要数据转换,以及大量的数据缺少高效的数据传输机制,这中间有很多开销,会影响到用户体验。我们打算做一个参考实现来解决这种类型应用的性能问题。
总结来说,HTML5的性能问题,可能是多重原因组成,比如应用本身设计不合理,加了不必要的事件,没有用更好的缓存等等,另一方面引擎也可能有问题,比如数据传递,比如没有利用上更好的硬件特性。再加上Java语言的动态性,相对不容易写出优化的代码。这些问题,如果能够有全局的角度出发做相应优化,性能会有机会提升非常明显。
另外对应用开发者来说,尽量用一些成熟的框架,最好也要对对底层引擎有一定的了解从而避开javacript 里的坑。成熟的框架相对来说已做了一些Java层面的优化,再通过引擎本身针对应用的场景做相应优化,同时让Web引擎更好的利用到底层的硬件能力,这些层面做好了,就容易有好的体验。
顾扬:从我的理解来说,native应用直接跟硬件打交道,web应用则是通过web引擎跟硬件打交道,多了web引擎这个中间层。正因为这个中间层,带来了一些性能差异:
1,web引擎相对native发展来说还很年轻,对CPU,GPU这样的计算资源还不能充分应用。
2,web引擎是一种通用平台,日益增强的能力也带来了日益复杂的架构和更多的overhead。当然除却web引擎带来的性能损失,JS语言本身也有一些局限性,比如数据类型不明确,不支持多进程等。我们的优化主要针对web引擎的上述两个短板:
1,充分发挥硬件,主要是CPU和GPU的能力。比如充分利用Intel CPU的特殊指令集,GPU的特殊extension。
2,因为我们熟悉web引擎的各个阶段,通过对典型应用场景的性能评估,了解瓶颈所在,从而优化引擎逻辑。
InfoQ:顾扬可否再详细地介绍下你们所做的优化?
顾扬:目前的很多web引擎都是基于Chromium项目。我们的优化工作基本都是直接提交到Chromium,而且跟图形相关。具体涉及的软件仓库,主要是Skia和Chromium(Blink已经跟它融合)。
Skia方面优化 :
1,很多操作还是通过CPU进行的,Intel CPU有特殊指令集,用好这些指令集会有很多性能提升。
2,我们会做图形也是因为web的趋势是越来越多地用GPU而不是CPU来渲染。移动平台的GPU能力,近年来增长非常快,很多以前只有CPU能完成的任务,现在都能用GPU完成,而且性能更好。Skia代码中有些GPU的逻辑,要么有bug,要么还不够优化,我们消除了很多这样的正确性和性能问题,从而可以顺利的从CPU切换到GPU。
3,对路径渲染的一些优化。
4,CSS的很多优化,比如transform,box-shadow。
Chromium方面优化:
1,针对特殊场景的优化。比如Canvas2D被用在轻量级应用时,一些overhead可以忽略。但当用于一些heavy的游戏,比如一帧要画成百上千的东西时,引擎的一些overhead就突然成了瓶颈。
2,针对WebGL的各种优化,比如上传canvas/video到WebGL,GPU到GPU的纹理拷贝等。
3,一些场景下DOM操作的优化。
4,针对反锯齿效果性能的优化。
InfoQ:很多游戏厂商不使用现有的引擎,可能会选择自己写一个。对于这些开发者,有没有什么可以分享给他们的性能优化方法呢?
余枝强:的确有这个现象,有很多HTML5游戏引擎厂商都是自定义的一套 API,实现上其实是完全绕过了HTML5引擎,直接调到了底层的库。开发者就围绕这些API来开发,这在某些情况下的确有更好的性能,但也丧失了HTML5的一些优势,包括通用性,以及与HTML5 API的交互能力 (比如DOM)。不过这也是一种做法,但我觉得另一种可能更好的路是把HTML5 和 原生实现更高效的融合起来, 在把HTML5 本身的优势发挥出来,把标准的API以及丰富的HTML5 库利用起来,同时也能有和原生实现类似的性能。
InfoQ:对于浏览器而言,有无什么可从Web 引擎借鉴过来的优化理念?
余枝强:这个是有的。但首先我们要理解一下浏览器和独立的Web 引擎之间的区别。比如对于浏览器,你不知会访问哪个页面,所以为了防止潜在的恶意代码,在安全方面需要做很多检查,增加额外的开销,不同的页面也需要做相应的隔离。同时,浏览器需要更通用一点,来满足不同应用的需求,而通用也就意味着不容易做一些特定的优化。而作为一个独立应用,代码是可控的,场景是特定的,相对容易做一些针对性的优化。另外,在交互方面,比如浏览器里网页前进后退、手势,这些对于独立应用是不需要甚至有冲突的,这方面也是不小的区别。
但对于基础渲染,GPU加速等,浏览器和web引擎的基本是一致的. 还有,比如说把指令级的并行如SIMD带入到Web平台,这个也是通用的。SIMD.JS最先是在Crosswalk中有完整的实现,然后变成一个web标准,目前主流的浏览器厂商比如Google/Microsoft等都在加入相应支持。
InfoQ:因为IOS上无法使用第三方runtime,所以有开发者觉得使用runtime会减少很多用户。对于IOS这个问题,有没有什么解决办法?
余枝强:对于runtime会提供打包工具,可以将H5应用可选地打包成Android或IOS应用,所以不会减少用户。 只是在IOS上实际使用的是它自身的WKview引擎,而不是我们的加速引擎。但是考虑到IOS硬件不错,自带引擎加速也还可以,所以其实IOS上的H5性能问题没那么严重。
InfoQ:CSS和DOM操作算H5一个瓶颈吧?这方面的性能优化可否再具体讲讲?
顾扬:我们在这两块做的优化不算多,主要针对一些特殊场景。比如上面提到CSS有个效果是box-shadow,计算非常耗资源。我们通过cache机制,把中间相对通用的计算结果保存下来,这样很多后续运算就不需要从头来过,很好的提升了性能。当然,做好这样的优化,需要做大量实验,对数据的典型性有很好的把握,也要对Skia的cache机制有很好的了解,并做很多增强。DOM的一些优化也是针对某些场景。比如在packaged app里,可以节省一些cache获得很大的性能提升。
InfoQ:关于H5的优化和硬件加速,还有什么需要补充的吗?
顾扬:优化是很难做的,我们从12年开始做优化,碰到的最大问题不是怎么修复瓶颈,而是压根不知道哪是瓶颈。你想,H5有很多关于功能的标准,但却没有关于性能的。H5涉及的面很广,包括JS,CSS,Canvas2D,WebGL,Web Audio, Web Video等。这些领域在不同的硬件配置,比如CPU,GPU,内存,屏幕尺寸和分辨率上,表现都会有很大不同。怎么设计benchmark,既cover典型的应用场景,又能充分测出每个领域的瓶颈所在,是最难的事。我们从一开始就做好了长期作战的准备,比较系统的为优化做准备。我们收集,开发和评估各种benchmark,不断积累测试方法,自主开发一系列工具帮助我们自动化测试和明确问题。在这些benchmark帮我们明确了问题之后,就需要依赖我们对web引擎的了解,分析问题所在。有些问题是比较好解决的,比如有些局部代码写的不好,或者说有些regression,也就是说以前是好的,现在不好。另一些问题是比较系统性的,解决它们需要大量的改动,甚至改动底层架构。我们通常会积极跟upstream讨论,寻求最佳的解决方案。
这是我们整体做优化的一个思路,一个过程。优化不是一蹴而就的,需要长期的积累和很多很琐碎的工作。
InfoQ:再问一下,对于耗电,该如何优化?
顾扬:耗电和性能,很多时候是一对矛盾,需要很好的权衡。
有的时候很少的性能损失或者不损失,就能省很多电。比如通常的web应用,每帧的显示通常要经过CPU处理,然后交由GPU渲染。如果GPU是瓶颈,那么CPU再快也没有用。这个时候可以通过一些聪明的调度算法,减少CPU端的操作。再比如有些video的解码工作,交给GPU处理不仅快,还能大大节省整体耗电。
但决定并不是每次都这么容易。当省电的代价是比较大的性能损失时,就需要很好衡量了。有时可以在web引擎里面设置一些启发式规则,根据系统当时的情况,作出合适的选择。
InfoQ:对未来的展望?
顾扬:web发展很快,越来越多的人贡献idea和code。这些贡献主要在两方面,能力和性能。
能力方面,很多native的能力正在很快的加到web中,像蓝牙,NFC,AR,VR等。我们想要打通native和web的界线,native能做的,web都要做到。之前web是在追赶native的能力,今后要慢慢lead这些能力。世界不断发展,不断有新技术出现,这些新技术以后先在web还是先在native落地,则看谁基础更好,实现更经济了。哪边发展快,哪边就能引领行业发展。
第二类是性能。上面已经谈的比较多,主要是JS语言本身的性能,以及web引擎本身的性能。至于能不能达到native性能,坦白说很难,但可能有了足够好的性能之后,这个问题就不那么重要了。比如说web有个常用的指标FPS(一秒几帧),对人眼来说60FPS就已足够好,再高人也不易察觉了。所以如果web可以达到60帧一秒,native可以到80帧,虽然web还是不如native,但已经足够好。这个时候,web在其他方面的优势,比如统一的标准,高效的开发,方便的更新等,将秒杀这些很小的劣势。web就会变成一个很适宜开发的成熟平台。所以性能发展的目标,不一定是要达到native,而是足够好。
InfoQ:有言论说,随着从C/S到B/S的转变,未来我们只需要浏览器就足够了,客户端软件会被浏览器上的云端软件取代,你怎么看?
顾扬:我做web这么多年,非常热爱web,也对它很有信心。但是我认为世界上的统一是不可能的,也是不适合发展的。总有需要native存在的领域,比如有些对性能要求非常高的地方。做个类比,我们看一下计算机语言的发展历史,高级语言在慢慢侵蚀低级语言的地盘,从汇编到C/C++,Java,以及很多的脚本语言,但低级语言并没有消失。在很多底层库中,还用了大量的汇编,C/C++有更多的领域在使用,更不用说Java之类了。
web的使命,不是彻底取代native,而是补充了多样性,把应用这个蛋糕做大了。以前的人,哪有这么多应用可以用。可预测的是,在经历了高速发展期后,它跟native的在应用中的比例会趋于一个稳定的状态,native仍会有相当可观的比例。
转自:InfoQ中文站
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点

我要回帖

更多关于 ddr4和ddr3的性能差距 的文章

 

随机推荐