Page 1 of 1

communication time

PostPosted: Fri Apr 17, 2015 2:37 pm
by Nader_Jendoubi
HI

i'm trying to optimize the sobel application https://github.com/sclukey/parallella-o ... ter/opencl

I think the transmission time between epiphany(kernel) and ARM is too long, when i took the initial sobel program and delete all the instructions and i tried gbb[i] = gaa[i]

the time measured is 0.33 second .

Is there any solution to minimize the transmission time between ARM and epiphany ???

Re: communication time

PostPosted: Sat Apr 18, 2015 5:58 am
by nickoppen
I agree. The communication overhead between the epiphany and the ARM is large.

I don't think that there is any technical way of reducing the transmission time. The fundamental speed is governed by the bandwidth of the channel.

Having said that:

1. Only send data that you need to send and no more
2. copy the inbound data to local storage, process it locally and then transmit the results (see http://nicksparallellaideas.blogspot.com.au/2015/02/opencl-on-parallella-structure.html).
3. Keep the kernel itself as small as you can
4. try and figure out a way of sending the next block of data while the kernel is still running (if you find a way to do this please let me know)

nick

Re: communication time

PostPosted: Sat Apr 18, 2015 6:51 pm
by Nader_Jendoubi
Do you think stdcl.h isn't optimized for parallella ???OpenCl other libraries will show better results??

Re: communication time

PostPosted: Sun Apr 19, 2015 12:14 am
by nickoppen
The Brown Deer libraries are available on a number of platforms. I don't know how optimised they are for any of them.

If you can find another OpenCL library for the epiphany give it a try and let us all know how it goes.

Personally, I'm not concerned about bandwidth issues. It is something that I can't control and will improve over time. I'm just focused on getting efficient routines working correctly. The efficiency comes from the optimal use of all of the power available within the constraints of the platform. Communication overhead is just one of those constraints.