Page 1 of 1

Difference between sdfcl / opencl /Ropencl

PostPosted: Wed Feb 17, 2016 1:56 am
by byhuang
hi guys,

There are two opencl program api stdcl/opencl/Ropencl in examples.
I just understand the opencl is the same as opencl standard/api from Khronos Group.
But I don't know the difference between stdcl ,opencl and Ropencl.

Could someone help me to explain the strengths and weaknesses(performance, programmability or others)

Thanks!

Re: Difference between sdfcl / opencl /Ropencl

PostPosted: Thu Feb 18, 2016 3:05 am
by jar
STDCL is a lightweight interface to OpenCL. Both are part of the COPRTHR SDK from Brown Deer Technologies. The kernel (device) code is the same for both OpenCL and STDCL. I don't know about Ropencl. I believe the OpenCL standard supported is 1.1 or 1.2. OpenCL is a GPU API and it can work with Epiphany, but it's not ideal. OpenCL threads are generally lightweight and there are hundreds or thousands in flight. In the case of Epiphany-III, there are "just" 16 cores and they're much more capable than a GPU processing element. OpenCL also has the concept of workgroups with shared memory, which are not a physical thing on the Epiphany. Additionally, Epiphany cores can share data by copying or accessing memory mapped regions directly. Basically, the OpenCL works fine for trivially parallel jobs, but lacks the semantics necessary to fully exploit the Epiphany processor without extensions that break the OpenCL specification, and thus portability.