写点什么

定义未来应用程序开发的十年?英特尔正式推出统一跨架构编程模型 oneAPI

  • 2019-11-19
  • 本文字数:2726 字

    阅读完需:约 9 分钟

定义未来应用程序开发的十年?英特尔正式推出统一跨架构编程模型oneAPI

在 2019 年超级计算大会上,英特尔推出了一类专为高性能计算和人工智能融合优化的通用 GPU(Ponte Vecchio),当人们欢呼雀跃,似乎看见英伟达“一家独大”的局面被打破时,我们注意到英特尔发布的另一个计划——oneAPI。oneAPI 是一个统一的、简化的编程模型,旨在简化跨多架构的开发过程(如 CPU、GPU、FPGA、加速器),而英特尔则或许能够凭借 oneAPI,对整个芯片设计行业进行一次“大规模的洗牌”。


英特尔高级副总裁、首席架构师以及架构、图形与软件部门总经理 Raja Koduri 在2019年超级计算大会上表示:“高性能计算和人工智能工作负载需要包括 CPU、通用 GPU、FPGA,以及英特尔专用深度学习芯片 NNP 在内的多种架构。帮助客户更简便地释放不同计算环境的潜力至关重要,英特尔致力于采取软件先行的策略,为多架构提供统一可扩展的功能加速异构创新。”


统一的跨架构编程模型

英特尔:oneAPI 是一个统一的、简化的编程模型,它将定义未来应用程序开发的十年。


在 2019 超级计算大会上,英特尔发布的 oneAPI 是一个以开发者为中心的平台,英特尔方面表示 oneAPI 将提供通用、开放的编程体验,换句话说就是,开发者可以在 oneAPI 上自由选择架构,以及在使用不同的代码库、编程语言、编程工具和工作流程时,会变得更加简单。


oneAPI 主要包括两个部分:一项基于开放规范的行业计划和一款 Beta 产品。


该开放规范包括一种编程语言(DPC++)、API 函数库以及底层硬件接口。而 oneAPI Beta 产品则为开发者提供一系列的开发工具,包括编译器、编程库、分析器等,并把这些工具封装为特定领域的工具包。


初期 oneAPI Beta 版主要面向英特尔至强可扩展处理器、带集成显卡的英特尔酷睿处理器,以及英特尔 FPGA,英特尔表示,未来 oneAPI Beta 还将支持更多的硬件。


开发者可在 Intel oneAPI DevCloud 平台下载和试用 oneAPI 工具,并在software.intel.com/oneAPI网站上了解更多关于 oneAPI 的信息。


oneAPI 详解

英特尔方面表示,oneAPI 是英特尔“软件先行”战略的重要体现,他们相信这一战略将定义和引领一个人工智能日益融合、异构及多架构的编程时代。


事实上,跨架构(CPU、GPU、FPGA 及其他加速器)的开发能力对于处理数据密集型的工作负载极为重要,因为这种工作负载往往需要多种架构协同工作,从发展的角度来看,这或许会成为未来的常态。


然而,现在的情况却是,每一个硬件平台往往需要开发者去维护独立的代码库,这些代码库又需要使用不同的语言、不同的库和不同的软件工具进行编程。这就意味着,维护代码库会是一项极其复杂和耗费时间的工作,尤其是在不同语言、软件工具等客观条件影响下,不仅会大大降低开发速度还会抑制创新。


所以,相对于今天基于单个厂商的封闭式编程环境,oneAPI 带来的是一座开放、简化的桥梁,不仅能够保留其现有的软件投资,还能在这个基础上使得开发者们进入到一个新的“多架构世界”。

开放规范

数十年以来,英特尔与包括 ISO C++/Fortran Groups、OpenMP ARB、MPI Forum、The Khronos Group 在内的多个标准制定组织以及行业/学术组织携手,希望通过开放协作的方式寻求一种可实现互操作性与互换性的产品规范,而 oneAPI 项目就是这一行动的延续。


