想要在AI占有一席之地,英特尔单靠处理器的硬件并不足以抢市,透过软件的优化提供强大效能,以及增进开发应用系统的便利性,将是布局能否成功的关键
上篇:英特尔AI策略全解析(1):延伸四大产品线
【英特尔强化AI软件应用的4大层面】英特尔对于AI应用的支持,首先是处理器内建低阶软件原始指令,例如MKL-DNN;针对深度学习软件框架,提供优化程序代码;对于大数据分析应用平台,投入Hadoop、Spark的版本提供或贡献程序代码;而在集成软件开发工具,他们也推出Deep Learning SDK。
图片来源:iThome
看好人工智能带来的运算处理需求与未来的蓬勃发展,英特尔不只是推出多种服务器端处理器来因应,在2016年11月举行的Intel AI Day活动期间,他们宣布将更积极发展深度学习应用的运算与沟通处理的链接库,并以基本指令(primitives)的形式整合到处理器硬件上。而在AI应用软件开发的支持上,他们陆续开始提供的部分,包含:链接库、程序语言的支持、平台、软件开发工具包、程序开发框架。
无独有偶,IBM与Nvidia也在11月宣布,双方将连手开发新的深度学习专用软件开发工具包PowerAI,可搭配IBM 专为AI应用所特别设计的服务器——OpenPOWER LC(采用Power运算架构与Nvidia NVLink互连技术),藉此提供企业级的深度学习解决方案。
英特尔在Intel AI Day提出人工智能的策略,正巧IBM与Nvidia也在之前宣布了PowerAI,在那一周期间,同时,又适逢全球高效能运算界关注的SuperComputer 2016大会举行。显然两大阵营争相较劲的意味相当浓厚,而且他们最终竞逐的目标,其实都是下一波企业应用。
英特尔AI解决方案总览
在AI应用的布局上,英特尔不只是单纯提供处理器平台,软件的支持更是重点——他们发展多种链接库、软件开发平台,积极支持多种深度学习应用框架,同时也会推出整合式的解决方案。
积极支持多种深度学习框架,陆续提供IA架构效能优化的程序代码
以发展AI应用系统所采用的各种程序开发框架为例,英特尔承诺,将针对在Intel Architecture运算架构(IA)的系统环境,提供经过优化的程序代码,以提升执行效能。
例如,在深度学习技术的应用领域当中,较为风行的几种开放原始码软件框架(Deep Learning Framework),像是Caffe、Theano、Torch、MXNet、Neon,英特尔已经提供Intel Architecture优化程序代码。至于TensorFlow的部分,英特尔与Google Cloud Platform在11月的Intel AI Day活动上,正式宣布策略合作后,最快于2017年初,才会释出相关的程序代码。
Caffe
这是由美国柏克莱视觉与学习中心(BLVC)所开发的框架,英特尔提供了特制版本Intel Optimized Caffe,可适用于Xeon与Xeon Phi处理器平台,当中整合了英特尔发展的数学核心链接库MKL(Math Kernel Library),并且已针对AVX2和AVX-512指令集,进行软件效能优化的工程。
而Caffe经过改良的成效如何?英特尔提出的实例,是影音服务业者乐视云(LeTV Cloud)的非法影片侦测应用。他们是在Xeon E5-2680 v3服务器平台上,搭配Intel Optimized Caffe来进行影片分类的训练,结果得到了30倍的效能提升(相较于他们先前使用的BLVC Caffe,搭配OpenBlas链接库作为卷积式类神经网络)。
Theano
它是由加拿大蒙特娄大学LISA实验室发展的深度学习框架,英特尔也提供了改良的链接库,是针对多核心运算环境予以优化而成的版本,而在京都大学大学院医学研究科的应用案例当中,当他们以此进行新药探索模拟运算的测试上,精准度最高可达到98.1%,而另一个深度学习网络(Deep Belief Networks,DBN)的测试当中,也获得8倍的效能增长。
Torch
Torch也是许多人很关注的深度学习框架之一,目前主要维护的成员,是来自Facebook、Twitter、Google DeepMind公司的研究科学家和软件工程师。英特尔对这套框架提供优化支持之余,同时整合了MKL链接库,进而针对服务器硬件端执行的深度神经网络指令集,提升效率。
而在这样的环境搭配下,英特尔举出的例子是他们与Pikazo软件公司合作,针对他们开发的图像风格转换App,协助后端处理效能强化——若以App刚推出的效能作为基准,现在Pizako App在图形上色(render)的速度,可提升到28倍,而能够处理的图档尺寸也扩充到15倍之大。
Neon
Neon是英特尔并购的Nervana Systems公司所发展出来的链接库,强调易用与高效能,在其现有的技术架构当中,可区分为深度学习功能(算法)、数据模型、解决方案等三层。
在这次的Intel AI Day大会上,英特尔也预告将推出Intel Nervana Graph Compiler,作为AI应用软件层的共通基础,以此对于深度学习应用的架构型态,提供更进阶的描绘方式,以及调校作法。
针对类神经网?络,提供高阶的图学运算编译程序
深度学习框架Neon对于硬件资源的存取,会透过不同平台的转换API来介接,因此上层应用无须考虑硬件差异,接下来,英特尔会在Neon原本的架构与硬件转换层之间,新增一层Nervana Graph Compiler,主要是为了针对类神经网络应用,提供高阶的处理,以便同时横跨多台硬设备执行。
Intel Deep Learning SDK
除了支持不同开发者所偏好的深度学习框架之外,英特尔本身也会推出Intel Deep Learning SDK。
藉由当中提供的简易使用接口,数据科学家与软件开发人员可发展各种深度学习的应用方案。
例如,透过SDK里面的训练工具,我们能够进行深度学习模型的设定、准备、设计;若要将已经训练好深度学习的模型,自动进行优化与部署的程序,也可以运用SDK包含的部署工具来帮忙。
英特尔处理器内建新的原始指令,强化深度学习效能
针对各种深度学习框架提供优化之余,英特尔在旗下的处理器产品当中,也内建了多种链接库来提升AI应用系统的效能。
Math Kernel Library(MKL)
MKL是英特尔发展了22年的链接库,里面集合了许多原始的数学运算指令,可加速在工程、财务、科学等领域的模拟与分析处理,2016年之后,由于增加了MKL-DNN的链接库,因此也能提升机器学习与深度学习的效能。目前内建MKL的处理器,包含个人计算机用途的Core,以及服务器等级的Xeon、Xeon Phi。
这套链接库提供了低阶的C与Fortran程序语言接口,能执行多种通用运算,例如,矩阵的乘法、分解、快速傅立叶变换、随机数生成、向量函数等,能支持多种操作系统平台的应用程序开发,例如,Windows(微软Visual Studio),以及Linux与OS X(Eclipse)。
Math Kernel Library for Deep Neural Networks(MKL-DNN)
透过深度学习框架开发的应用程序,若要执行在Intel Architecture的处理器环境,英特尔提供了一套开放原始码的效能强化链接库,称为Math Kernel Library for Deep Neural Networks(MKL-DNN)。
它与英特尔的MKL链接库之间,有很大渊源。
因为,MKL-DNN是2017版MKL所延伸出来的产物,当中包含了高度向量化与穿插式的建构模块,而且是透过C与C++程序语言的接口,实作出卷积类神经网络(Convolutional Neural Networks,CNN)的架构,并且不只能在C和C++这两种开发环境运用,也可用于Python和Java等高阶程序语言。
针对深度学习应用系统当中所进行的运算密集式工作, MKL-DNN也能对相关的框架提供加速处理,英特尔特别强调可支持上述提及的Caffe、Theano、Torch、Tensorflow等深度学习专用的链接库。
从服务器到个人计算机的处理器,都内建新链接库,强化AI效能
除了提供优化程序代码,英特尔在处理器平台上,也内建了原始指令:专供深度神经网络使用的数学核心链接库MKL-DNN,以及用于深度学习讯息传递应用的机器学习规模扩展链接库MLSL。
Machine Learning Scaling Library(MLSL)
在Intel AI Day活动当中,英特尔也预告将推出一套新的链接库,称为Machine Learning Scaling Library(MLSL),可在深度学习系统的多节点互连架构下,进行规模扩展的应用,可支持32个节点以上所组成的深度学习系统。有了MLSL之后,深度学习系统可针对不同节点之间的讯息传递作业,进行抽象化的处理。
MLSL是架构在现有平行运算系统所惯用的MPI(Message Passing Interface)之上,可运用其他用于讯息沟通的链接库,而在讯息沟通的模式上,用户若要扩展到更大的系统使用规模,MLSL也将对此提供优化。MLSL本身也提供通用的API接口,可支持上述的各种深度学习软件框架。
此外,由于MLSL与深度学习系统的多台节点扩展应用有关,因此能否适用不同的网络互连方式,也很重要。MLSL目前可支持的联机规格,有标准的以太网络、InfiniBand,以及英特尔发展的次世代互连网络架构Omni-Path Architecture(OPA)。
Data Analytics Acceleration Library(DAAL)
目前英特尔针对AI应用所持续发展的链接库,除了上述的MKL,还有Data Analytics Acceleration Library(DAAL),这套在2015年推出的链接库,可针对基于Intel Architecture处理器平台的个人计算机、服务器,提升大数据分析作业的执行效能。
这套链接库包含多种经过优化的算法建构模块,能够支持数据分析过程中的每个阶段,像是前置处理、转换、分析、建模、验证、抉择,并且在脱机、在线串流与分布式等不同的数据分析环境里面执行。
DAAL的发展上,也考虑到常见的大数据平台应用需求,目前已可强化Hadoop、Spark、R、Matlab系统的数据存取效率。同时,DAAL也内建数据管理机制,协助应用系统得以从多种来源存取到数据,例如档案、内存内的缓冲区、SQL数据库、HDFS文件系统。
DAAL与MKL同样皆可针对大数据的处理,不过,若遇到数据量大到内存无法全部加载的情况,DAAL本身能运用特制的算法来因应——将资料切割为块状,而不是全部放进内存。
在程序语言的部分,DAAL提供高阶的C++、Java与Python接口,可用来处理多种数据分析需求,像是主成分分析、回归、分类、群集与购物篮分析。透过这个链接库,你可以利用指定的算法来训练出模型,然后评定数据集在这模型中的分数。
下篇:英特尔AI策略全解析(3):与谷歌合作发展云服务
评论
查看更多