SYCL 和 OpenACC 是竞争框架吗?还是互补?
Are SYCL and OpenACC competing frameworks? or complementary?
我正在收集有关异构计算的信息。我遇到过 SYCL 和 OpenACC。我收集到 OpenACC 有许多 pragma 指令(类似于 OpenMP)来抽象 GPU 计算(OpenCL 或 CUDA 或两者兼而有之??)。然而,在我看来,SYCL 也试图抽象代码的 GPU 部分。
那么,SYCL 和 OpenACC 是相互竞争的框架还是可以相互补充?
如果它们是免费的,我可以一起使用它们吗?
我无法理解这些框架之间的差异,在我看来它们是竞争对手。
网上关于OpenACC和SYCL的资源还是挺多的,大家可以多看看。它们完全不同,OpenACC 与 OpenMP 更相似,但主要侧重于仅支持 Nvidia 硬件。 SYCL 可用于针对来自不同供应商的更多样化的处理器集,并使用标准 C++ 代码。
简而言之:
与 OpenMP 一样,OpenACC 支持 directive-based 并行编程,例如通过使用 #pragma 标记要并行的代码 运行。相比之下,SYCL更类似于CUDA,使用C++代码并行执行代码,并行代码(内核)是用C++编写的。
这 slide deck 可能会帮助您更好地了解 SYCL。
我正在收集有关异构计算的信息。我遇到过 SYCL 和 OpenACC。我收集到 OpenACC 有许多 pragma 指令(类似于 OpenMP)来抽象 GPU 计算(OpenCL 或 CUDA 或两者兼而有之??)。然而,在我看来,SYCL 也试图抽象代码的 GPU 部分。
那么,SYCL 和 OpenACC 是相互竞争的框架还是可以相互补充? 如果它们是免费的,我可以一起使用它们吗?
我无法理解这些框架之间的差异,在我看来它们是竞争对手。
网上关于OpenACC和SYCL的资源还是挺多的,大家可以多看看。它们完全不同,OpenACC 与 OpenMP 更相似,但主要侧重于仅支持 Nvidia 硬件。 SYCL 可用于针对来自不同供应商的更多样化的处理器集,并使用标准 C++ 代码。
简而言之:
与 OpenMP 一样,OpenACC 支持 directive-based 并行编程,例如通过使用 #pragma 标记要并行的代码 运行。相比之下,SYCL更类似于CUDA,使用C++代码并行执行代码,并行代码(内核)是用C++编写的。
这 slide deck 可能会帮助您更好地了解 SYCL。