写点什么

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

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

关注

评论

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

华为云技术专家分享4大举措,助力开发者开启鸿蒙原生应用开发

华为云开发者联盟

HarmonyOS 端云协同 ArkTS 开发者、

传统身份安全的局限性

芯盾时代

身份安全 统一身份认证 零信任模型

阿里巴巴API:赋能电商创新,革新1688商品详情获取方式

代码忍者

API 测试 pinduoduo API

VMware ESXi 7.0U3q macOS Unlocker & OEM BIOS 2.7 Dell HPE 联想定制版 9 月更新发布

sysin

esxi dell hpe

GitHub上 Star 数量最多的 Airtable 开源替代者

NocoBase

GitHub 开源 低代码 Airtable 无代码

金川集团:建设世界一流财务管理体系,向万亿营收冲刺

用友BIP

Java 性能分析 5 大工具

FunTester

重磅发布!国内首部《智能化软件开发落地实践指南》免费下载

华为云开发者联盟

代码开发 大模型 人工智能’ CodeArts

火山引擎边缘智能亮相“地瓜机器人开发者大会”,推动端侧大模型应用与落地

火山引擎边缘云

物联网 边缘计算 机器人 智能IoT边缘服务

数字化智能工厂的主要功能组成

万界星空科技

数字化 智能工厂 智能制造 万界星空科技mes MES、

红旗携“中国之路” 创汽车工业新篇章

编程猫

VMware ESXi 8.0U3 集成 AQC 网卡定制版更新 OEM BIOS 2.7 支持 Windows Server 2025

sysin

esxi aqc

VMware Aria Automation Orchestrator 8.18 发布,新增功能概览

sysin

vmware aria

云栖实录 | MaxCompute 迈向下一代的智能云数仓

阿里云大数据AI技术

大数据 数据仓库 云数据 MaxCompute Data+AI

鸿蒙 Next 实战: 环境搭建

北桥苏

鸿蒙 鸿蒙Next HarmonyOS NEXT

厌倦了黑底白字?用 Go 给终端点颜色瞧瞧!

江湖十年

终端 命令行 Go web #go

还不知道这个原则的程序员,要小心了

禅道项目管理

程序员 软件测试 代码规范 测试人员 规范优先原则

《Programming from the Ground Up》阅读笔记:p147-p180

codists

汇编 编程人

10月才是秋招主战场!

王磊

SpringBoot3实战:实现接口签名验证

江南一点雨

Java开发分析工具:JProfiler 14 for Mac 激活版

你的猪会飞吗

JProfiler 14激活版 JProfiler 14 mac JProfiler 14破解版

技术解读GaussDB (for MySQL)流控机制

华为云开发者联盟

GaussDB 流控 MySQL 5.7

第七在线7thonline荣耀加冕 斩获“最佳数据洞察平台”与“产业互联网最具发展潜力企业”两项大奖!

第七在线

迎接国庆旅游热潮,火山引擎数据飞轮助力景区数智化升级

字节跳动数据平台

增长 数智化转型 大数据‘’ 数据飞轮

Web 性能优化|了解 HTTP 协议后才能理解的预加载

阿里技术

性能优化 Web HTTP 用户体验 网站性能

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