oneAPI 的开放式规范包括一种跨架构的编程语言 Data Parallel C++ (DPC++)、一套用于 API 编程的函数库以及底层硬件接口(oneAPI Level Zero)。有了这些组件,英特尔和其它企业就能创建他们自己的 oneAPI 以支持他们自己的产品,或基于 oneAPI 进行新的产品开发。


目前 oneAPI 规范内容中的很多库和组件已经开源或即将开源。可以通过访问 oneapi.com,查看具体的开源项。


DPC++是基于大众熟悉的 C 和 C++语言,专门为 oneAPI 设计的主要编程语言。它融合了来自 Kronos Group 的 SYCL*,从而可以支持跨 CPU 和加速器上的数据并行和异构编程,目的是为了简化编程以及提高代码在不同硬件上的可重用性,同时能根据特定的加速器进行调优。

DPC++语言增强将会通过一个开发者社区项目来进行扩展,以简化数据并行编程。该项目向公众开放,并将通过开发者们的共同努力不断发展。

Beta 产品

英特尔 oneAPI 基础工具包(Beta 版)包含了一系列核心工具和库,它具体包含了 oneAPI 开放式规范技术(DPC++语言、特定领域的库)和英特尔 Python*分发包来提供跨相关架构的即时加速,以及能增强分析、协助设计和调试等组件。


除英特尔 oneAPI 基础工具包外,英特尔还提供其他针对高性能计算、人工智能等专门工作负载的工具包,如:


  • 英特尔 oneAPI 高性能计算工具包(Beta 版):帮助快速交付可扩展的 C++、Fortran 和 OpenMP 应用程序。

  • 英特尔 oneAPI 深度学习框架开发者工具包(Beta 版):用于建立深度学习框架或对现有深度学习框架实现定制化。

  • 英特尔 oneAPI 渲染工具包(Beta 版):用于开发高性能、高精度的可视化应用程序(包括科学可视化)。

  • 英特尔 AI 分析工具包(Beta 版):由 oneAPI 提供技术支持,适用于人工智能开发者和数据科学家,以更好地利用机器学习和深度学习模型来构建应用。

  • 此外还有两种 oneAPI 补充工具包:为系统工程师设计的英特尔系统 Bring-Up 工具包以及面向深度学习推理和计算机视觉的生产场景的英特尔发行版 OpenVINO 工具开发包。


更多详情请访问:Intel oneAPI

哪些公司支持 oneAPI?

截至 11 月 17 日,支持 oneAPI 概念的业内领先企业和研究机构已经超过 30 家,包括高性能计算领域的领导者、人工智能领域的创新者、硬件厂商/OEM、独立软件开发商、云服务商、高校等等。虽然这项计划刚刚启动,但英特尔称,预期未来几年将会有更多参与方加入该计划。


未来趋势

随着越来越多新芯片架构和编程模型的出现,未来的通用并行计算市场仍存在很多不确定的因素,在这一角度看来,CUDA 和 OpenCL 必定不会是“通用并行计算市场”的终点。近期,英特尔副总裁 Bill Savage在接受InfoQ采访时就曾提到:“跨架构编程的开放 oneAPI 是替代 CUDA 和 OpenCL 的选项。”


我们无法确定 oneAPI 在将来究竟能不能替代 CUDA 和 OpenCL,但现在的它,无疑是为跨架构编程提供了一个新的选择。


CUDA 和 OpenCL 分别是由英伟达和苹果发起的开放规范,其中 CUDA 完全由英伟达独有,只支持英伟达的 GPU,源码和编程语言并不对外开放,但由于完整的配套生态、很好的易用性和高效的更新迭代速度而广受到机器学习应用开发者和框架开发者欢迎。

OpenCL 虽然是一个开放的编程规范且支持所有的硬件架构,但由于实现主要依靠各大硬件厂商,无法保证质量和更新速度,目前也只有 AMD 的支持做的相对成熟;OpenCL 为了支持不同硬件,存在很多冗余代码,硬件利用率不高,而且在英伟达的卡上性能不如 CUDA,在非英伟达的卡上驱动质量也是参差不齐;再加上异构代码编写复杂、文档不够清晰等缺点,OpenCL 具有一定的局限性。


2019-11-19 17:386465
用户头像
张之栋 前InfoQ编辑

发布了 91 篇内容, 共 50.3 次阅读, 收获喜欢 159 次。

关注

评论

发布
暂无评论
发现更多内容

Flux 源码之reactor 核心原理及概述

漫游指南

reactor Flux

金融级数据库新坐标:腾讯云TDSQL发布全自研新敏态引擎

腾讯云数据库

数据库 tdsql

TDSQL | HTAP系统的问题与主义之争

腾讯云数据库

数据库 tdsql

什么是色彩心理学?

坚果

心理学 11月日更

图文并茂!你管这破玩意儿叫TCP?

热爱java的分享家

Java TCP 程序人生 编程语言 经验分享

混沌工程:分布式系统稳定性的“疫苗”

中原银行

微服务 云原生 混沌工程

TDSQL | 数据异常的本质和价值详解

腾讯云数据库

数据库 tdsql

使用ABAP代码返回S/4HANA Material上维护的Attachment明细

汪子熙

SAP S/4HANA 11月日更 Material

秀出新天际的SpringBoot笔记,让开发像搭积木一样简单

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

第四范式x英特尔“AI应用与异构内存编程挑战赛”圆满收官

第四范式开发者社区

打造数字化软件工厂 —— 一站式 DevOps 平台全景解读

CODING DevOps

DevOps 研发管理 CODING

WeTest.net全球能力开放:锻造高品质产品,构建全球竞争力

WeTest

云小课 | SA基线检查---给云服务的一次全面“体检”

华为云开发者联盟

态势感知 华为云 基线检查 上云合规 全面体检

供应链安全隐患迫在眉睫,2021年全球APT攻击暗藏何种趋势?

科技热闻

如何使用SAP CRM Marketing Survey创建一个市场问卷调查

汪子熙

SAP abap 11月日更 Survey

大咖说·未来组织的底层逻辑

大咖说

云计算

Java 处理表格,真的很爽!

程序员鱼皮

Java

保持清洁的Git提交记录,三招就够了

Geek_1df311

Java 开源 架构 git 学习

前端避坑指南丨辛辛苦苦开发的APP竟然被判定为简单网页打包?

YonBuilder低代码开发平台

分析师机构发布中国低代码平台现状分析报告,华为云AppCube为数字化转型加码

华为云开发者联盟

低代码 数字化 华为云 低代码平台 AppCube

如果你正在准备面试TCP,看这一篇就够了

热爱java的分享家

Java 架构 程序人生 编程语言 经验分享

业务流程建模,你真的做对了吗

明道云

这一次,飞书改变「飞书」

ToB行业头条

TDengine助力顺丰科技大数据监控改造

TDengine

tdengine 时序数据库

嵌入式系统软件开发:你需要知道的一切

龙智—DevSecOps解决方案

嵌入式系统 嵌入式系统软件开发

TDSQL | 云时代,我们到底需要怎样的数据库?

腾讯云数据库

数据库 tdsql

欢迎 Apache ShardingSphere 社区海外新晋 Committer!

SphereEx

开源社区 ShardingSphere SphereEx Committer

恒源云(GPUSHARE)_教你如何团队合作搞算力!

恒源云

人工智能 深度学习 云算力

Docker心经

卫先生

Python 编译器 编译器远程连接docker docker常用命令 docker总结

Alibaba 新产 SpringCloud Aliababa(全彩第四版)开源

Geek_1df311

Java 编程 架构 微服务

Go语言学习查缺补漏ing Day4

Regan Yue

Go 语言 11月日更

定义未来应用程序开发的十年?英特尔正式推出统一跨架构编程模型oneAPI_AI&大模型_张之栋_InfoQ精选文章