英特尔:oneAPI让编程更简单

2019-11-29 07:28廖陆春
软件和集成电路 2019年9期
关键词:编程语言高性能开发者

廖陆春

oneAPI既作为一种规范,同时也是英特尔的一种产品,它可以简化并且统一跨不同架构以及不同厂商之间的编程,它是一个鼓励社区和行业支持的一种开放、标准的解决方案。

近期,在北京举行的英特尔软件战略及技术沟通会上,英特尔介绍了软件项目“oneAPI”的最新进展。英特尔将在2019年第四季度发布一个oneAPI开发者测试版本,并披露更多项目相关细节。该项目旨在提供一个统一的编程模型,以简化跨不同计算架构的应用程序开发工作。英特尔架构、图形与软件部副总裁兼计算性能及开发者产品部总经理Bill Savage介绍说:“oneAPI项目将为开发者带来一套能提供一个统一编程模型的工具。针对跨多种架构的工作负载,这个模型简化了相关的开发工作。目前,英特尔广泛的计算产品组合目前已经包含专用加速器,我们提供的软件解决方案将帮助开发者们充分释放硬件性能。”

oneAPI始于硬件架构

随着当今世界以数据为中心的工作负载日益多样化,处理数据的架构也日益多样化。英特尔广泛的计算架构覆盖标量(Scalar)、矢量(Vector)、矩阵(Matrix)和空间(Spatial)。这种在英特尔缩写为SVMS的架构,需要一个高效的软件编程工具来充分释放其性能。one API的简单易用和高性能满足了这个需求,同时不再需要维护不同的代码库、多种编程语言以及不同的工具和工作流程。oneAPI支持直接编程和API编程,并将提供统一的语言和库,可以在包括CPU、GPU、FPGA和AI加速器等不同硬件上,提供完整的本地代码性能。

oneAPI基于英特尔的经验以及现有的至强系列产品,从单一架构基础上进行演变,支持多架构。同时,英特尔对于多种不同架构都有很多经验积累,这也成为oneAPI背后的支持。“对于软件开发者来讲,我们拥有性能最好的分析器VTune Amplifer,我们在此基础上建立了英特尔的oneAPI产品。”Bill Savage说。

oneAPI既作为一种规范,同时也是英特尔的一种产品,它可以简化并且统一跨不同架构以及不同厂商之间的编程,它是一个鼓励社区和行业支持的一种开放、标准的解决方案。此解决方案包含两部分:第一部分是跨架构的编程语言,它使不同的语言、不同的架构,以及厂商都可以使用;第二部分是能够满足不同领域需求的跨架构库的集合。“无论是这种高级的编程语言,还是架构库,重点都放在性能上,因为在数据中心里面提供全面的性能是重中之重。”Bill Savage如是说。

直接编程语言Data Parallel C++

Data Parallel C++是英特尔现在正在开发的一种新的语言,它是开放的、基于标准的、高性能的,并且,能够跨不同的硬件架构提供高性能。Data Parallel C++的目标是能够将它提供给所有不同的硬件架构,并且保证完全的开放性。

多元化架构需要全新的编程语言,现有的C++、MATLAB等可移植编程语言和CUDA、OpenCL等数据并行编程语言,都无法满足需求。英特尔正在与行业携手开发一种全新的语言,支持实现横跨SVMS架构的数据并行编程。Data Parallel C++语言能够跨SVMS架构为英特尔和行业提供毫不妥协的高性能和生产效率。Data Parallel C++是一种基于标准的开放式跨行业语言,可替代单一架构专有语言。

数据中心拥有大量的多元化硬件架构,如果想在一个多元化的不同架构中进行编程,需要很多种不同的工具和不同语言。面对这种情况,软件开发过程中需要多支团队,他们各自要去学习很多不同专业的技能,这显然不是一种最高效的软件开发方式。“英特尔希望改变这种现状,所以英特尔开发了Data Parallel C++这种新语言,Data Parallel C++能够跨结构实现毫不妥协的性能所需的特性和抽象。”英特尔架构、图形与软件部副总裁兼编译器与语言部门总经理Alice Chan介绍说。

高性能库推动人工智能和数据分析的发展

oneAPI集成了业内顶级的计算库,包括最快速、使用最广泛的数学函数库MKL、使用经典机器学习算法的英特尔数据分析加速库DAAL,以及面向深度神经网络的英特尔数学核心函数库MKL-DNN等,充分了解底层硬件如CPU和加速器的所有细节,并为硬件提供最佳性能。“one API面向数据科学家和应用开发者提供跨SVMS架构的统一软件抽象,让所有开发者可随时获取高性能。”英特尔架构、图形与软件部首席工程师Eric Lin谈道。

在AI和数据分析上,英特尔的愿景是提供最佳的计算库,并且针对这些计算库,把英特尔的硬件变成一个对开发者非常容易的抽象,使得他们所有的工作能够重复利用、更简化。Eric Lin说:“我们也会提供工具、方法,使得我们的部署者真正地从oneAPI中获益。”

英特尔在库上试图把硬件能力抽象出来,把最重要的算法变成API,使用者不用自己针对硬件再去开发,用API就可以把硬件所有潜力发挥出来,这就是英特尔提供的高性能库。

“我们的策略是把英特尔的库集成到框架中,框架再提供给数百万数据科学家、算法工程师,他们使用它开发出真正的应用,从硬件到应用这条路就打通了。”Eric Lin谈道。

英特尔oneAPI有几个最重要的库。第一个是英特尔数学核心函数库(MKL),它里面提供了很多数列变换、矩阵计算、解方程,各种积分、微分、数学公式都在里面,它已经被世界上45%的超级计算机使用,只要是采用英特尔架构的都在使用英特尔的MKL。第二个库是英特尔的数据分析加速库(DAAL),它实现经典的机器学习算法。深度学习是机器学习的一个子类,整个机器学习实际上就是寻找一个函数,并且找到它的参数,需要大量的数据才使得这个函数能够做最佳拟合。第三个库是面向深度神经网络的英特尔数学核心函数库(MKL-DNN),英特尔把深度学习的一些关键元素抽象出来,并且提供给开发者。“所有英特尔的库都针对各种各样的英特尔的硬件进行优化。任何人只要实现了这个接口,设计了新的芯片,都可以从库里获得优化。”Eric Lin介绍说。

oneAPI在英特爾的AI和数据分析上布局,库是给一些非常愿意优化底层的人提供的抽象,未来,优化的架构向很多的数据科学家提供抽象,使他们的工作更加容易,帮助他们完成简单的开发、简单的维护并带来高性能。

猜你喜欢
编程语言高性能开发者
基于JavaScript编程语言之 闭包技术在焦点轮播上的应用
计算机软件JAVA编程优势及其应用
高性能混凝土不同配合比下的性能研究
基于计算机应用软件开发的Java编程语言研究
高性能混凝土开裂成因及控制要点
“85后”高学历男性成为APP开发新生主力军
中国E级高性能计算机原型系统正式进入研制阶段
16%游戏开发者看好VR
浪潮高性能计算用心良苦