英特尔将oneAPI推进为“下一次重要的点击”

Intel promotes oneAPI as the next big step.

“生成式”人工智能的崛起完全是关于规模化的,即通过为计算机程序添加更多资源以获得更好的结果的理念。正如OpenAI联合创始人兼首席科学家Ilya Sutskever所说,“我非常坚信越大越好”,这就是他创立能够创建ChatGPT的公司的初衷。

这种越来越大的计算理念导致了对于开发最强大的AI芯片的竞赛,其中包括不仅是Nvidia的新型GPU,还有Intel的Habana Labs,在基准测试中表现出色的AMD以及Cerebras Systems等初创公司。

此外:生成式人工智能能解决计算机科学中最大的未解之谜吗?

开发芯片的这种急切需求引发了一个非常实际的问题:开发人员如何为具有独特功能和独特编程环境的不断扩大的芯片种类进行开发?

“我们有GPU,我们有TPU,我们有FPGA——这些东西在市场上具有不同的出色设计点,但如果你考虑开发者体验方面,就是像‘哦,你要如何编程呢?’”英特尔软件产品和生态系统副总裁兼总经理Joe Curley在接受ENBLE采访时表示。

芯片始终依赖于可用于使用这些芯片的开发工具;无论芯片有多好,如果没有用于开发的工具,它只是一堆硅。

英特尔的解决方案是oneAPI,这是一个开源的编程规范,其源代码发布在GitHub上,旨在使开发人员在不了解所有芯片的所有细节的情况下实现对多种芯片的并行处理。

此外:扩展ChatGPT:AI聊天机器人插件真的能改变游戏规则吗?

上周是oneAPI的重要一周,因为宣布该规范正在重新制定为统一加速基金(UXL),由Linux基金会的联合开发基金托管。UXL的创始“指导成员”还包括芯片界的其他巨头:ARM Holdings、高通、富士通、三星以及谷歌。

UXL的指导委员会负责人Rod Burns称上周UXL的发布是“异构计算的关键时刻”。

英特尔副总裁Joe Curley

“oneAPI只是一个软件编程模型,旨在通过通用语言和通用库接口为不同品牌的加速器编程,它试图创建一个共同的抽象层,”Curley说。

自2020年12月以来,英特尔一直在推出自己的开源规范实现。oneAPI的组件包括一种名为DPC++的跨平台并行语言,它是建立在C++编程语言上的开源编程语言SYCL的适应版本,并由Khronos Group管理。

此外:ChatGPT究竟是如何工作的?

去年6月,英特尔收购了苏格兰爱丁堡的初创公司CodePlay,这是一家供应并行编译器的公司。这笔交易为SYCL的跨设备编译带来了英特尔的专业知识。

oneAPI还提供了一系列用于不同功能的库,例如用于加速矩阵乘法的oneDNN。

有关oneAPI规范的更多详细信息可在该技术的规范页面上查看。

编译器技术和库提供了不同的AI编程方法。其中一种方法是从数据科学家的角度开始,直接从流行的AI框架(如PyTorch和TensorFlow)向下工作,并使用库来并行化代码。

此外:Nvidia在AI基准测试中占据主导地位,但英特尔带来了有意义的竞争

Curley表示,oneAPI的目的是“针对”并行编程连续体的一个部分,而这一部分以前从未标准化。

Curley说,在并行计算中,很多时候,“你从完全抽象的语言(如Python)开始,通过某些库基础架构来获得加速,”数据科学家的一切都是在幕后进行的。他说,在光谱的另一端,以C++或Fortran编写的程序员向编译器明确提供线索,以使代码并行化以适应GPU。

“oneAPI的作用是,它是下一层次的一种点击,我知道我在写给一个加速器,我知道我将要使用一个加速器,所以我想要针对这个设备编写最佳代码,我真正关心的是性能,”Curley说。

“这就是oneAPI的真正作用,而问题在于,在这个连续的部分中,从来没有成功的标准化努力,”他说。有Nvidia的CUDA,它主导了AI框架的构建,但它并不开放。

此外:人工智能能编写代码吗?只是初步尝试

“CUDA是一个由一家公司拥有的语言,他们有他们自己的利益,我相信他们在这方面做得很好,但他们的兴趣并不在于建立一个多样化的社区,”Curley观察到。

“OpenCL试图解决这个问题,取得了一些成功,但很多开发人员发现OpenCL很繁琐:有很多头文件,它并不是特别高效。”

Curley观察到,OpenCL的方法也是由Khronos Group维护的,它是分割的。“你有一个主机页面和一个加速器页面,你必须以不同的方式思考这两个设备。”

“Sickle的方法是,它创建了一种更直观的单页语言,它会说,嘿,我在写代码,我希望你以这种方式在那个设备上运行这段C++代码,”Curley解释说,“而不是说,我将有一个主机代码和一个设备代码,并管理这两个,然后在底部将它们链接在一起。”

此外:如何使用ChatGPT编写代码

“所以它所做的就是提供了对连续部分的一种开放和高效的解决方案,你知道,在你达到那个在汇编和内嵌代码中编写的人之前。”

Curley将SYCL描述为比以前的并行计算努力“更现代的起点”,通过“从前13年人们在编程加速器方面所学到的东西中学到了很多。”

oneAPI的目标与英特尔副总裁兼AI和分析总经理李伟去年告诉ENBLE的目标一致,即利用“软件作为到达AI的桥梁”,克服技术障碍。

CodePlay的收购为跨平台编译提供了更多的一键式方法。“在我们的编译栈之上,他们提供了一个插件,可以直接集成到我们的工具链中,以便为AMD或Nvidia GPU生成代码,”Curley说。

此外:软件领导者的新角色:监督生成性AI

“因此,如果你今天从零开始,我们有一个环境,你不必为一个人编写代码然后再移植,你可以使用SYCL语言编写代码,然后将其移植到你喜欢的任何设备上。”

Curley说,这种一键式的特点不仅仅是为了减轻编程负担,还与代码的可移植性有关,这也具有自己的吸引力。

“对于工业系统中的一类客户,这一点非常重要,他们将这些技术应用于飞机或其他可能需要存在20或30年的设备上,因为出于实际维护原因,你不希望被绑定在一种语言或单一公司上,”Curley观察到。

oneAPI将如何与CUDA在市场上拥有十年以上的领先地位以及Nvidia GPU的庞大装机基础竞争?

此外:AI在编码方面很厉害,但也存在一些重大限制

“如果你可以选择在一个开放的工具链上进行构建,还是在一个封闭的工具链上进行构建,一般来说,开放的会胜出,”Curley说。

与此同时,这些事情需要时间。

“这是新的,”他提到了oneAPI,“我们真正处于旅程的开端。”对于“那种其他语言”,他指的是CUDA,“在前8或9年里,它非常独特,即使在今天,它仍然只是针对某个特定领域的专业从业者。”

“这里的想法是,如果我们能够创造出一种更广泛、更开放、更类似于C++的东西,那么,老实说,它就会成为一个很好的替代方案。”