AnsweredAssumed Answered


Question asked by valentin33 on Jun 14, 2012
Latest reply on Jul 2, 2012 by valentin33



I'm stuck with a CL_INVALID_KERNEL_DEFINITION with clAmdBlas.


In my OpenCL program, I have two platforms, one with 1 CPU and one with 2 GPUs (GPU1 and GPU2).

I'm creating a context for each platform, then the communication time can be 0 between GPU.

Each device has of course it's own queue.

What I'm doing then is to run a clAmdBlasSgemm on each devices. A CL_INVALID_KERNEL_DEFINITION appear when I'm running clAmdBlasSgemm on GPU2, after running the blas function well on CPU and GPU1.


Here's a pseudo for you to understand it better


for (every platforms) // HERE COMES the CPU platform then GPU platform

     for (every devices) // for CPU platform, there's only CPU, for GPU platform there's GPU1 then GPU2

          launch clAmdBlasSgemm // CL_INVALID_KERNEL_DEFINITION appear when  GPU2 comes !


What am I doing wrong ? How can I solve this problem ? Can't we make multiple call to clAmdBlasSgemm for differents devices on the same platform ?


Thanks for you help