oneAPI打造统一架构编程
时间:2022-04-01 17:48:01 | 来源:行业动态
时间:2022-04-01 17:48:01 来源:行业动态
跨架构(CPU、GPU、FPGA及其他加速器)开发能力对于处理数据密集型工作负载极为重要,因为这种工作负载需要多种架构,这也将成为未来的常态。不过多架构编程面临诸多挑战比如专用工作负载日益增多、尚无通用编程语言或 API、不一致的跨平台工具支持、每个平台需要单独的软件投资、需采用不同的以数据为中心的硬件等。
在今天,每一个硬件平台往往需要开发者维护独立的代码库,这些代码库需要使用不同的语言、库和软件工具进行编程。这是一项极其复杂和耗费时间的工作,会大大降低开发速度、抑制创新。
为了解决这样的业界难题,英特尔发布了一项全新软件行业计划oneAPI。oneAPI为异构计算提供了一个统一和简化的应用程序开发编程模型,这种统一性为开发者提供了一个统一的开发体验,因为其面对不同的异构硬件,他们不需要学习不同的编程方法。
具体来说,oneAPI基于标准的跨架构语言Data Parallel C++和SYCL功能强大的API,旨在加速特定领域的主要功能底层硬件接口,可为供应商提供硬件抽象层,支持针对不同的架构和供应商重复使用代码。也就是说oneAPI支持直接编程和API编程,并提供统一的语言和库,可以在包括CPU、GPU、FPGA和AI加速器等不同硬件架构上提供完整的本地代码性能。oneAPI的简单易用和高性能让开发者不再需要维护不同的代码库、多种编程语言以及不同的工具和工作流程。
英特尔对于未来计算的展望和承诺是:SVMS架构(S是Scalar标量,V是Vector向量,M是Matrix矩阵,S是Space空间),也就是我们前面提到的超异构计算。而在SVNS架构之上,英特尔构建oneAPI,对这些硬件进行了抽象。开发者针对的是这个抽象来写程序,而不是具体的硬件。在oneAPI是框架和中间件框架提供了更高一层的抽象和语义,开发者可以在上面快速开发,高效部署。
我们可以将oneAPI理解成英特尔的中间件层,上面有各种不同类型的行业应用,如果你要调英特尔底层的硬件,就统一用oneAPI进行研发。比如面向视觉计算的OpenVINO就是构建在oneAPI之上,支持CPU、FPGA、Movidius、GPU等,编写一次以后可以通过异构的接口支撑跑在其他的硬件平台之上。
oneAPI以开发者为中心,是为多架构并存的世界重新定义的一种新编程方式,让开发者可以自由选择架构,无需在性能上作出妥协,也大大降低了使用不同的代码库、编程语言、编程工具和工作流程所带来的复杂性。oneAPI产品为开发者提供了全套的开发工具,包括编译器、编程库、分析器等,并把这些工具封装为特定领域的工具包。
oneAPI保留了现有软件投资,包括支持现有语言,同时为开发人员创造更多丰富的应用程序提供了灵活性,帮助他们在保留现有软件投资的基础上,搭建一座无缝连接的桥梁,从而为未来的多架构世界创造更多丰富的应用程序。比如oneAPI支持高级移植、分析和调试工具,包括英特尔Vtune分析器、英特尔Advisor等,其中英特尔DPC++兼容性工具支持CUDA代码迁移。
除此以外,oneAPI包括了一项基于开放规范的行业计划,该规范包括一种编程语言、强大的API函数库以及底层硬件接口。比如Data Parallel C++可提供跨平台数据并行性支持,而SYCL是全行业开展的一项标准化工作,旨在定义面向C++的跨平台数据并行性支持。这就意味着各个不同加速器提供商可以在oneAPI框架里提供对它自己硬件的支持,其实已经有第三方通过oneAPI对于NVIDIA的CUDA进行上层的封装,这样对于开发人员来讲,他也可以oneAPI支持NVIDIA的GPU,其想象空间巨大。
开发人员从现在开始就可以在英特尔DevCloud for oneAPI上对基于多种英特尔架构(包括英特尔至强可扩展处理器、带集成显卡的英特尔酷睿处理器、英特尔FPGA如英特尔Arria、Stratix等)的代码和应用进行测试。它是一个开发系统,支持使用英特尔的oneAPI测试版软件在所有英特尔CPU、GPU和FPGA上开发、测试和运行工作负载。用户无需下载,无需购买硬件,无需安装,无需设置和配置,即可使用英特尔oneAPI工具套件,了解 Data Parallel C++,评估工作负载,构建异构应用,设计项目原型。
目前oneAPI还是Beta测试版,预计2020年Q4发布正式版。毕竟oneAPI是一个全新的开发编程模型,足够长的测试期可以收集更多开发人员的反馈,完善产品。只有更多的开发者使用oneAPI,其价值才会凸显出来。
oneAPI的发布源自英特尔数百万小时软件工程开发的努力,并且标志着一个行业内的变革,从今天受限、封闭的编程方法演变到一个开放的、基于标准的模式,助力开发人员实现跨架构的参与和创新,为全球开发人员提供一座从现有代码和技能过渡到即将来临的xPU时代的桥梁。
oneAPI是英特尔借助软件力量充分释放硬件性能这一长期探索之旅的第一步,也是重要一步。目前英特尔正在与高校、合作伙伴等通过将oneAPI引入学校课程、线下Workshop等让更多开发者认识和使用oneAPI,同时通过开发人员指南、培训、英特尔工具支持论坛、ISV和应用支持等加速oneAPI的落地。