Intel的新野心:一套解决方案“通吃”四大架构?

8 月 28 日,英特尔软件战略及技术沟通会在北京召开。英特尔架构、图形与软件部副总裁兼计算性能与开发者产品部门总经理 William (Bill) Savage 等发言人分享了英特尔 oneAPI 的战略意义和技术细节。

Bill在此次沟通会上进一步明确了英特尔 oneAPI 要实现的目标,即以一个解决方案支持四种架构,通过跨架构、高性能、开放的统一编程语言 DPC++ 以及帮助开发者获得更高性能的库,共同帮助开发者们释放SVMS架构的全面性能。同时,他也为今年第四季度即将公布的开发者测试版本埋下了很多彩蛋。

图 | 英特尔架构、图形与软件部副总裁 Bill Savage 介绍 oneAPI(来源:英特尔)

多元化的计算时代

随着第四次工业革命的到来,产业智能化已经成为不可阻挡的趋势。当下,数据产生的速度已经超过了我们分析、理解以及保护数据的能力,数据洪流汹涌而来。这不仅体现在数据量上的爆炸性增长,更是数据形态以及数据处理方式的革命性变革。

与此同时,机器学习、人工智能、无人驾驶、工业仿真等领域的兴起使得 CPU 在数据处理过程中遇到并行度不高、带宽不够等等瓶颈,这就带来了数据处理方式和计算架构的延伸。为了应对计算多元化的需求,越来越多的场景开始引入 GPU、FPGA 等硬件进行加速,异构计算应运而生,且随着计算产业的发展不断发挥越来越重要的作用。

在过去的半个多世纪,半导体行业一直都在与摩尔定律斗争,直到近几年,“摩尔定律将死”的呼声不断出现,英伟达 CEO 也开始反复强调“摩尔定律结束了”。由此,摩尔定律的本质将不再是增加晶体管密度来推动用户体验,而是继续提供全新的技术和能力以满足现代计算的需求。

图 | 飞兆半导体(Fairchild Semiconductor)联合创始人让?霍尔尼(Jean Hoerni)在 1959 年发明了第一台平面晶体管(来源:麻省理工科技评论)

面向多元化计算需求,英特尔提出了全新的产品和技术战略,“制程和封装、架构、内存和存储、互连、安全、软件”六大支柱成为英特尔近两年反复提及的战略。面向未来 5 年,英特尔有一个大胆的工程愿景,即“在 10ms 内,向世界上每个人提供每秒万万亿次浮点运算的计算能力和 10PB 数据。”

作为英特尔关键技术支柱之一,软件对于英特尔在架构、制程、内存、互连和安全领域实现全面进步至关重要。英特尔公司副总裁兼系统软件产品部门总经理苏义德(Imad Sousou)在会上强调:“软件是英特尔的一项重要战略资产,将帮助我们挖掘商业价值,真正释放公司的整体增长潜力。”

英特尔架构、图形与软件部总经理 Raja Koduri 曾指出,“从十年前 10 亿的互联网用户增长到即将实现的 100 亿下一代设备智能互联,要想满足这种指数级增长的需求、实现指数级的用户价值,必须要硬件和软件来共同创新。”

一个解决方案支持四种架构

英特尔的 oneAPI 项目最早在去年 12 月的英特尔“架构日”中被提出,目的是为了简化跨 CPU、GPU、FPGA、人工智能和其他加速器的各种计算引擎的编程。今年 5 月,英特尔在其年度开源技术峰会上进一步阐明了在软件领域的策略,即围绕“一个架构”进行扩展。今年 6 月,英特尔在其软件技术日上再次强调 oneAPI 旨在提供一个统一的编程模型,以简化跨计算架构的应用程序开发工作。

oneAPI 支持直接编程和 API 编程,并将提供统一的语言和库,可以在包括 CPU、GPU、FPGA 和 AI 加速器等不同硬件上,提供完整的本地代码性能。

· 直接编程:One API 包括一个全新的直接编程语言Data Parallel C++ (DPC++),这是一个可替代单架构专用语言的开放式、跨行业的编程语言。通过使用开发者熟悉的编程模型,DPC++ 能够提供并行编程的效率和性能。DPC++ 以 C++ 为基础,融合了 Kronos Group的SYCL*,并包含在一个开放社区流程中开发的语言扩展。

