concurrent kernels call on diffrent cpu threads

Consider we have two threads on cpu and each call a kernel function that run on Device. can they run on gpu concurrently on the same Device?
Is it possible?

No, you can’t physically have two kernels running on a single GPU. They will get queued and executed sequentially.

Thanks for your reply.

“execute sequentially” means the first kernel completes and then second one starts. is it right?

or you mean it can switch. for example one kernel run and when it is waiting for memory access or… , the other one continues or this way at most one of kernels execute on Device.

Will future version of cuda or opencl support concurrent execution of kernels on single Device?

One kernel has to finish before the other one starts, there’s no time-slicing between kernels.

Nobody know how the future will look like :) There were some rumors about the next generation of GPUs being MIMD (somewhat) and that sort of implies concurrent kernels but it’s all just guessing.