Saturday, May 15, 2010

So what's this all about?

My dear readers(-to-be), welcome once again to maltanar's scribbles. Aside from attempting a reclaim on the blogging world, this blog will also serve a more important purpose. Here will be my scribbles on my Google Summer of Code project, for the BeagleBoard, which was initially entitled, rather horrifically, RPC-Like POSIX Wrappers for DSPEasy. A better name is in the works, but in the meanwhile I'd like to tell you all what it's all about.

BeagleBoard is (and the Pandora will be) a powerhouse, thanks to its 3-core (a GPP - generic processing, a GPU - for graphics processing, and a DSP - for, let's say, heavy number crunching! the acronym itself means Digital Signal Processor) OMAP3530 system. Therefore laptop-like performance at handheld power levels is most certainly not a myth. But to be able to achieve true laptop-like performance, the power inside needs to be harnessed to the max.

Of course, thanks to the heterogenous multi-core architecture, there are quite a few different ways in which this power can be harnessed. What I'll be doing will be targeting the DSP. Or more accurately, I'll be doing something that targets (in a friendly way!) programmers that wish to develop for the DSP by doing their work easier.

Right now, making actual use of the DSP is rather cumbersome and even after once you've gotten started, the development cycle isn't exactly bliss: you can't just "printf" the results of your experimental FFT code to the screen, for example, since there is really none - you have to deal with the details of interprocessor communications to see what's going on inside the DSP, as well as put data inside.

My aim with this project will be to create a RPC (remote procedure call)-like framework, which can be used to call any GPP-side function from the DSP-side, and create a set of POSIX wrappers using this framework to make life easier for developers.

Actual status updates coming soon! :)

1 comment:

  1. That is a very important project. I am an enthusiast of ARM and of chips like the OMAP, and I own a Nokia N800. I feel there should be more developer resources to increase the popularity of this platform, and also to explore the full potential available there. Right now I only feel we are seeing _effective_ programs and OSs on these platforms, but still not very _efficient_ ones.

    My hope for the future today is being able to make DSP projects for OMAP systems using Python, but accessing lower-level C libraries like it happens with OpenCV or scipy, maybe with an occasional inline C code like using scipy's weave. That would make developing very nice. But even if we have to stick with C for the moment, I still have a feeling the available software hasn't catch up with OMAP's hardware. I would like to see some "demos" if you will, programs running in parallel, with user interaction, and with CPU-load meters on the corner showing 90% use in the CPU, GPU and DSP. I want to know what we can reach in the full power!

    I expect to become a more dedicated OMAP developer soon, when my BeagleBoard arrives. I want to use it for my research, and I plan to use QNX. But for the moment it's all theoretical yet. :/

    Good Luck!