State of the Cell

December 23, 2007

Originally posted at http://cs.ucsb.edu/~cgb/stateOfTheCell.html, and thus, looks much better there.

The Cell Broadband Engine Architecture (which we shall refer to as simply the Cell architecture) was designed as a compromise between the general-purpose but slower CPU and the specific-purpose and faster GPU. It is a heterogeneous architecture: it contains processing units that specialize in different tasks. However, critics (and even some fans) of the Cell architecture claim that it is incredibly difficult to produce good, fast code on it. Having spent the last quarter working with the Cell architecture, we agree with this sentiment. But why?

Read the rest of this entry »


Multigrid Methods with CUDA

December 20, 2007

Originally posted at http://cs.ucsb.edu/~cgb/multigridCUDA.html, and thus, looks much better there.

Over the last quarter I have been investigating how to implement a multigrid algorithm with CUDA, a new language aimed at making General Purpose Computation on GPUs (GPGPU) easier. This web page documents this experience.

Read the rest of this entry »


Yay!

December 20, 2007

Grades are in!

GPGPU and 3D User Interfaces: A

Parallel Architectures: A+

Directed Research: S

Cognitive Science Seminar: S

I don’t know what an S means (satisfactory?), but the first quarter rocked! I’ll put up versions of my work here soon!


No Place For Democracy

November 23, 2007

“There will one day spring from the brain of science a machine or force so fearful in its potentialities, so absolutely terrifying, that even man, the fighter, who will dare torture and death in order to inflict torture and death, will be appalled, and so abandon war forever.”
Thomas A. Edison
Read the rest of this entry »


My Favorite Error Message Ever

November 2, 2007

While running a Poisson Equation Finite Difference approximation algorithm (whew, a mouthful there!) today on Cell, I got the greatest error message ever:

[cgb@cell pfd]$ ./withRapidMind
terminate called after throwing an instance of ‘rapidmind::Exception’
what(): The type ‘double’ is not supported by the Cell backend.
Aborted

What the hell indeed. Much thanks to the RapidMind guys for an awesome function called “what” and not supporting the double type (although I’m sure there’s a long explanation about that I haven’t found yet).


Setting up Linux on the Cell (Part 2)

November 1, 2007

So…Yellow Dog Linux doesn’t like SDK 2.1 very much. Turns out I must have done something wrong while trying to install it because it only wants to work on Fedora and I fucked up my ability to compile code for the SPEs and PPE while doing so. So I reinstalled Yellow Dog and this time, followed the very simple explanation at the RapidMind website which said just to install the libspe2 rpm and not mess around with anything else. It worked great, but let’s step back a second here.
Read the rest of this entry »


Setting up Linux on the Cell (Part 1)

October 30, 2007

So we got a PS3 for research in the lab the other day and we got to set up Linux on it. It’s actually pretty painless, although if you can, get a monitor that supports DVI and supports HDCP so you can get the digital connection. We only have analog in the lab so it looks like crap. Seriously though, it looks like feces and I have to use SSH to get anything done. That being said, here’s how to do it:
Read the rest of this entry »


“Portable” Package Management is Bullshit {Mostly}

October 25, 2007

I don’t always want to code in Java. In fact, I’ve recently wanted to not program in Java and get a feel for everything else that’s neat and nifty and blah blah blah. But Java spoiled me. I got used to having my libraries distributed with my package, and having it work on other systems pretty easily. So imagine the fun times I had trying to get MySQL and SMTP support working in other languages…
Read the rest of this entry »


Bloom Filters

September 21, 2007

I’ve been getting more into my programming roots lately, and after I read this CodeKata, I decided to give it a try. The idea is to write a Bloom Filter, fiddle with the parameters that make it what it is, and test its performance. That being said, let’s look at it.
Read the rest of this entry »


It’s Everyone’s Fault

September 18, 2007

…and no one’s. We have an infrastructure that is ridiculously difficult to maintain and even more difficult to make “simple” changes to. It’s often come up as to whose fault it is that it ended up this way. But it’s my opinion that it’s all of our faults, and at the same time, none of our faults.
Read the rest of this entry »