NVIDIA CUDA(Compute Unified Device Architecture)
CUDA是由NVIDIA推出的通用并行计算架构,解决的是用更加廉价的设备资源,实现更高效的并行计算。
CUDA C/C++架构中所采用的LLVM架构。
OpenCL(Open Computing Language)、SYCL
OpenCL是第一个面向异构系统通用目的并行编程的开放式、免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器、桌面计算系统、手持设备编写高效轻便的代码,而且广泛适用于多核CPU、GPU、Cell类型架构以及DSP等其他并行处理器。
SYCL是OpenCL的高级编程模型。一种基于C++异构平行编程框架,用来加速高性能计算,机器学习,内嵌计算,以及在相当宽泛的处理器构架之上的计算量超大的桌面应用。这些处理器包括了CPU,GPU,FPGA和张量加速器。
C++ AMP(Accelerated Massive Parallelism)
C++ AMP)通过利用数据并行硬件(如GPU来加速C+ +代码的执行。 通过使用 C++ AMP,你可以为多维数据算法编写代码,以便可以通过在异类硬件上使用并行来加速执行。 C++ AMP 编程模型包括多维数组、索引、内存传输、平铺和数学函数库。 你可以使用 C++ AMP 语言扩展来控制数据在 CPU和GPU之间的移动方式,从而提高性能。
Intel oneAPI、DPC++(Data Parallel C++)
oneAPI是基于标准建立的一种统一的开放式编程模型。让用户凭一个API同时调用CPU,GPU(Xe),FPGA(Altera),ASIC(Habana)。
DPC++,Data Parallel是数据并行。DPC++基于C和C++,并融合SYCL。