数据洪流下,AI、5G等新技术催生的创新应用带来更加多元化的估算需求,这就要求定制化的估算构架。因此,英特尔提出了“xPU”策略,也就是英特尔不再局限于CPU(向量估算),而是向GPU(矢量估算)、AI(矩阵估算)和FPGA(空间估算)进行延伸。
基于此,我们看见英特尔建立了一个包含CPU、GPU、AI加速器、FPGA,以及如神经拟态估算等面向未来的估算构架。在这样的估算构架支撑下,我们正在迈向超异构估算时代。
在超异构估算时代,英特尔确立了制程和封装、架构、内存和储存、互连、安全、软件六大技术支柱,全方位推进估算创新发展。在这其中,英特尔软件是促进未来计php算创新的隐型力量。
软件加速硬件指数级创新
毋庸置疑,英特尔在硬件层面的创新是有目共睹的。并且步入到超异构估算时代,估算力指数级上升的实现一定是基于硬件与软件的结合。所以英特尔利用“软件先行”的战略,加快硬件和软件的共同创新,来推动异构估算的整合和创新,实现估算力指数级下降,满足未来多样化的估算需求。
在以数据为中心的战略指引下,英特尔不光在硬件层面进行创新,还在软件层面进行投入。由于整个估算构架不是原先的单一CPU构架,须要针对不同的构架和负载进行整合,软件在中间起了一个最关键的桥梁作用。
虽然,英特尔在软件领域的投入是巨大。英特尔在全球大约十万到十一千人,软件工程师占到15%左右(15000名左右)。而在中国,英特尔亚太研制中心即将职工超过2000人,是囊括英特尔各个产品部在中国最大的、最完整的综合性研制机构,拥有世界一流的工程研制能力。
英特尔通过软件实现软硬协同、生态共赢:提供简便可扩充的工具,来加速应用开发布署;坚持顾客至上,针对不同类型的工作负载进行优化;秉持开放理念,促进开源、开放生态系统协作;校企对接,培植面向未来的创新人才。
在软件生态预制构件中,开发者是重要一环。英特尔早已深入开发者生态领域超过20年,并有10000项与顾客紧密合作的软件布署,是linuxKernel最大的贡献者,每年更改的代码超过50万行linux操作系统论文,为100多个操作系统进行过优化,但是拥有超过两千万活跃开发者的生态,而那些只是英特尔庞大的软件实力的一部份。英特尔跨基础构架、网络、操作系统的开发经验,开发工具和SDK以及其所参与并影响的标准制订组织的数目在业界是无与伦比的。
基于这样深厚的底蕴,英特尔希望通过“统一构架编程”,围绕构架创新进行扩充,而且让所做的一切都是简便和可扩充的。英特尔软件所做的事情使所有的硬件的每一个晶体管都还能能力充分发挥上去xpu盘安装redhat双系统,促使开发者才能十分容易地把软硬件充分用上去。
oneAPI构建统一构架编程
跨构架(CPU、GPU、FPGA及其他加速器)开发能力对于处理数据密集型工作负载极为重要,由于这些工作负载须要多种构架,这也将成为未来的常态。不过多构架编程面临众多挑战例如专用工作负载日渐增多、尚无通用编程语言或API、不一致的跨平台工具支持、每个平台须要单独的软件投资、需采用不同的以数据为中心的硬件等。
在明天,每一个硬件平台常常须要开发者维护独立的代码库,这种代码库须要使用不同的语言、库和软件工具进行编程。这是一项非常复杂和花费时间的工作,会大大减低开发速率、抑制创新。
为了解决这样的业界困局,英特尔发布了一项全新软件行业计划oneAPI。oneAPI为异构估算提供了一个统一和简化的应用程序开发编程模型,这些统一性为开发者提供了一个统一的开发体验,由于其面对不同的异构硬件,她们不须要学习不同的编程技巧。
具体来说,oneAPI基于标准的跨构架语言DataParallelC++和SYCL功能强悍的API,借以加速特定领域的主要功能底层硬件插口,可为供应商提供硬件具象层,支持针对不同的构架和供应商重复使用代码。也就是说oneAPI支持直接编程和API编程,并提供统一的语言和库,可以在包括CPU、GPU、FPGA和AI加速器等不同硬件构架上提供完整的本地代码性能。oneAPI的简单易用和高性能让开发者不再须要维护不同的代码库、多种编程语言以及不同的工具和工作流程。
英特尔对于未来估算的展望和承诺是:SVMS构架(S是Scal编程酒店ar标量,V是Vector向量,M是Matrix矩阵,S是Space空间),也就是我们上面提及的超异构估算。而在SVNS构架之上,英特编程酒店尔建立oneAPI,对这种硬件进行了具象。开发者针对的是这个具象来写程序xpu盘安装redhat双系统,而不是具体的硬件。在oneAPI是框架和中间件框架提供了更初一层的具象和语义,开发者可以在里面快速开发,高效布署。
我们可以将oneAPI理解成英特尔的中间件层,里面有各类不同类型的行业应用,假如你要调英特尔底层的硬件,就统一用oneAPI进行研制。诸如面向视觉估算的OpenVINO就是建立在oneAPI之上,支持CPU、FPGA、Movidius、GPU等,编撰一次之后可以通过异构的插口支撑跑在其他的硬件平台之上。
oneAPI以开发者为中心,是为多构架并存的世界重新定义的一种新编程方法,让开发者可以自由选择构架,无需在性能上做出妥协,也大大增加了使用不同的代码库、编程语言、编程工具和工作流程所带来的复杂性。oneAPI产品为开发者提供了全套的开发工具,包括编译器、编程库、分析器等,并把这种工具封装为特定领域的工具包。
oneAPI保留了现有软件投资,包括支持现有语言,同时为开发人员创造更多丰富的应用程序提供了灵活性,帮助她们在保留现有软件投资的基础上,搭建一座无缝联接的桥梁,因而为未来的多构架世界创造更多丰富的应用程序。例如oneAPI支持中级移植、分析和调试工具,包括英特尔Vtune剖析器、英特尔Advisor等,其中英特尔DPC++兼容性工具支持CUDA代码迁移。
除此以外,oneAPI包括了一项基于开放规范的行业计划,该规范包括一种编程语言、强大的API函数库以及底层硬件插口。例如DataParallelC++可提供跨平台数据并行性支持,而SYCL是全行业举办的一项标准化工作,借以定义面向C++的跨平台数据并行性支持。这就意味着各个不同加速器提供商可以在oneAPI框架里提供对它自己硬件的支持,虽然早已有第三方通过oneAPI对于NVIDIA的CUDA进行下层的封装,这样对于开发人员来讲,他也可以oneAPI支持NVIDIA的GPU,其想像空间巨大。
本文由编程酒店用户投稿,未经编程酒店同意linux源代码分析,禁止转载。如广大用户同学,发觉稿件存在不实报导,欢迎读者反馈、纠正、举报问题(反馈入口)。
本文标题:让开发者更轻松英特尔oneAPI加速统一跨构架编程