· 基于 API 的编程:One API 强大的库跨越多个可受益于加速的工作负载领域。库函数针对每个目标架构都进行了定制编码。

· 分析与调试工具:在领先的分析工具的基础上,英特尔将提供加强版的分析与调试工具,以支持 DPC++ 和广泛的 SVMS 架构。

英特尔认为,未来十年我们将看到比过去五十年中多得多的架构提升。英特尔的产品覆盖的广泛计算架构包括标量(Scalar)、矢量(Vector)、矩阵(Matrix)和空间(Spatial),分别主要应用于 CPU、GPU、AI 加速器和 FPGA 产品。英特尔指出,在接下来五到十年中最重要的现代工作负载,就是这种标量、矢量、矩阵和空间架构的组合,英特尔称之为 SVMS 架构。

英特尔的 oneAPI,便是从软件层面来简化和统一跨 SVMS 架构的创新。Bill 介绍道:“oneAPI 既是一种行业规范,同时又是英特尔的一种产品。它可以简化并且统一跨不同架构、跨不同厂商之间的编程,它是一个鼓励社区和行业支持的一种开放、标准的解决方案。”

全新编程语言、高性能库

如今的数据中心拥有大量的多元化硬件架构。在不同的架构进行编程需要不同的工具和语言,这就意味着在软件开发过程中需要多支团队学习多种专业技能,而这种方式并不是一个高效且高性价比的软件开发方式。

“英特尔希望改变这种现状,并不仅仅是为了英特尔自己的硬件去改变,而是为全行业去改变。”英特尔架构、图形与软件部副总裁兼编译器与语言部门总经理 Alice Chan 说。

图 | 英特尔架构、图形与软件部副总裁兼编译器与语言部门总经理 Alice Chan 介绍 DPC++(来源:英特尔)

目前已经有很多编程语言,为什么英特尔要再造一种?Alice Chan 认为,尽管C++ 是底层性能非常好的语言,但是这种语言缺乏一些并行的语言特征;MATLAB 更多集中在顶层,很难在底层实现很好的性能;CUDA 能够进行平行架构的编程,可以把负载转移到加速器,但是英伟达这种语言只能用在英伟达自己的硬件上;还有其他一些语言例如 OpenCL 也能实现类似性能,但是围绕它的社群以及整体行业活跃度并不大,所以很难获得想要表现的性能。

在oneAPI项目中,英特尔携手行业开发了一种叫做Data Parallel C++(DPC++)的全新的语言,以支持实现横跨 SVMS 架构的数据并行编程。Alice Chan 指出,“英特尔现在开发的新语言 Data Parallel C++,它是开放的、基于标准的,能够跨不同的硬件架构提供高性能。为英特尔硬件和全行业提供毫不妥协的高性能和生产效率。”

同时,在程序员的技能迁移问题上,Alice Chan 表示,“如果程序员对 CUDA 很熟悉的话,他对 DPC++ 不会有任何问题。”

图 | 英特尔架构、图形与软件部首席工程师 Eric Lin 介绍统一 API 的优势(来源:英特尔)

英特尔架构、图形与软件部首席工程师 Eric Lin 介绍了英特尔基于 oneAPI 在非常热门的领域——AI、深度学习和数据分析上的布局和路线图。“在 AI 和数据分析上我们的愿景是提供最佳的计算库,并且针对这些计算库,把英特尔的硬件变成一个对开发者非常容易的抽象,使得他们所有的工作能够重复利用、更简化。”

英特尔的高性能库包括英特尔数学核心函数库(MKL)、数据分析加速库(DAAL)和面向深度神经网络的英特尔数学核心函数库(MKL-DNN)等,都已集成于 oneAPI 之中,让数据科学家、开发者和部署者实现更简单的开发、维护和高性能。

目前,英特尔已经与百度 Paddle Paddle、Facebook 等等企业合作。英特尔表示,以色列内容推荐公司 Taboola 使用英特尔至强 oneAPI,经过优化之后,达到了 2.5 倍的提升。另外,英特尔将在 2019 年第四季度发布一个 oneAPI 开发者测试版本并披露更多项目相关细节。