英特尔首推异构编程神器 oneAPI,可以让程序员少加班!

2019-12-23 |  作者:佚名 |  来源:互联网 |  查看原文

摘要当下,异构计算如日中天,开发者在同一个数据中心里,既需要在CPU里做虚拟机,又需要在FPGA里做各种压缩,还需要在GPU里做深度学习。

条漫文案/正文 | 胡巍巍

条漫设计 | 付费下载自稿定设计

出品 | CSDN(ID:CSDNnews)

程小猿的难处,相信你也感同身受。

当下,异构计算如日中天,开发者在同一个数据中心里,既需要在CPU里做虚拟机,又需要在FPGA里做各种压缩,还需要在GPU里做深度学习。

因此,开发者得在数据中心里,安装很多硬件、和运行很多软件。这种情况下,开发者不加班才怪呢!

如果CPU、FPGA和GPU等,还是各自为政,当你的应用要扩容、硬件要升级时,或者哪怕你想做出任何改变,成本都非常高。

如果架构再发生变化,这等于你之前的付出,全部白费!

打个比方,某天中午,你既想吃天妇罗,还想吃水煮鱼,但这一个是日料、一个是川菜,你想同时吃到,就得分别去一家日料店和一家川菜馆。

有没有办法,可以让你在一家餐厅,就同时吃到鹅肝和水煮鱼呢?

当然有!去自助餐厅就可以。

而前文提到的oneAPI,正是英特尔为了让开发者能够自由享用“自助餐服务”而推出的,赋予开发者灵活选择各种架构进行任意组合的惬意

那么,oneAPI是一个怎样的产品?

四问oneAPI:是啥、干啥、啥时用、咋用

oneAPI是啥

在2019年超级计算大会上,oneAPI beta产品发布。

oneAPI beta产品,包括直接编程工具(Data Parallel C++)、基于API的编程工具、以及分析工具和调试工具等组件。oneAPI beta还可以把这些工具,封装为特定领域的工具包。

概括来说,oneAPI是一个统一和简化的编程模型,它的诞生使命,在于简化跨多架构的开发过程(如CPU、GPU、FPGA、加速器)。

它也是英特尔首创的自助餐式服务。举个例子,银行、物流、医院、工厂等不同行业的开发者,他们的需求,都不尽相同。在某一个硬件上,开发者用的可能是CPU+FPGA,也可能是GPU+FPGA。

但是跨不同的硬件、CPU、GPU和AI,有比较多复杂硬件的异构性。而oneAPI提供了更加简单的方法(+微信networkworldweixin),来统一编程框架,让程序员在不同的硬件架构上,感受到统一的开发体验,这对于程序员来讲工作就会非常方便。

短短数月内,支持oneAPI的企业和机构已经超过30家。它们中间,既有一线厂商,还有名牌高校。

oneAPI干啥

它最重要的作用,就是帮你实现异构编程!

打个比方,oneAPI和异构编程的关系,有点像携号转网,当然这个“转网”,不需要有关部门的批复。

有了oneAPI,你在某一个数据中心里开发的东西,可以从CPU挪到FPGA上,也可以从NVIDIA的GPU挪到英特尔的GPU上。

此外,oneAPI还能简化各种架构的开发流程;它还可以统一语言和函数库,使其变得更简单,从而有利于表达并行化;oneAPI还拥有很好的本机高级语言性能;并能够与现有HPC编程模型互操作。

oneAPI啥时用

当下,oneAPI beta版已经发布。

而oneAPI的库和组件们,要么已经开源,要么即将走向开源。

俗话说,车马未动,粮草先行。

英特尔已在北京和上海,举办oneAPI beta研讨会,通过开发者的试用和反馈,来对oneAPI做出优化。一年后的2020年四季度,一个准备完美的oneAPI,就会和你见面。

oneAPI咋用

当下的oneAPI beta版,主要面向英特尔至强可扩展处理器、带集成显卡的英特尔酷睿处理器,以及英特尔FPGA。

如果你感兴趣,可以在Intel oneAPI DevCloud平台下载和试用oneAPI工具。想了解更多oneAPI详情,则可以戳software.intel.com/oneAPI。

DPC++:专门为oneAPI设计的编程语言

好马还要配好鞍,为了让你更丝滑地使用oneAPI。基于英特尔在架构和编译器领域积累的多年经验,英特尔专门给oneAPI,设计了一款名叫DPC++的编程语言。

它的全称叫Data Parallel C++,Data Parallel是数据并行的意思。它基于C和C++,并融合SYCL(OpenCL的高级编程模型)。

三剑合一,让DPC++能支持跨CPU、跨加速器的数据并行,并能让你实现异构编程。

可以说,DPC++存在的意义,正是为了简化编程、提高代码在不同硬件上的可重用性。此外,它还能根据特定的加速器进行调优。

未来可期:开发者如何享受oneAPI利好?

oneAPI大部分都是开源的,你可以按照自己的想法,在上面做拓展。

此外,oneAPI的诞生原因之一,便是为了减轻开发者工作量、以及方便开发者进行跨架构编程。

正因为oneAPI的是开源的,所以它也是瞬息万变的。

而它的变化,正取决于开发者对于oneAPI生态的贡献。

英特尔通过投入大量人力、物力,已经给oneAPI设立好起点。

接下来,就需要开发者和英特尔一起,来将oneAPI推得更高!

然后,水涨船高后,受益者就是你。

话说回来,谁说程序员工资高,都是加班加出来的?工具用得好,下班回家早!oneAPI用起来!

相关文章