Relation between OpenCL and Vendor

Hello all,

This is my first post here.

Sorry may be this is a silly question but i am stucked.

I have to run OpenCL on Qualcomm IFC6410 on Openembedded linux release witn Adreno GPU.
Since OpenCL is very new for me and i want some direction to build my basics regarding OpenCL.

As OpenCL is already working on IFC6410 on Android but i found only library there and no source…
I come to know that OpenCL is provided by Vendor only.

My questions is

Is OpenCL source publicly available ?

Any base code is present where Vendor put there hardware specific changes ?
If OpenCL is Vendor specific then what type of changes are required in OpenCL base code ?
From where i take a start since i found source no where.

I tried Opencl on my x86_64 PC by downloading Intel SDK for OpenCL which
provides me a library libOpenCL and headers.

I compile my sample app on my x86_64 PC which test for OpenCL support on my PC.

May be my questions are very short whose require big explanation but any type of help or start point is very good for me.

Thanks in advance

Regards
Girish Sharma

Apart from the various headers, OpenCL is provided as a binary interface, so no there is no public base code that vendors modify.

The library interface is a well-defined C interface that you can portably link against. If you write code against the Intel SDK and take your application to some other vendor’s machine, as long as you follow the specification rather than using any vendor-specific extensions or behaviour your application should run fine on the second vendor’s implementation.

[QUOTE=LeeHowes;30733]Apart from the various headers, OpenCL is provided as a binary interface, so no there is no public base code that vendors modify.

The library interface is a well-defined C interface that you can portably link against. If you write code against the Intel SDK and take your application to some other vendor’s machine, as long as you follow the specification rather than using any vendor-specific extensions or behaviour your application should run fine on the second vendor’s implementation.[/QUOTE]

Thanks LeeHowes for reply,

As you mentioned OpenCL is provided as binary interface.
So it is provided by Vendor or Khronos group ?
If provided by vendor what API standards they follow ?

So i have a library of OpenCL for IFC6410 which i have taken from Android source
when i try to compile my application with this lib it have some more dependencies which is also linked at compile time.
But main problem is created by libc.so. I gives lots of error which i am trying to resolve.

My compile command is
arm-oe-linux-gnueabi-g++ -o clDeviceQuery -I./include clDeviceQuery.cpp -L./lib -lOpenCL -lllvm-a3xx -lgsl -lstlport -llog -lcutils -lc

Is my path is right to run OpenCL on my Embedded board.

Regards
Girish Sharma

Ok i got little more understanding that libOpenCL is provided by the SOC manufacturer.
By reading this post OpenCL support for Mali-T628 MP6 on Arndale Octa?
Is it right ?

Now i want to know that libOpenCL that is working on Android can it run directly on Linux?
Or i have to recompile it from source for linux?

Regards
Girish Sharma