oneAPI为何重要?
oneAPI是英特尔“软件先行”战略的重要体现,英特尔相信这一战略将定义和引领一个人工智能日益融合、异构及多架构的编程时代。
跨架构(CPU、GPU、FPGA及其他加速器)开发能力对于处理数据密集型工作负载极为重要,因为这种工作负载需要多种架构,这也将成为未来的常态。在今天,每一个硬件平台往往需要开发者维护独立的代码库,这些代码库需要使用不同的语言、库和软件工具进行编程。这是一项极其复杂和耗费时间的工作,会大大降低开发速度、抑制创新。
为了解决这一难题,oneAPI提供一个通用、开放的编程体验,让开发者可以自由选择架构,无需在性能上作出妥协,也大大降低了使用不同的代码库、编程语言、编程工具和工作流程所带来的复杂性。相对于今天的基于单个厂商的封闭式编程环境,oneAPI为开发者提供了极富竞争力、也更先进的可替代选择,帮助他们在保留现有软件投资的基础上,搭建一座无缝连接的桥梁,从而为未来的多架构世界创造更多丰富的应用程序。
为什么英特尔能够应对这项挑战?
英特尔已经深入开发者生态领域超过20年。英特尔拥有15000多名软件工程师和10000项与客户紧密合作的软件部署,是Linux kernel最大的贡献者,每年修改的代码超过50万行,为100多个操作系统进行过优化,并且拥有超过两千万活跃开发者的生态,而这些只是英特尔庞大的软件实力的一部分。
英特尔跨基础架构、网络、操作系统的开发经验,开发工具和SDK以及其所参与并影响的标准制定组织的数量在业界是无与伦比的。凭借深耕行业多年的积累和英特尔软件工程团队数百万个小时的努力,英特尔正通过创建一个统一的编程模型,推动开发普及化,简化困难,为开发者创造一个更具移植性、更高效且性能更高的编程环境,来帮助开发者应对未来的挑战。
为什么需要一个开放式规范?
数十年以来,英特尔与包括ISO C++/Fortran Groups、OpenMP* ARB、MPI Forum、The Khronos Group在内的多个标准制定组织以及行业/学术组织携手,希望通过开放协作的方式寻求一种可实现互操作性与互换性的产品规范,而oneAPI项目就是这一行动的延续。oneAPI将实现与现有行业标准的互操作性。最新oneAPI规范可在oneAPI计划官网oneAPI initiative site 。查阅。
oneAPI开放式规范包括哪些内容?
这一开放式规范包括一种跨架构的编程语言Data Parallel C++ (DPC++)、一套用于API编程的函数库以及底层硬件接口(oneAPI Level Zero)。有了这些组件,英特尔和其它企业就能创建他们自己的oneAPI实现来支持他们自己的产品,或基于oneAPI进行新产品开发。
Data Parallel C++是什么?
DPC++是基于大众熟悉的C和C++语言,专门为oneAPI设计的主要编程语言。它融合了来自Kronos Group的SYCL*,从而可以支持跨CPU和加速器上的数据并行和异构编程,目的是为了简化编程以及提高代码在不同硬件上的可重用性,同时能根据特定的加速器进行调优。
DPC++语言增强将会通过一个开发者社区项目来进行扩展,以简化数据并行编程。该项目向公众开放,并将通过开发者们的共同努力不断发展。
oneAPI规范内容将会开源吗?
很多库和组件已经开源或即将开源。
哪些公司将支持或参与oneAPI计划?
截至11月17日,支持oneAPI概念的业内领先企业和研究机构已经超过30家,包括高性能计算领域的领导者、人工智能领域的创新者、硬件厂商/OEM、独立软件开发商、云服务商、高校等等 。其中很多也积极参与了oneAPI beta版工具包的测试并提供反馈意见。
这项计划刚刚启动,英特尔预期未来几年将会有更多参与方加入该计划。企业在创建自己的oneAPI实现并完成自我认证后即可以使用全新oneAPI计划品牌和标识。
不同的oneAPI Beta版工具包都包含了什么?
英特尔 oneAPI 基础工具包(Beta版)包含了一系列核心工具和库,为构建和部署跨架构的高性能以数据为中心的应用而开发。它具体包含了oneAPI开放式规范技术(DPC++语言、特定领域的库)和英特尔® Python*分发包来提供跨相关架构的即时加速,以及能增强分析、协助设计和调试等组件。