英特尔将 oneAPI 提升为最重要的“下一次点击”
英特尔的 Joe Curley 表示,从使用 Python 工作的数据科学家到使用汇编语言工作的数据科学家,都需要一种开放、高性能的 Nvidia CUDA 替代方案。
“生成式”人工智能的兴起都与扩展有关,即向计算机程序添加更多资源以获得更好的结果。正如 OpenAI 联合创始人兼首席科学家 Ilya Sutskever 所说,当他创立创建 ChatGPT 的公司时,“我坚信越大越好”。
这种计算规模越来越大的想法引发了一场为人工智能开发最强大芯片的竞赛,其中不仅包括 Nvidia 的新型 GPU,还包括英特尔的 Habana Labs,该实验室在基准测试中表现出了令人印象深刻的结果;和 Advanced Micro Devices,以及 Cerebras Systems 等初创公司。
芯片开发的热潮带来了一个非常实际的问题:开发人员应该如何为不断扩大的具有独特功能和独特编程环境的芯片类型进行开发?
“我们有 GPU、我们有 TPU、我们有 FPGA——所有这些东西都在市场上达到了不同的、美妙的设计点,但如果你考虑一下开发者体验方面,就会发现,哦, ,你如何编程?”英特尔副总裁兼软件产品和生态系统总经理 Joe Curley 在接受 ZDNET 采访时说道。
芯片始终取决于可用于使用这些芯片的开发工具;无论一个芯片有多么出色,如果没有任何东西可以用来编写它,那么它只是一堆硅片。
英特尔的答案是oneAPI,这是一种开源编程规范,其源代码发布在GitHub上,旨在使开发人员能够在不了解所有芯片的所有细节的情况下实现多种芯片的并行处理。
上周对于 oneAPI 来说是重要的一周,因为它宣布该规范将被重新制定为统一加速基金会(UXL),由 Linux 基金会的联合开发基金会托管。 UXL 的创始“指导成员”包括芯片世界的其他巨头:ARM Holdings、高通、富士通、三星以及谷歌。
UXL 指导委员会负责人 Rod Burns 称上周 UXL 的发布是“异构计算的关键时刻”。
英特尔副总裁乔·柯利
Curley 表示:“oneAPI 是一种软件编程模型,它试图创建一个通用抽象层,允许您通过通用语言和通用库接口对不同品牌的加速器进行编程。”
自 2020 年 12 月以来,英特尔一直在发布自己的开源规范实现。oneAPI 的组件包括一种名为 DPC++ 的跨平台并行化语言,它是一种名为 SYCL 的开源编程语言的改编版本,基于 C++ 构建编程语言,由 Khronos Group 管理。
去年6月,英特尔收购了苏格兰爱丁堡的初创公司CodePlay,这是一家并行编译器供应商。该交易为 SYCL 带来了英特尔在跨设备编译方面的专业知识。
oneAPI 还具有一系列用于不同功能的库,例如 oneDNN,用于加速矩阵乘法基元。
有关 oneAPI 规范的更多详细信息,请参阅该技术的规范页面。
编译器技术和库提供了不同的人工智能编程方法。一种是从数据科学家的角度出发,简单地从 PyTorch 和 TensorFlow 等流行的人工智能框架向下工作,并使用库来并行化该代码。
Curley 表示,oneAPI 的重点是“瞄准”并行编程连续体中从未标准化的部分。
Curley 说,在并行计算中,很多时候,“你从完全抽象的语言 Python 开始,通过一些库基础设施来获得加速,”一切都是在数据科学家的幕后完成的。另一方面,C++ 或 Fortran 程序员向编译器给出明确的提示,以并行化 GPU 的代码。”
“oneAPI 的用处是,下一次点击,也就是说,我知道我正在写入加速器,我知道我将使用加速器,所以我想瞄准该设备,并且我我想编写最佳代码,而且我实际上关心性能,”Curley 说。
“这确实是你陷入像 oneAPI 这样的想法的地方,而诀窍是,在连续体的这一部分中,从来没有成功的标准化工作,”他说。 Nvidia 的 CUDA 主导了 AI 框架的构建,但它并不开放。
“CUDA 是公司拥有的一种语言,他们有自己的兴趣,我相信他们在这方面做得很好,但他们的兴趣不是建立一个多元化的社区,”Curley 观察到。
“OpenCL 对此进行了尝试,取得了一些成功,但许多开发人员发现 OpenCL 很麻烦:头文件很多,效率不高。”
Curley 观察到,同样由 Khronos Group 维护的 OpenCL 的方法存在分歧。 “你有一个主机页面和一个加速器页面,你必须以不同的方式思考”这两种设备。
“SYCL 所做的是,它创建了一种更直观的单页语言,嘿,我正在编写代码,我希望您以这种方式在该设备上运行此 C++ 代码,”Curley 解释道,“而不是说,我将拥有一个主机代码和一个设备代码并管理这两个代码,然后在底部链接它们。”
“所以它的作用是,在你接触到那些正在编写汇编和内在函数之类的东西之前,为连续体的这一部分提供一个开放且富有成效的答案。”
Curley 将 SYCL 描述为比以前的并行计算工作“更现代”,“从人们过去 13 年从编程加速器中学到的东西中学到了很多东西”。
oneAPI 的目标与英特尔副总裁兼人工智能和分析总经理李伟去年告诉 ZDNET 的目标一致,即通过克服技术障碍,使用“软件作为通往人工智能无处不在的桥梁”。
收购 CodePlay 带来的技术使跨平台编译更像是按钮式方法。 “在我们的编译堆栈之上,他们提供了一个插件,可以直接进入我们的工具链,让您可以为 AMD 或 Nvidia GPU 生成代码,”Curley 说。
“因此,如果您今天从头开始,我们拥有一个环境,您不必为一个人编写然后移动,您可以使用 SYCL 语言编写,然后移植到您喜欢的任何设备。”
Curley 表示,按钮功能不仅可以减轻编程负担,还可以减轻编程负担。它还涉及代码的可移植性,这有其自身的吸引力。
“这对于工业系统中的一类客户来说非常重要,他们将其放入飞机或可能需要使用 20 或 30 年的产品中,您不想仅仅与一种语言或一家公司联系在一起。实际维护原因,”柯利观察到。
oneAPI 将如何对抗 CUDA 在市场上十多年的领先地位以及 Nvidia GPU 的巨大安装基础?
Curley 表示,“如果你可以选择在开放式工具链上构建,也可以选择在封闭式工具链上构建,那么一般来说,开放式会获胜”,这是看待这一问题的一种方式。
同时,这些事情需要时间。
“这是新的,”他谈到 oneAPI 时说道,“我们确实正处于旅程的开始。”就“另一种语言”而言,正如他所指的 CUDA,“在最初的 8、9 年里,它在很大程度上是一种小众语言,即使在今天,它仍然只为专业从业者提供一定的空间。”
“这里的想法是,如果我们能够制作出更普遍、更开放、更像 C++ 的东西,那么,老实说,它会创造一个很好的替代方案。”

