英特尔oneAPI-优秀的异构模型

如今异构开发越来越复杂,软件和硬件的使用越来越纷繁。在芯片方面,有CPU、GPU、FPGA等多种模式,语言方面又有JAVA、C++、python等多个种类,在选择开发架构时,多种多样的硬件和软件选择让人头疼不已。因此,推出一种能够适合多种架构的模型显得很有必要。

oneAPI能够支持广泛的行业生态系统,适配不同架构和来自不同供应商的硬件。除此之外,oneAPI可以共享内存空间,并且代码可移植,因此oneAPI是推进开发标准化和适配不同架构的优异模型。

随着人工智能的兴起,各种AI芯片方兴未艾。所谓的AI芯片通常又叫做AI加速器或计算模块,即专门用来解决计算机领域中的大规模运算任务的芯片。有鉴于此,intel也开始推出AI芯片。由于这些芯片多种多样,有基于CPU的,有基于GPU的,还有基于FPGA之类的,因此引入oneAPI很有必要,因为oneAPI可以跨各种芯片和语言编程,从而避免了选取硬件和软件的复杂性。

oneAPI在程序迁移上具有极高的性能,可以将用 CUDA 编写的代码迁移至 DPC++,尽可能生成人类可读的代码,大约90-95%的代码通常会自动迁移。

OneAPI应用到了DPC++,而DPC++的全名则为Data Parallel C++。Data Parallel意为数据并行,基于C语言与C++语言的融合。DPC++是一个采用国际标准的开放性跨行业编程语言,并作为独立结构的专用编程语言,可支援跨CPU、跨加速器的数据并行工作,并可允许开发者进行异编程。DPC++存在的最大价值,就是能够改善代码、增加代码在各种硬件上的可重复使用性能,并且还能够通过专门的加速器进行调优。

关于oneAPI实现程序迁移的实现方法如下,只有单个文件时,只需要输入相应的命令行即可完成迁移。面对CUDA工程时,需要通过Makefile或者CMake来管理工程,同时使用DPCT进行移植。

以上就是关于oneAPI异构的介绍,我相信oneAPI会是未来的大趋势。

你可能感兴趣的:(oneapi)