November 14th, 2009 | Categories: Computers

AMD’s talking more about its upcoming CPU Bulldozer than before. We now know that it implements simultaneous multithreading by not sharing execution resources as with Pentium 4/Core i7, but by actually doubling the execution resources.

Notice how the FP unit was unaffected, aside from the fact that it is now slightly more capable. Chalk it all up to AMD’s long term strategy to integrate the CPU with the GPU, Fusion.

As you all know, processor architects haven’t had much success increasing single thread performance these days. Oh, in the old days, it was easy. Pipelining with the 80486 – execute different parts of different instructions all at once. Superscalar with the Pentium/P5 – just put two execution units instead of one, that really helped differentiate the Pentium from the 486. Out of order – execute instructions that don’t depend on the ones in front first. That also gave a major speed boost, just look at the performance gap between the Pentium Pro/Pentium II vs the original Pentium.

Unfortunately, nothing much has happened since then. Intel bolted a vector FPU unit onto the Pentium II and called it the Pentium III. AMD finally got over its FPU issues with the K6 and went on to produce the Athlon, which soundly kicked the Pentium III’s ass, and the Pentium IV’s too, before it got the 533MHz FSB. The Pentium IV took pipelining to an extreme and introduced SMT to the mainstream, but ultimately wasn’t that fast anyway. And now, we have Core/Core 2, a slightly widened Pentium M, which is really a Pentium III with the Pentium IV’s FSB and SSE2 support. Core i7 I haven’t studied that much on, but they say it’s yet another evolution of Core 2 with a much improved front-end (lower latency caches, integrated memory controller).

The point is, recent CPUs haven’t had any distinguishing architectural differences from one another. They’re all pipelined, superscalar, and out of order processors with some SIMD functionality. And Intel charges extra for SMT.

What does the GPU have that the CPU doesn’t? Why, insane floating point performance thanks to hundreds of simple FPUs, of course. Coincidentally, most floating point workloads that have a huge market are easily parallelized workloads, such as ray tracing, oil exploration, stock trading and anything else that has been advertised to be sped up x times with GPU computing. The major difference between the CPU and the GPU is that the CPU usually has one or two FPUs, with a lot of logic in front of them to make sure that one FPU isn’t waiting for another to finish computing a result that it needs for the next instruction, and a lot of logic behind the FPUs to make sure the instructions come out in the same order as they were supposed to be executed. The GPU, on the other hand, is basically hundreds of simple FPUs doing relatively simple, repetitive tasks in an SIMD fashion, whose workloads are scheduled/managed by another entity.

Does all this sound familiar? It should, because IBM/Sony/Toshiba Cell’s architecture was public knowledge a LONG time ago. Boatload of simple FPUs with fancy name? Check. Scheduler (with bonus SMT)? Check. Low performance in non-parallel workloads? Check. Widespread adoption in targeted market? Check.

But AMD was at pains to stress that Llano is an intermediate step, and is not the end-of-the-road for its Fusion program. The real goal of Fusion is to merge the CPU and GPU entirely, and to bring that combination directly in contact with the OS. (See the red arrow in the slide below.)

According to Jon Stokes’s article, the long term strategy is to integrate the GPU into the CPU, and remove the OpenGL layer between the OS and what was once the GPU. What this means, besides much more heat emanating from one chip instead of two, is that the CPU will now be used for DirectX shaders, texturing, geometry transformation, lighting and perspective transformation, and most importantly, highly parallelizable workloads. If you’ll remember, huge multiprocessor systems were all the rage in supercomputing before GPU computing showed up. Now everybody’s screaming about how much faster GPU computing is than using a truckload of AMD/Intel’s CPUs to do the same job. AMD buying ATi not only got them a foot in the door with respect to GPU computing, but also, with Fusion, the CPU will regain more of its former influence on a system’s performance. The CPU is relevant again, whereas before it was in danger of merely being in charge of a collection of GPUs, PPUs, whatever some stupid upstart company thinks it can accelerate that needs a lot of FP performance.

There is absolutely nothing in it for AMD to integrate a graphics core into a CPU. Think about it, AMD already owns the ATi graphics business, i.e. it already has integrated graphics. Integrating graphics functionality on the CPU would 1: make design/fab more difficult, 2: reduce the amount of parts to sell, 3: its most lucrative customers, business/supercomputing, don’t even care about graphics. No, better to let the GPU’s amazing FPU throughput onto the CPU, throw whatever’s left onto the northbridge (it already manages a host of diverse interfaces anyway, why not one more), and profit by developing one product line instead of two.

I don’t see this working out though. I mean, GPUs already produce a lot of heat even on the smallest feature size processes. If AMD doesn’t succeed in solving the heat issue, graphic cards as we know them will be here to stay. Which doesn’t seem to be what AMD set out to do. One thing’s for sure, though – IBM’s Cell processor has influenced many in processor architecture.

November 13th, 2009 | Categories: Games
I'd put a screenshot here, but I can't get one because the PS3 isn't hacked

I'd put a screenshot here, but I can't get one because the PS3 isn't hacked

I hate this game. As manga can confirm, I spend most nights playing Valkyria Chronicles till late in the morning, as he does with Agarest Senki (what’s so great about that game anyway). I hate how it gets under my skin and makes me go “OK, I’ll just ace the Barious Desert again so I can level up my Shocktroopers, flamethrowers here I come!” and how it always pulls me away from my homework.

