trj021782 wrote:So the resounding theme here is that YDL is not more optimized for the PS3's CELL architecture than Ubuntu
More of my thinking out loud:
The way I understand it, that's an issue with the monolithic kernel structure of Linux, not Ubuntu, YDL or even the PS3 at all.
The main issue is that the Linux kernel doesn't understand a processor that doesn't have symmetrical processing cores. By this, I mean cores that execute the same OP codes - base assembly language.
It's my understanding that Linux kernels can't really take advantage of the PPE/SPE mix of the Cell, since they have different processor instructions. They would only be able to use the PPE or the SPE - but not both. Since the SPEs aren't completely Turing compliant - they don't really execute programs as much as act on data - Linux can only use the PPE. Unfortunately, the PPE is pretty much weak sauce, since, for the most part, it's designed to set up the SPEs. (PPE = moderately fast, single core, twin thread, in-order PowerPC processor.)
To really use the Cell efficiently, you'd have to use a kernel capable of parsing out instructions to other nodes, with mixed architectures. In my mind, this would be something like the Mach kernel that Mac OS X is based on - or even GNU/Hurd. (I would have no idea where to start with this, though.
)
As far as the hypervisor goes, the main issue we've found is the inability to access the nVidia RSX directly. The framebuffer display - although fast - is completely CPU driven. That's an issue since, with Linux, that means the PPE has to drive it, splitting frame tasks with all the other processing it's doing.
In some ways, the hypervisor is a good thing. It helps abstract the custom PS3 hardware to look more like a PC - this lets fairly standard distributions of Linux run on it. Otherwise, there'd have to be a lot more custom drivers - for disc access or memory control, for example.
As far as Cell-specific tweaks, YDL is pretty good. It supports the using the VRAM as a swap drive out of the box. It also supports libfreevec, which accelerates glibc with the AltiVec core on the PPE.
It also supports running true Cell programs without system modification - the necessary SPE libraries are included. You can download Cell demos directly from IBM, for example, and they'll run without adding additional libraries. An example is here:
http://www.alphaworks.ibm.com/tech/irt/downloadYou can also compile PPE optimized and true SPE code with the default software development installation. So - it's mainly for that reason that YDL says it's optimized for Cell architecture. But - that's mostly software development only. It isn't going to help with day-to-day tasks like running Firefox, or OpenOffice, etc.
And - with very, very few exceptions - there haven't been enough PS3 Linux users to develop SPE accelerated drivers.
A perfect application of this would be a replacement of the default X11 video driver with an SPE accelerated driver, offloading the drawing code from the PPE.
The only developments in this area have been a partial SPE accelerated mplayer driver, a partially completed SPE based OpenGL driver, and an SPE scaler to allow you to scale up 8 bit emulators so the PPE doesn't have to handle the 1920x1080 pixels.
True Cell-optimized Linux would take a re-think of the base principles of Linux in general, based on the way I understand it.
That - or we need a 2nd generation Cell processor with an actual G5 in it, instead of the PPE.
Cheers,
Paul