Concurrent kernels in OpenCL

Does NVIDIA’s OpenCL implementation support this? I tried creating a command queue with CL_QUEUE_OUT_OF_ORDER_EXEC_MODE_ENABLE and pushing several kernels into it, but it has little effect on the execution time even though I’m purposely choosing problem sizes that underuse the GPU.

Out-of-order execution doesn’t imply concurrency.

Although if you specify OoO and the kernels don’t have chain dependencies (events to wait for), I can imagine the runtime could attempt to launch them concurrently on a CC2.0 card if it’s smart enough.

Whether it is smart enough, I don’t know. I’d be pleasantly surprised if it was…

Well, I don’t know what other mechanism in the OpenCL runtime would allow you to issue kernels concurrently. I guess the runtime could pull from different command queues or something as well.

The new fermi based gpu’s should be able to execute kernels concurrently. this is one of the highlight features of the 4XX series.
you can always execute kernels concurrently on two or more separated gpu’s.

The new fermi based gpu’s should be able to execute kernels concurrently. this is one of the highlight features of the 4XX series.
you can always execute kernels concurrently on two or more separated gpu’s.

Fermi are the only GPUs that can execute concurrent kernels and they’ve only been around for a couple of months. OpenCL hasn’t caught up yet.

There’s no mechanism that explicitly schedules kernels to execute concurrently. Perhaps multiple command queues could work but it’s not specified that they should - the specs only say you can have multiple queues to one device, not a word on what that implies.

Fermi are the only GPUs that can execute concurrent kernels and they’ve only been around for a couple of months. OpenCL hasn’t caught up yet.

There’s no mechanism that explicitly schedules kernels to execute concurrently. Perhaps multiple command queues could work but it’s not specified that they should - the specs only say you can have multiple queues to one device, not a word on what that implies.