写点什么

定义未来应用程序开发的十年?英特尔正式推出统一跨架构编程模型 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:387099
用户头像
张之栋 前InfoQ编辑

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

关注

评论

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

化蛹成蝶,华为云DevCloud助力互联网+转型,重构钢铁产业链

华为云开发者联盟

Scrum 代码 华为云 devcloud 敏捷管理

算法喜刷刷之1021删除最外层的括号

Kylin

算法 28天写作 3月日更 21天挑战

B2B 产品市场中「价值营销」的 8 个关键词

To B Park

java String长度有限制吗?

ddww

万象:百度的海量多媒体信息处理系统

百度Geek说

大数据 搜索引擎 百度 后端 #富媒体#

智汇华云 | ArcherOS Stack共享存储虚拟化技术剖析

华云数据

登顶GLUE榜单的文心又开课了,一站式教学搞懂信息抽取

百度大脑

百度大脑 GLUE 信息抽取 EasyDL

StarRocks在中移物联网PGW实时会话业务领域的应用

StarRocks

大数据 数据分析 物联网 IoT OLAP

前端工程化之H5性能优化篇

百度Geek说

百度 大前端 H5

告别交通拥堵和数据孤岛,区块链成智慧交通发展新基石

CECBC

交通

智慧物流迎利好,当代电商倒逼传统产业链变革升级

一只数据鲸鱼

物联网 数据可视化 供应链 智慧城市 智慧物流

《Out of Tar Pit》总结

陈皓07

JDBC—配置SQLyog

打工人!

MySQL JDBC SQLyog

php in_array的低性能

架构精进之路

php 3月日更

告别交通拥堵和数据孤岛,区块链成智慧交通发展新基石

旺链科技

区块链应用 智慧交通

霸榜Git!2021年阿里巴巴Java面试权威指南(泰山版)

Java架构追梦

Java 架构 面试 泰山版

【实战问题】-- 高并发架构设计以及超领现象解决?

秦怀杂货店

Java 架构 高并发

网络编程及通信三要素

五分钟学大数据

大数据 网络编程 28天写作 3月日更

《Redis 核心技术与实战》学习笔记 03

escray

redis 学习 28天写作 3月日更 Redis 核心技术与实战

孤寡程序猿找女朋友的方法论

不脱发的程序猿

程序员 找对象 28天写作 3月日更 脱单

【LeetCode】翻转链表Java题解

Albert

算法 LeetCode 28天写作 3月日更

阿里P8大牛手把手教你!这是一份面向Android开发者的复习指南,快来收藏!

欢喜学安卓

android 程序员 面试 移动开发

JDBC—连接数据库工具类(JDBC_Utils)

打工人!

Java JDBC java工具类 操作数据库

315曝光的侵犯个人信息行为可以用区块链来规范吗?

CECBC

区块链

Linkis 1.0.0-RC1 版本发布

康月牙

Github上2021最新最全面的面试题库(Java岗)程序员不容错过

比伯

Java 编程 程序员 架构 面试

BI掌柜系统开发案例详情丨BI掌柜开发源码功能

系统开发咨询1357O98O718

编译android源码!2021年Android面试心得,学习路线+知识点梳理

欢喜学安卓

android 程序员 面试 移动开发

JDBC—对数据库的通用增删改查

打工人!

Java 数据库事务 MySQ JDBC crud

Serverless 时代 DevOps 的最佳打开方式

阿里巴巴云原生

Serverless DevOps 微服务 运维 云原生

2021年技术预测:从云计算到边缘以及两者之间的一切

云计算 边缘计算

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