But the worst part is that you don’t even get the full game when you purchase it. No, you gotta pay extra to download shit like Hard Mode and Edy’s report from the PSN Store. Which is absolutely stupid. Which makes me even dumber because I know I’m gonna buy them all anyway. Gotta have me my complete Valkyria Chronicles experience!

Good thing Valkyria Chronicles 2 is for the PSP, so I can PIRATE it and regain some of the money, if not time, lost playing this game.

EDIT: I just noticed that the last 5 posts or so were all about my PS3. Damn, I should get a life!

November 9th, 2009 | Categories: Computers

PS3 Ubuntu Linux
Note: kboot does not support reiserfs. I don’t know about petitboot.

I finally gave in and installed Ubuntu, exactly what a n00b would do and not a Linux pro with 5 years of experience with Gentoo/Debian/Arch. It couldn’t be helped, since the Debian PS3 installer CD is so old it only recognizes the sid distribution and failed. Ubuntu’s Debian, which I’m familiar with, and most of all, I don’t have to spend months compiling shit, which is quite slow on the Cell. Plus, it’s a game machine. All those seconds spent compiling could be used gaming, which broke the camel’s back once I figured that out.

The default install of GNOME really brought the PS3 to its knees. Right from the start, it was hitting swap… and that’s without having enabled /dev/ps3vram. In fact, it was positively unusable, so I installed XFCE4, but even that wasn’t good enough once I started Firefox. So fluxbox it is. It certainly looks good with urxvt, I’m sure you’ll agree.

MPD hasn’t come a long way. XMMS2, on the other hand, has made leaps and strides since I first saw it as a masked package in Gentoo Portage. Let’s see what it supports… .cue, .mpc (thank lord, finally something other than XMMS can play Musepack), .m4a/mp4 (I use that a lot)… and that’s all I guess. No TTA, APE, TAK, but it doesn’t matter that much. In any case, what’s obvious is that XMMS2 plays much more formats than MPD, which is good enough for me to overlook the fact that there’s very few clients for XMMS2. I’m quite happy to be moving on from MPD, which, frankly, didn’t seem to be going anywhere.

In conclusion, PS3 with Linux makes for a usable computer, provided you use more console apps and less graphical ones. It’s quite obvious it’s starved for RAM, and the CPU frankly isn’t what it was hyped to be, given that it’s an in-order CPU and that nothing uses the 6 SPEs. I also wish one could change the size of the partition allocated to Linux… to something bigger than 10GB. I have very low expectations from Sony, so I don’t expect any improvements to happen. Hell, firmware 3.00 did nothing for PS2 emulation as far as I could tell. They’ve obviously forgotten all about Linux, PS2 backwards compatibility (yes, there’s the patent, but I doubt that’s actually going to come out as a real solution), and the wonders of having 4 USB ports.

Now if you’ll excuse me, I have to setup SDLMAME.

November 8th, 2009 | Categories: Computers

When I bought my PS3, it was under the assumption that I would use it as a computer, because while I do have 300EURs to blow on a PS3, I certainly don’t have 600EURs to spend on a good machine with at least 8GBs of RAM and four cores. And on top of that I need a monitor as well.
ps3
So I’ve been compiling shit under Gentoo PS3 for about 12 hours now and I was setting up a virtual machine to distcc+cross compile on. I found the 1.6GHz Core Duo much faster at compiling than the PS3. I also found myself wishing for a more powerful quad core system which had enough to compile entire source trees from RAM.

Then I realized that Gentoo PS3 was making me wish for more than I had… again. Which was what buying the PS3 was all about. I got a PS1, PS2, PS3 and a computer all in one. Duh, should be more than satisfied by now.

EDIT: BTW I love Gentoo Linux, have been using it since 2004, back then I was on a VIA C3 and things took days to compile. It looked like it was the same for the PS3, but since the PS3 is also a game machine, I hate to waste my time compiling. And my god, it does take days to get a nice xfce4/X11 environment running too. I guess in-order really isn’t that great.

November 7th, 2009 | Categories: Computers

That’s not right…

alpha-chobit ~ # g++ -mcpu=970 -Os speedup.c
alpha-chobit ~ # time ./a.out

real    0m5.181s
user    0m5.139s
sys     0m0.042s
alpha-chobit ~ # time ./a.out

real    0m5.191s
user    0m5.148s
sys     0m0.043s
alpha-chobit ~ # time ./a.out

real    0m5.174s
user    0m5.131s
sys     0m0.043s
alpha-chobit ~ # g++ -mcpu=cell -Os speedup.c
alpha-chobit ~ # time ./a.out

real    0m5.201s
user    0m5.158s
sys     0m0.043s
alpha-chobit ~ # time ./a.out

real    0m5.194s
user    0m5.151s
sys     0m0.043s
alpha-chobit ~ # time ./a.out

real    0m5.195s
user    0m5.152s
sys     0m0.043s

alpha-chobit ~ # cat /proc/cpuinfo
processor       : 0
cpu             : Cell Broadband Engine, altivec supported
clock           : 3192.000000MHz
revision        : 5.1 (pvr 0070 0501)

processor       : 1
cpu             : Cell Broadband Engine, altivec supported
clock           : 3192.000000MHz
revision        : 5.1 (pvr 0070 0501)

timebase        : 79800000
platform        : PS3
model           : SonyPS3