程小猿的难处,相信你也感同身受。
当下,异构计算如日中天,开发者在同一个数据中心里,既需要在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提供了更加简单的方法,来统一编程框架,让程序员在不同的硬件架构上,感受到统一的开发体验,这对于程序员来讲工作就会非常方便。
短短数月内,支持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用起来!
(免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,应及时向本网站提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明。本网站在收到上述法律文件后,将会依法尽快联系相关文章源头核实,沟通删除相关内容或断开相关链接。 )