Hi,
I'm trying to use the kernel in the attached file, it is with the tiled convolution example from AMD with few minor changes (
I had to changed the use of pointers to access vector data types. e.g. from :
*(__local float4*)&lclPlane[lcloffset4] = horiz_filter;
into:
= vload4(0,&lclPlane[offset4]);
The file get compiled ok, but I get CL_INVALID_VALUE -30 for clCreateKernel..
Couldn't figure out why the clCreateKernel fails, and I should note that it works on Intel and Nvidia OpenCL sdks.
I'm using sabre lite board with linaro-ubuntu-desktop
The opencl device:
DEVICE_NAME = Vivante OpenCL Device
DEVICE_VENDOR = Vivante Corporation
DEVICE_VERSION = OpenCL 1.1
DRIVER_VERSION = OpenCL 1.1
Will appreciate your help.
Original Attachment has been moved to: kernel.cl.zip
You are probably out of the kernel arguments limit. I think it was 9 for vivantes opencl platform. Check it by querying device for opencl info.
There is a limit to the number of constants arguments ( CL_DEVICE_MAX_CONSTANT_ARGS ).
The example uses only 1 constant arguments so I don't think that this is the problem.
Moreover, I deleted to content of the kernel and left only its header, than I tried to call clCreateKernel for this empty kernel and it worked. This means that this issue has something to do with the kernel content.
You are right. Have you checked the instruction count? Old vivante drivers supported very limited count of instructions per kernel. I dont know what they did on more recent drivers. Try seperating your kernel. And do you know the version of the ocl driver you are using?
Thanks, I will try to seperate the kernel.
I don't know the exact number - when querying the device I only get :
DEVICE_NAME = Vivante OpenCL Device
DEVICE_VENDOR = Vivante Corporation
DEVICE_VERSION = OpenCL 1.1
DRIVER_VERSION = OpenCL 1.1
How can I tell the driver version ? and where can I found newer drivers to download ?
Sorry to bother you. I am new bee, i just can not compile opencl c file on a new MX6 Q platform. my system is L3.0.35 linaro, when compiling, libopencl.so got many undefined references:
/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../../lib/libOpenCL.so: undefined reference to `gcoCL_DestroyTexture'
/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../../lib/libOpenCL.so: undefined reference to `gcInvokeThreadWalker'
/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../../lib/libOpenCL.so: undefined reference to `gcSHADER_GetConstantMemorySize'
/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../../lib/libOpenCL.so: undefined reference to `gcSHADER_GetUniform'
/usr/lib/gcc/arm-linux-gnueabi/4.6.1/../../../../lib/libOpenCL.so: undefined reference to `gcoOS_DeleteMutex'
I have got gpu-viv-bin-mx6q_1.1.0-1_armel.deb installed, there must be something with wrong configuration.
Could you help me?
thanks in advance!
Try to add -lGAL to your linker line
thanks a lot!
But i got a segmentation fault when running, do you know the reason?
Sorry, I can't tell without looking at your code.