加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营 > 正文

2019大数据产业峰会|百度陈凯:基于异构计算的数据科学加速方案

发布时间:2019-06-07 02:53:15 所属栏目:运营 来源:中国IDC圈
导读:副标题#e# 为了深入落实国家大数据战略,推动大数据产业交流与合作,展示我国大数据产业最新发展成果,2019年6月4日至5日,由中国信息通信研究院、中国通信标准化协会主办、大数据技术标准推进委员会承办的2019大数据产业峰会在北京国际会议中心隆重举办。
副标题[/!--empirenews.page--]

为了深入落实国家大数据战略,推动大数据产业交流与合作,展示我国大数据产业最新发展成果,2019年6月4日至5日,由中国信息通信研究院、中国通信标准化协会主办、大数据技术标准推进委员会承办的2019大数据产业峰会在北京国际会议中心隆重举办。

会上,来自工业和信息化部的领导,我国众多优秀大数据领域服务商、行业应用客户、研究机构、地方大数据主管机构的领导和专家,将对大数据政策、产业、技术的现状与趋势等内容进行交流探讨。

6月5日,在大数据前沿技术分论坛上,百度资深研发工程师陈凯为我们带来了主题为《基于异构计算的数据科学加速方案》的演讲。

vbox12118_C09A4794_111410_small

大家好,我是陈凯,来自百度,是百度资深软件工程师。今天演讲的主题是《基于异构计算的数据科学加速方案》。   

从数据科学现状讲起,以今年非常火的4月10日首次通过设定望远镜发现黑洞来说明。我们通过地球上的八台大口径射电望远镜发现黑洞,处女座星系离地球非常远大概五千多万光年,单靠肉眼无法看见它,当然黑洞是看不见的,肉眼是不可见的,与此同时它会吸收可见光,对一般的科学仪器也是不可见的。通过这样一个数据最终看到黑洞就是一个典型的数据科学的过程。在这些数据科学的过程里面包括李总前面提到联通有非常大量的数据,在这个地方也是海量的数据。基于海量的数据如何看到这样一个黑洞,就引出下面的过程。

数据科学就是从刚才的比如通过射电望远镜的观测数据最终发现黑洞的过程,数据科学的定义是利用数据学习知识,我们发现黑洞验证爱因斯坦的广义相对论在极端环境下依然是成立的。数据科学涵盖了非常多的交叉学科——应用数学、统计、模式识别、机器学习、深度学习……还需要高性能计算的支持。与此同时,包括黑洞本质上来讲是无法看到的,我们最终通过一种可视化的方法把射电望远镜处理的数据进行可视化,总体是这样的过程。

它的核心技术体系,首先数据是第一要素。我们通过观测到数据做数据分析,数据分析传统在两千多年前,最早用算盘加上珠算口诀表,今天这样的算力是不够用了,所以今天有一些专门的支持。在今天CPU是典型的计算硬件,作为通用的处理器可以做很多计算。在算法方面,通过比如包括数据预处理、数据分析、数据可视化来完成整个流程。

刚才所描述的是数据科学的背景,接下来描述数据科学的技术现状,从两部分进行讲起。

1、数据科学目前算力的情况。除了通用/常用的CPU,通用处理器之外,在大家机器上通常有图像显示卡,今天已经超过图像显示卡的范畴,已经应用于高性能计算,我们讲一下图像显示卡跟CPU技术的区别。

图像显示卡会简化逻辑控制单元,比如汇编,每一套指令的执行首先来讲需要取子、取操作数进行计算。一般结构分两部分,第一是怎么样在里面计算,第二是怎么从里面抽数据。比如CPU单指令流单数据流,在显示卡里是多指令流多数据流这样的逻辑控制单元。简化了单元之后,第二部分简化在cache级方法。CPU作为一种通用性的硬件需要考虑,怎么加速程序的执行,GPU里是不需要的,这两个控制结构比较简单,与此同时有足够多的空间,比如做流处理器,像我们经常提到的超限的概念,有很多ALU这样的计算单元。常用CPU里面只有10%不到的空间,但是GPU里面有将近40%的空间做计算单元。

