英特尔副总裁Bill 跨架构编程的开放oneAPI是替代CUDA和OpenCL的选项 Savage (英特尔副总裁白鹏)

英特尔副总裁Bill 跨架构编程的开放oneAPI是替代CUDA和OpenCL的选项 Savage (英特尔副总裁白鹏)

在 2018 年底的英特尔架构日上,英特尔首席架构师 Raja Koduri 对外公布了公司正在着力研发的一件“大事”:一个名为 oneAPI 的软件编程框架。oneAPI 是英特尔在通用并行计算架构上的最新尝试,也是英特尔旨在应对硬件芯片架构未来日益多元化问题的前瞻之作。顾名思义,oneAPI 旨在提供一个跨不同硬件架构的统一编程接口,使开发者可以随意在底层硬件之间切换和优化,它不仅支持英特尔的 CPU、GPU、FPGA 以及各种 AI 和其他应用的硬件加速器,也对外部所有硬件厂商开放。oneAPI 的口号是“让每一个晶体管都派上用场”,这也很好地总结了 oneAPI 的终极目标。

当然,支持并行/异构计算的统一编程框架并非英特尔独一家,在此之前开发者群体更为熟悉的是英伟达的 CUDA 和由苹果发起的开放规范 OpenCL。其中 CUDA 完全由英伟达独有,只支持英伟达的 GPU,源码和编程语言并不对外开放,但由于完整的配套生态、很好的易用性和高效的更新迭代速度而广受机器学习应用开发者和框架开发者欢迎。OpenCL 相比 CUDA 好的地方在于它是一个开放的编程规范且支持所有硬件架构,但缺点比优点更多,OpenCL 虽有“开放”的美名,但由于实现要靠各大硬件厂商,无法保证质量和更新速度,目前只有 AMD 的支持做的相对成熟,其他架构支持做的不太好;为了支持不同硬件,存在很多冗余代码,硬件利用率不高;在英伟达的卡上性能不如 CUDA,在非英伟达的卡上驱动质量参差不齐;异构代码编写复杂且文档不够清晰。

随着越来越多新芯片架构和编程模型的出现,未来的通用并行计算市场仍存在很多不确定因素,CUDA 和 OpenCL 肯定不是终点。按照英特尔规划的技术路线图,oneAPI 测试版将在今年第四季度开放给开发者。在英伟达和 CUDA 已经占据先发优势的前提下,英特尔的 oneAPI 是否能激起新的浪花?同为开放规范,OpenCL 已经遇到的问题是否也会成为 oneAPI 的挑战?这些问题让我们更加期待 oneAPI 测试版本的推出。

在此之前,开发者对于 oneAPI 还有许多好奇:与 CUDA、OpenCL 相比,英特尔的 oneAPI 有何不同之处?具备哪些优势?oneAPI 的架构是如何设计的?怎么做到让不同硬件架构发挥最佳性能?oneAPI 的推出可能会给开发者带来什么变化?在英伟达和 CUDA 已经占据先发优势的前提下,英特尔计划怎么打造 oneAPI 的开发者生态和社区?

近日,InfoQ 记者有幸在英特尔北京总部专访了 英特尔架构、图形与软件部副总裁兼计算性能与开发者产品部门总经理 William (Bill) Savage 英特尔架构、图形与软件部副总裁兼编译器与语言部门总经理 Alice Chan ,围绕 oneAPI 的架构设计、定位、与现有同类产品的差异点和未来规划做了深入探讨。

oneAPI 既是开放规范也是产品

InfoQ:首先请您对 oneAPI 做一个总体的介绍。

InfoQ:哪些领域能从 oneAPI 这个项目中受益?

为什么我们还需要一种全新的编程语言?

InfoQ:能否再详细聊一聊 oneAPI 中的新编程语言 DPC++?

InfoQ:对于 HPC 编程和 AI 框架开发这两个领域的开发者来说,现在大家已经在使用的编程语言和 oneAPI 的 DPC++之间的关系是什么样的?DPC++对原有的这些编程语言是辅助性的还是替代性的?

InfoQ:相比 CUDA、C++,DPC++有什么不同之处?

InfoQ:学习 DPC++这种新语言的难度大吗?

InfoQ:英特尔是否准备了参考设计方案帮助开发者更快的上手 oneAPI 项目?你们采取哪些措施让 oneAPI 更好更快的推广?

应对芯片架构碎片化挑战的解法

InfoQ:英特尔指出了 SVMS 这种硬件产品上的架构多元化趋势;同时,业界还有一种声音认为,市面上层出不穷的 AI 芯片带来的架构碎片化会打击开发者在实际软件产品中应用 AI 的积极性。架构多元化跟架构碎片化是同一回事吗?这给 one API 中跨平台统一编程带来了什么样的挑战?

InfoQ:如果说出现了一个新的硬件产品(比如下一代 GPU),对于使用 AI 框架的开发者来说是否不需要再针对新的硬件做任何改动了?

InfoQ:那么英特尔打算如何推动不同的硬件厂商来支持 oneAPI?

InfoQ:您提到会邀请其他厂商参与到 oneAPI 这个项目中,英特尔会怎么去吸引他们参与其中?

InfoQ:相比英伟达的 CUDA,英特尔的 oneAPI 平台有什么独特优势?

InfoQ:前一段时间 英伟达开放了一部分GPU硬件接口文档 ,这会对其封闭的生态带来一些不同吗?

如何实现 CPU、GPU、FPGA 整体性能最优?

InfoQ:如果把 oneAPI 应用在 GPU、FPGA 等其他非英特尔 CPU 硬件上面,oneAPI 如何保证像在 CPU 一样达到最佳性能?

InfoQ:实际使用中 oneAPI 可能一次计算要用到 CPU、GPU、FPGA 等不同硬件上,oneAPI 回怎么规划算力分配?是 oneAPI 自动调整还是由开发者指定?

围绕 oneAPI 的开源生态

InfoQ:英特尔的 OpenVINO 深度学习视觉应用软件工具包也是横跨英特尔的不同架构硬件平台,并且已经应用到实际案例当中,是否对 One API 的开发有可以借鉴的经验?

InfoQ:OpenVINO 和 oneAPI 之间有什么关联,它们是两个分开的工具吗?

InfoQ:英特尔在开源软件方面有长期的投入,也已经有了很多项目。未来 one API 项目如何跟英特尔其他的开源软件项目配合?

InfoQ:对于这部分不开源的组件,只有商业上的合作才能使用吗?

InfoQ:目前来看 oneAPI 项目是不是在对标英伟达?未来英特尔对 oneAPI 有多高的期待?

InfoQ:英特尔打算怎么打造 oneAPI 的开发者社区?

采访嘉宾介绍:

William (Bill) Savage, 英特尔架构、图形与软件部副总裁兼计算性能与开发者产品部门总经理。

Alice Chan, 英特尔架构、图形与软件部副总裁兼编译器与语言部门总经理。

声明:本文来自用户分享和网络收集,仅供学习与参考,测试请备份。