real time pipelined data processing

1 reply [Last post]
kitrichards
Offline
Joined: 02/05/2010

I am investigating using a Tesla(s) instead of 64 DSPs for the next generation of an adaptive optics system.  With the DSPs, images from a high speed camera are feed directly into the DSPs via DMA transfers, the each DSP processes part of the image and computes part of a large matrix multiplication.  The results are summed together into one DSP which then commands a large deformable mirror via another DMA transfer. 

I have two basic questions. 

1. Is it possible/reasonable to load a program into a Tesla and then continuously feed, via PCI bus DMA transfers, sets of data to the Tesla to be processed?

2. Is it possible/reasonable for the Tesla to DMA the results of processing each data set to another device on the PCI bus?

Another concern I have is programming language.  In earlier DSP adaptive optics systems we have designed, we achieved almost a factor of 10 decrease in processing time when we programmed the DSPs in assembly language rather than C.  Is assembly language programming of the Tesla supported and reasonable to do?

Thanks!

 

 

 

Nadeem
Offline
Joined: 11/15/2009
Assembly Language on Tesla cards

 

The CUDA C compilers can produce PTX  which is then taken by the NVIDIA drivers and converted to machine instructions (JIT compile) . Its quite possible to hand optimize the PTX code - and I have heard of folks who do that. So if you really want to get low level thats your best bet.

I would recommend you start writting your code in CUDA C - you have the choice of using the runtime or a driver level API , and get the system up and running and working. If you are not getting the performance needed then look at the PTX.

There is PTX documentation.

So if you haven't already - sign up as an NVIDIA developer and download the toolkit and SDK etc, there are examples of the two API's I mentioned - and then you can experiement with the PTX.

Oh the other good thing is PTX is compatible with multiple GPU device types - anything lower would not be.

Good Luck - your work sounds very interesting.