按照这样的体系,第一是怎么算的更快,应该由外部输入这些数据。从数据来看主体数据是存在内存里的,在CPU和GPU内存来看,GPU把一大部分内存嵌入上去,使用的概率比CPU高,它的内存带宽是CPU的一到两个数量级,百度云上的数据大概是38倍的关系。所以GPU本质上来讲非常适合做高性能计算,包括今天世界500强的排名比较考前的高性能计算的机器里面,主体是CPU和GPU耦合的模式。这里有组数据显示,民用用的比较多的,像英伟达的LTX——民用显卡性能超过了最顶级的铂金版8系和9系的处理。因为GPU结构上相对简单,功耗上相对小一些,不仅有性能优势还有成本的优势。

除了GPU,今天我们看到的不仅仅是GPU,还有其他高性能计算硬件。作为FPC的老大,谷歌06年开始在数据卡上支持数据科学,也开始推出TPU1.0,今天已经是3.0的模式了。如图这些都是在服务器端经常能用到的。民用的主要是手机上,华为的mate20、P30这样的手执设备也用了高性能计算硬件。这里描述了4个算法的支持,TPU为例,单位功耗性能比CPU高196倍,比GPU高68倍,这是各个算力的你追我赶,毫不示弱。

2、接下来谈一下算法维度。不知道今天在场有多少朋友是做机器学习或者数据科学的,大概用到哪些常用的算法。Scikit-learn或者深度学习的框架,大家可以举一下手,还挺多的。我们这里有个统计,选取一些全球的消费者做了一些数据。图中显示,在数据科学里面经常用到一些算法,包括分类、聚类等等,这里面非常火的像深度学习、卷集神经网络,这里可能没有完全拔得头筹,说明传统的机器学习还是大有用武之地的。

头部来讲,传统的机器学习数据分析主要是这样一些,在机器学习方面,传统的Scikit-learn,2008年左右开始涌现了这样一款软件,到今天为止它的生命力依然非常旺盛。还有一些后起之秀,比如做XGboost还有高性能模式。这里有一些Scikit-learn支持的算法列表,可以看一下Scikit-learn是个非常好的对应到算法上,当大家有了数据分析的需求或者还拿不定用什么样的算法的时候可能会优先选择Scikit-learn做尝试。

Scikit-learn所支持的算法非常广泛之外,另外一个,Scikit-learn有个非常好的代码接口的应用性和代码维护性。他们官方自认为他们所追求的第一要素是接口应用和整体代码维护性,我们以SVM解决经典易获的数据,以建模为例,如图这是易获的数据,通过经典的分类方式难以解决,我们以Scikit-learn解决,描述一下数据过程,先有数据做预处理,与此同时调用一个模型,调用模型的pd方法,相当于构建了这样一个模型,接下来用predict方法截取应用层模型做相关的预测,实际上Scikit-learn在易用性的同时也存在一些性能上的问题,特别是刚才李总描述的,数据越来越大,用Scikit-learn往往我们只能用于处理一些相对来说不那么多的数据,Scikit-learn要支持更大量的数据就会存在一些性能上的瓶颈。这时候Scikit-learn自己官方也给出来一个建议的优化步骤,总体而言是具体问题具体分析,大概是如下几个步骤:1、寻找瓶颈,这个相对容易;2、重写代码,Scikit-learn自己推定的方法,比如对接口的分装,需要写代码,用一些高性能语言重写这部分代码;3、对比测试,比如有并行优化过程,第二步还是相对比较复杂的。前面也提到了优化,Scikit-learn在可预见的将来应该是不会支持GPU,支持GPU影响代码的可读性和兼容性,所以其他的设备更不用说了,我们可以看到3W 2018年有篇论文描述,GPU对SVM加速效果,最高加速81倍,当然在Scikit-learn里是产生不到的。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读