BOINC projects with open source code?

Re: BOINC projects with open source code?

Postby Bikeman » Thu May 22, 2014 12:28 pm

Well, I guess I'm mostly puzzled because I think I have not seen any heat sinks or fans on boards that use the exact same SoC that the Parallella does. I guess the big difference is that Parallella uses the FPGA for HDMI output which those other dev boards probably don't?? Is that generating a lot of heat? Would a headless version run much cooler?

Anyway, I didn't intend sto sound negative, it's just something I genuinely don't understand.

As for the Raspberry Pi, I'm not sure I agree 100% with your comment. The GPU on the Raspi SoC is actually quite powerful, it should actually be in the same ballpark as the 16 core Parallella (the Raspi GPU is quoted with a (yeah, mythical) theoretical peak performance of ca 24 GFLOPS (!!) single precision).

Having said that, the Raspi GPU is not intended for general purpose computing, and that's where the Parallella shines and is innovative, and that's the reason I backed the project and have not regretted it.

The one none-graphics application that AFAIK has been implemented on the Raspberry Pi GPU so far is FFT.

My personal goal is to make an accelerated version of the EInstein@Home "Binary Pulsar Search" app that needs a length 3*2^22 real-to-complex FFT for both the Raspi and the Parallella.

At the moment I am quite sure the Raspi GPU will beat the 16 core Epiphany. If anyone thinks he/she can do a 3*2^22 real-to-complex FFT (single precision) faster on the Parallella than the fatest version using the RaspiPi's GPU, please let me know. I might be willing to make a formal bet out of it, with (say) a crate of beer as the prize :-).

Cheers
HBE
Bikeman
 
Posts: 52
Joined: Wed Sep 11, 2013 8:55 pm

Re: BOINC projects with open source code?

Postby 9600 » Thu May 22, 2014 3:08 pm

Bikeman wrote:Well, I guess I'm mostly puzzled because I think I have not seen any heat sinks or fans on boards that use the exact same SoC that the Parallella does. I guess the big difference is that Parallella uses the FPGA for HDMI output which those other dev boards probably don't?? Is that generating a lot of heat? Would a headless version run much cooler?


ZedBoard and Red Pitaya are both Zynq-based, employ heatsinks and there has been suggestion of using forced air cooling with them.

I found the headless bitstream brought the power consumption down by ~0.5W and so I don't think it is going to have a significant effect on the temperature. It's a compact and densely populated board —and smaller than both ZedBoard and Red Pitaya — and the Zynq dissipates a few watts, so there is no way to get round the fact that cooling will be required.

Cheers,

Andrew
Andrew Back (a.k.a. 9600 / carrierdetect)
User avatar
9600
 
Posts: 997
Joined: Mon Dec 17, 2012 3:25 am

Re: BOINC projects with open source code?

Postby Bikeman » Thu May 22, 2014 8:28 pm

ZedBoard and Red Pitaya are both Zynq-based, employ heatsinks and there has been suggestion of using forced air cooling with them.


Ah I see, I stand corrected. I guess I was misled by pictures like on http://www.zedboard.org/product/zedboard , I guess that's "electronics porn" with stripped configuration to show the components more clearly.

Thanks for the info.

Cheers
HB
Bikeman
 
Posts: 52
Joined: Wed Sep 11, 2013 8:55 pm

Re: BOINC projects with open source code?

Postby aolofsson » Thu May 22, 2014 9:29 pm

I'll take your bet regarding the FFT. That's a no brainer:-) Let's set a deadline of September 15th..that way I will have something to drink by the time my birthday comes around.:-)
Andreas
User avatar
aolofsson
 
Posts: 1005
Joined: Tue Dec 11, 2012 6:59 pm
Location: Lexington, Massachusetts,USA

Re: BOINC projects with open source code?

Postby shodruk » Thu May 22, 2014 9:47 pm

w000000000t!!!!!! :D :D :D :D :D :D :D :D
Shodruky
shodruk
 
Posts: 464
Joined: Mon Apr 08, 2013 7:03 pm

Re: BOINC projects with open source code?

Postby Bikeman » Thu May 22, 2014 11:29 pm

Great, so it's a deal!! September 15th is fine for me.


It's a nice incentive for me to start work on the Raspi GPU FFT

HB
Bikeman
 
Posts: 52
Joined: Wed Sep 11, 2013 8:55 pm

Re: BOINC projects with open source code?

Postby aolofsson » Fri May 23, 2014 10:27 am

Cool! If you improve the FFT for the raspi that would be a great service, since there are about 2M of those in the field. Imagine the power if they were all connected! Can you provide a pointer to the FFT API and functional call that needs to be implemented (+range of N).
Andreas
User avatar
aolofsson
 
Posts: 1005
Joined: Tue Dec 11, 2012 6:59 pm
Location: Lexington, Massachusetts,USA

Re: BOINC projects with open source code?

