-1

I'm gathering information about heterogeneous computing. I've come across SYCL and OpenACC. I gather that OpenACC has many pragma directives (similar to OpenMP) to abstract GPU calculations (either OpenCL or CUDA or both??). However, it seems to me that SYCL also tries to abstract GPU portions of the code.

So, are SYCL and OpenACC competing frameworks or can they compliment each other? If they are complimentary, could I use them together?

I'm having trouble understanding the differences between these frameworks and they seem to me as being competitors.

4

1 回答 1

3

There are quite a lot of resources for both OpenACC and SYCL on the internet, you could check those to understand more. They are quite different, OpenACC is more similar to OpenMP but is focused on supporting mostly just Nvidia hardware. SYCL can be used to target a more diverse set of processors from different vendors and uses standard C++ code.

In a nutshell:

Like OpenMP, OpenACC enables directive-based parallel programming, for example by using #pragma to mark the code that is to be run in parallel. By contrast SYCL is more similar to CUDA using C++ code for parallel execution of code, the parallel code (kernels) is written in C++.

This slide deck might help you to get a better view on SYCL.

于 2020-09-10T08:16:02.753 回答