您现在的位置: 首页 > 营销资讯营销资讯
让开发者更轻松 英特尔oneAPI加速统一跨架构编程
发布时间:2019-12-23作者:青鸾传媒来源:全网营销点击:
数据洪流下,AI、5G等新技术催生的创新应用带来更加多元化的计算需求,这就要求多样化的计算架构。为此,英特尔提出了“xPU”策略,也就是英特尔不再局限于CPU(向量计算),而是向GPU(矢量计算)、AI(矩阵计算)和FPGA(空间计算)进行延展。
基于此,我们看到英特尔构建了一个包含CPU、GPU、AI加速器、FPGA,以及如神经拟态计算等面向未来的计算架构。在这样的计算架构支撑下,我们正在迈入超异构计算时代。
在超异构计算时代,英特尔确立了制程和封装、架构、内存和存储、互连、安全、软件六大技术支柱,全方位推动计算创新发展。在这其中,英特尔软件是推动未来计算创新的隐形力量。
软件加速硬件指数级创新
毋庸置疑,英特尔在硬件层面的创新是有目共睹的。但是进入到超异构计算时代,计算力指数级上升的实现一定是基于硬件与软件的结合。所以英特尔借助“软件先行”的战略,推进硬件和软件的共同创新,来引领异构计算的整合和创新,实现计算力指数级增长,满足未来多元化的计算需求。
在以数据为中心的战略指引下,英特尔不光在硬件层面进行创新,还在软件层面进行投入。因为整个计算架构不是原来的单一CPU架构,需要针对不同的架构和负载进行整合,软件在中间起了一个最关键的桥梁作用。
其实,英特尔在软件领域的投入是巨大。英特尔在全球大概十万到十一万人,软件工程师占到15%左右(15000名左右)。而在中国,英特尔亚太研发中心正式员工超过2000人,是涵盖英特尔各个产品部在中国最大的、最完整的综合性研发机构,拥有世界一流的工程研发能力。
英特尔通过软件实现软硬协同、生态共赢:提供简便可扩展的工具,来加速应用开发部署;坚持客户至上,针对不同类型的工作负载进行优化;秉承开放理念,推动开源、开放生态系统协作;产学研对接,培育面向未来的创新人才。
在软件生态构件中,开发者是重要一环。英特尔已经深入开发者生态领域超过20年,并有10000项与客户紧密合作的软件部署,是Linux Kernel最大的贡献者,每年修改的代码超过50万行,为100多个操作系统进行过优化,并且拥有超过两千万活跃开发者的生态,而这些只是英特尔庞大的软件实力的一部分。英特尔跨基础架构、网络、操作系统的开发经验,开发工具和SDK以及其所参与并影响的标准制定组织的数量在业界是无与伦比的。
基于这样深厚的积淀,英特尔希望通过“统一架构编程”,围绕架构创新进行扩展,并且让所做的一切都是简便和可扩展的。英特尔软件所做的事情使所有的硬件的每一个晶体管都能够能力充分发挥起来,使得开发者能够非常容易地把软硬件充分用起来。
oneAPI打造统一架构编程
跨架构(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,其想象空间巨大。
本文由青鸾传媒用户投稿,未经青鸾传媒同意,严禁转载。如广大用户朋友,发现稿件存在不实报道,欢迎读者反馈、纠正、举报问题(反馈入口)。
免责声明:本文为用户投稿的文章,青鸾传媒发布此文仅为传递信息,不代表青鸾传媒赞同其观点,不对对内容真实性负责,仅供用户参考之用,不构成任何投资、使用建议。请读者自行核实真实性,以及可能存在的风险,任何后果均由读者自行承担。