kengreen wrote:To end this thread since no one has picked it up, I will add my observations: First I don't know when Codeplay's offload will be available for non SCE developers. No one has replied to my emails. It seems that Offload will take more effort then XLC-SSC or CellSS to modify a scalar C program to run on Cell processor SPU's.
Hi kengreen,
I'm Colin, a lead developer on Codeplay Offload. Sorry we didnt reply to your email sooner, our marketing folk were away at the start of the week and only returned today.
We hope to release a beta version of the Cell Linux Offload system in two weeks. In the mean time, you can see a quick overview of the system
here, more on
call graph duplication which is what makes Codeplay Offload so powerful, and also the language extensions specification document
here.
A few things that may not be on the site, but can tell you here, is:
- It's not just a pre-compiler, its a fully vectorizing compiler that has built in optimized vmx2spu for when VMX intrinsics are found in functions you want offloaded to SPU.
- SPU function overlay generation, via a simple attribute.
- It can handle function pointers, and virtual functions, inside offload blocks.
- Call Graph duplication allows for complex function calls to be duplicated and compiled for spu, using automated SWCache accesses when required.
- Ability to overload functions with the __offload modifier, which allows type-safe SPU intrinsics, dma and other SPU native features, all in a single-source fasion.
Please note that Codeplay Offload is not an auto-parallelizing compiler. It is vectorizing, and optimizes for SPU when needed. The only problem I can see is that you talk about C files, Offload is a C++ compiler; so you may get the usual C->C++ warnings/errors at first. I look forward to seeing what you can do with it when released
Colin.