You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are 2 ways of running a kernel. Some of the examples use alpaka::exec<Acc>(queue, workdiv...) some others use createTaskKernel<Acc> and enqueue functions.
Should all the examples use the same approach?
The text was updated successfully, but these errors were encountered:
I am wondering if it makes more sense to remove alpaka::exec<Acc>() and provide alpaka::enqueue<Acc>(queue, workdiv, kernel) or alpaka::enqueue(alpaka::TagGpuCudaRt, queue, workdiv, kernel)?
I do not see a real reason why we have two different names to enqueue a kernel. That we have different function signatures makes IMO sense.
@psychocoderHPC the CMS code is using alpaka::exec() because it's shorter, and people normally don't have any reason to use the other alpaka::enqueue() variants.
offline discussed in the dev meeting: We will keep both methods. alpaka:exec() is heavily used by CERN and will for compatibility reasons stay. @fwyzard also mentioned that we need to take care that enqueue can enqueue generic tasks, this could be device kernels but also nonparallel host tasks.
I also said that I will provide an enqueue() interface similar to alpaka::exec() but after looking into a fix for #2222 I am not sure about the possible additional interface for enqueue.
I try to fix first #2222 and then will revisit this issue.
There are 2 ways of running a kernel. Some of the examples use
alpaka::exec<Acc>(queue, workdiv...)
some others usecreateTaskKernel<Acc>
andenqueue
functions.Should all the examples use the same approach?
The text was updated successfully, but these errors were encountered: