Newbee question ... can I do this project? Project description below, is this feasible ??


I just discovered GP-GPU and I have a project in my mind:

I need to process in parallel and really fast streams of data of scientific nature.

For each stream I need to read and process chunks of 100 bytes every 10 ms. During processing I have to compute some values and keep those values in memory and used them on the next chunk of data and return the processed chunk. From time to time I will have to send events.

For each chunk I will used a different algoritm(one of 20 algoritms), or the same but in a different state.

On another situation I have to get 4 to 64 chunks of data and used them all in a single computation returning 1 stream (sum). All data processing is based on scientific data, produced by several machines.

Incoming data flow would be 500 streams * 100kb per second, aprox 50 megs coming in small chunks every 10 ms. Is the GPU able to receive and return 50 megs over a second, all data is chunked in small pieces of like 100, 150, 200, 250, 300, 350 bytes ??

Data processing involves fft, sum, multiplications. I’m thinking of a project pilot on GeForce GTS 250. Based on my understanding I should be able to make the project run. There is any reason for not doing it?

Regards, Peter

50 megs a second is easily possible - a couple of orders of magnitude lower than the PCI bus is capable of.

That said, I’m not sure GPGPU is going to be your solution. 100 bytes is an awfully small amount of data to process, and will massively underutilise the GPU where you want to be having at least 1000-10000 threads.

If that’s all the data you have I think you’d be better off going for a multi-core CPU.

I agree with Tigga. First, the data amount is very small and second, you have mentioned algorithms like FFT – these are operations with fairly low complexity like O (N log N) so I believe GPU would be quite useless here.

If underutilization is the only “cons” argument then is ok. There is a Intel CPU solution already and on my test machine is at 75% from CPU for 200 data streams.
Thanks you very much for your opinion.