Postby Bikeman » Fri May 23, 2014 3:15 pm

aolofsson wrote:Cool! If you improve the FFT for the raspi that would be a great service, since there are about 2M of those in the field. Imagine the power if they were all connected! Can you provide a pointer to the FFT API and functional call that needs to be implemented (+range of N).
Andreas


I think a subset of the FFTW API would be a good template, but if some deviation from it is goo for performance, that would be fine as well.

The N I'm interested in (as it is used in the ARM Einstein@Home app) is

N= 3*2^22 , so N= 12582912

A single app run processes many transforms of this length on different input data, so it's ok to generate an FFT "plan" and do other setup work up front which can even take some time and I would not consider this part of the runtime to be compared, so in FFTW this looks like this:

fftwf_plan fftwf_plan_dft_r2c_1d(int N, float *in, fftwf_complex *out, unsigned flags);

where
fftwf_plan can be an object containing whatever the plan needs to store
in is an array of at least N single precision floating point numbers,
out is an array of at least N/2+1 single precision complex numbers (because of symmetries in the DFT of real data, it's common to not compute N complex output values but just those that are non-redundant)
flags: not needed here I guess. could be used to pass whatever hints you want to give to the planner, perhaps the type of Epiphany core to optimize the plan for (16/64 cores...)

You can choose to do an in-place (in and out point to the same memory) or out-of-place transform, whatever is faster.

Once the plan is generated, the FFT itself would be run simply like this:

void fftwf_execute(const fftwf_plan plan);

For completeness there would be functions to destroy the plan object again like

void fftwf_destroy_plan(fftwf_plan plan);


I guess a benchmark would look like this in pseudocode then:
Code: Select all
N=12582912;
trials=1000;

in=allocate_input(N);
out=allocate_output(N); // can be equal to in for in-place transform, your choice

plan = fftwf_plan_dft_r2c_1d(in, out, some_flags);
time=0;

for(i = 0 ; i < trials; i++) {
   fill_array_with_some_random_numbers(in,N);
   start_timer();
   fftwf_execute(plan);
   diff = stop_timer();
   time+=diff;
}   
fftwf_destroy_plan(plan);
print(time/trials);

Needless to say the stuff needs to return correct results :-), what exactly is meant by "correct" is a matter of accuracy, but I guess as Parallella uses standard single precision floating points in its cores, I don't see how it could differ significantly from (say) FFTW output if the underlying algorithm is correct in principle.


Some details and timings for the existing FFT code for the Raspi GPU can be found here: http://www.raspberrypi.org/accelerating ... g-the-gpu/

note that this code cannot do transforms that are as long as 3*2^22 natively, so the challenge on my side is to decompose the long FFT into calls with batches of smaller DFTs that are run on the GPU. I'm quite sure that the same would be true for Parallella/Epiphany16.


Cheers
HB
Bikeman
 
Posts: 52
Joined: Wed Sep 11, 2013 8:55 pm

Re: BOINC projects with open source code?

Postby keithsloan52 » Fri May 23, 2014 9:31 pm

aolofsson wrote:I'll take your bet regarding the FFT. That's a no brainer:-) Let's set a deadline of September 15th..that way I will have something to drink by the time my birthday comes around.:-)
Andreas

bikeman wrote:As for the Raspberry Pi, I'm not sure I agree 100% with your comment. The GPU on the Raspi SoC is actually quite powerful, it should actually be in the same ballpark as the 16 core Parallella (the Raspi GPU is quoted with a (yeah, mythical) theoretical peak performance of ca 24 GFLOPS (!!) single precision).

So what exactly is the bet? That Pi cannot do 24GFLOPS? Or cannot do 24GFlops running einstein@home? Or Pi will outperform Parallella on einstein@home?
keithsloan52
 
Posts: 17
Joined: Fri Mar 07, 2014 9:22 am

Re: BOINC projects with open source code?

Postby Bikeman » Fri May 23, 2014 11:05 pm

The bet is that with a Raspi you can outperform the Parallella on specific FFTs : N=3*2^22, real-to-complex, single precision. In-place or out-of-place, whatever is fastest on each platform.

I'm open to allow overclocking within reasonable limits (say with air cooling, not liquid helium or some such :-) )

Parallella may use the ARM cores, FPGA and Epiphany 16. Raspi can use the ARM core and the GPU.

FFT is not the best suited algorithm for GPUs or many-core-accelerators like the Epiphany, as the ratio of computation instructions to memory transfers is relatively low. [we don't do things because they are easy, right? :-)]. OTOH FFT is one of the most important numerical algorithms ever, so implementing FFT on a new piece of hardware is the second thing you do, right after "Hello world".

Cheers
HB
Bikeman
 
Posts: 52
Joined: Wed Sep 11, 2013 8:55 pm

PreviousNext

Return to Berkeley Open Infrastructure for Network Computing (BOINC)

Who is online

Users browsing this forum: No registered users and 2 guests