SYCL和OpenACC是否在竞争框架?或互补?

问题描述

我正在收集有关异构计算的信息。我遇到过SYCL和OpenACC。我认为OpenACC具有许多编译指示(类似于OpenMP)来抽象GPU计算(OpenCL或CUDA或两者兼有?)。但是,在我看来,SYCL也在尝试提取代码的GPU部分。

那么,SYCL和OpenACC是竞争框架还是它们可以互相补充? 如果它们是免费的,我可以一起使用吗?

我在理解这些框架之间的差异时遇到了麻烦,在我看来它们似乎是竞争对手。

解决方法

Internet上有很多关于OpenACC和SYCL的资源,您可以检查这些资源以了解更多信息。它们是完全不同的,OpenACC与OpenMP更相似,但主要致力于仅支持Nvidia硬件。 SYCL可以用于针对来自不同供应商的更多处理器集,并使用标准C ++代码。

简而言之:

像OpenMP一样,OpenACC启用基于指令的并行编程,例如通过使用#pragma标记要并行运行的代码。相比之下,SYCL与使用C ++代码并行执行代码的CUDA更相似,并行代码(内核)是用C ++编写的。

slide deck可以帮助您更好地了解SYCL。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...