25 Mar 2009
Perhaps in preparation for Friday’s GDC talks by Michael Abrash and Tom
Forsyth, Intel has described the Larrabee instruction set:
Prototype Primitives Guide
Intel includes a C source file that implements their new
instruction set, so people can play around with the instructions before
Larrabee ships.
The instruction set looks alot like a typical GPU shader
instruction set. Lots of “log” and “rsqrt” type instructions. But there are
also some interesting variations on MADD, such as MADD233_{PI,PS}, which I
assume help shave cycles off of inner loops. The compress and expand
instructions also look very useful. I look forward to reading code examples
from Abrash and Forsyth in the near future!
06 Mar 2009
For some time I’ve wanted to listen to my home music collection on my computer
at work. I tried a bunch of different approaches, and finally came up with one
that works pretty well:
The resulting system works pretty well. In case you’re wondering, the
SqueezeCenter program’s main use is to serve music to the Squeezebox brand of
internet radios. The ability to use it with a regular computer, without
purchasing a Squeezebox internet radio, is a nice gesture on the part of the
Logitec company that makes and sells Squeezebox internet radios.
17 Feb 2009
Phil Taylor, a long-time Microsoft graphics and gaming evangelist is now
working for Intel on graphics tools evangelism. He started a blog, called
Future GPU, where he drops hints and links about
Larrabee development. He also tells Microsoft war stories for people in the
mood for inside-baseball information about Microsoft’s DirectX and game
groups.
Back when I was working at WebTV and just learning about the 3D
graphics world, Phil was nice enough to give me and a few of my WebTV co-
workers tickets to the super-desirable GDC DirectX party. These parties were
intended for external developers, so it was very hard for non-DirectX
Microsofties to attend. Thanks Phil!!! :-)
From reading Phil’s blog it sounds
like
Intel’s developing a set of graphics debugging tools that they’re going to announce at GDC.
Could it be PIX-for-Larrabee?
I found Phil’s site through a “Google Alert”
that I set up for Larrabee news. It does a weekly search for Larrabee news.
The web’s so big and sparsely connected
that I’m finding that I’ve never heard of any of the web sites that the Alert
is dredging up. Most of the sites mentioned in the Google Alert are not worth
visiting, but a few (like Phil’s site) are very interesting indeed.
08 Jan 2009
For at least 10 years GPU vendors have been talking about “Pixar Quality”
graphics. But what does that mean? Well, according to this lecture on
The Design of Renderman,
the original goals for the REYES architecture were
- 3000 x 1667 pixels (5 MP)
- 80M Micropolygons (each 1/4th of a pixel in size, depth complexity of 4)
- 16 samples per pixel
- 150K geometric primitives
- 300 shading flops per micropolygon
- 6 textures per primitive
- 100 1MB textures
That’s a shading rate of 80M * 300 * 30 Hz = 720 Gflops. (They were probably
more concerned about 24 Hz, but for games 30Hz is better.)
In comparison I
think the peak shader flops of high-end 2008-era video cards are in the 1
TFlop range. (Xbox 360 Xenos is 240 Gflops, PS3 is a bit less.). Now, GPU
vendors typically quote multiply-accumulate flops, because that doubles the
number of flops. So it’s more realistic to say that 2008-era video cards are
in the 500 Gflop range. So we really are entering the era of “Pixar Quality”
graphics.
31 Dec 2008
A very thorough talk describing the Nintendo Wii game console security model
and the bugs and weaknesses that allowed the Wii to be compromised:
Console Hacking 2008: Wii Fail
In a nutshell, security is provided by an embedded ARM CPU that sits between the
CPU and the IO devices, and handles all the IO. The two main flaws were (a) A
bug in the code that compared security keys, such that it was possible to
forge security keys, and (b) secret break-once-run-everywere information was
stored un-encrypted in RAM, where it could be extracted using hardware
modifications.
There’s a nice table at the end of the presentation showing a
number of recent consumer devices, what their security model was, and how long
it took to break them.
The PS3 is the only console that’s currently unbroken.
The PS3’s security model seems similar to the Xbox 360, but somewhat weaker.
But it remains unbroken. This seems to due to the existence of an official PS3
Linux port, which means most Linux kernel hackers are not motivated to hack
the PS3 security. (Only the ones who want full access to the GPU from Linux
are motivated, and only to the extent that they can access the GPU.)
26 Dec 2008
…as seen on the Beyond3D GPGPU
forum, here
are the presentations from the recent (December 12th 2008) “Beyond
Programmable Shading” course:
SIGGRAPH Asia 2008: Parallel Computing for Graphics: Beyond Programmable Shading
There
are good presentations from both GPU vendors and academics. My favorite
presentations are the Intel ones on Larrabee, just because I’m so interested
in that architecture:
Parallel Programming on Larrabee -
describes the Larrabee fiber/task programming model.
Next-Generation Graphics on Larrabee
- how Larrabee’s
standard renderer is structured, and how it can be extended / modified.
IBM / Sony missed a bet by not presenting here. That’s too bad, because Cell sits
between the ATI / NVIDIA parts and Larrabee in terms of programmability. And
Cell’s been available for long enough that there should be a number of
interesting results to report.
Note to self: consider buying a PS3 and
learning Cell programming, just to get ready for Larrabee. Heh, yeah, that’s
the ticket. Being able to play PS3-specific games like Little Big Planet and
Flower would be just a coincidental bonus.
08 Dec 2008
This weekend I reorganize my home source code projects. I have a number of
machines, and over the years each one had accumulated several small source-
code projects. (Python scripts, toy games, things like that.) I wanted to put
these projects under source code control. I also wanted to make sure they were
backed-up. Most of these little projects are not ready to be published, so I
didn’t want to use one of the many web-based systems for source-code
management.
After some research, I decided to use replicated git repositories.
I created a remote git repository on an Internet-facing machine, and then
created local git repositories on each of my development machines. Now I can
use git push and git pull to keep the repositories synchronized. I use git’s
built-in ssh transport, so the only thing I had to do on the Internet-facing-
machine was make sure that the git executables were in the non-interactive-
ssh-shell’s path. (Which I did by adding them in my .bashrc file.)
Git’s
ability to work off-line came in handy this Sunday, as I was attending an
elementary-school chess tournament with my son. Our local public schools don’t
have open WiFi, so there was no Internet connectivity. But I was able to
happily work away using my local git, and later easily push my changes back to
the shared repository.
19 Nov 2008
I
just tried creating an avatar on Microsoft’s new Xbox dashboard. As you can
see (at least when the Microsoft server isn’t being hammered) on the left,
they provide a URL for displaying your current Avatar on a web page.
The
character creation system is not too bad. In some ways it’s more flexible than
Nintendo’s Mii (for example more hair styles and clothing), but in other ways
it’s more limited (less control over facial feature placement).
My avatar
looks better on the Xbox than it does here – they should consider sharpening
the image. For example, the T-shirt my avatar is wearing has a thin-lined Xbox
symbol.
I think they do a good job of avoiding the Uncanny Valley effect. I
look forward to seeing how avatars end up being used in the Xbox world.
In
othe Xbox-related news I’m enjoying playing Banjo Kazooie Nuts & Bolts with my
son. All we have right now is the demo, but it’s great fun for anyone who
likes building things. It’s replaced Cloning Clyde as my son’s favorite Xbox
game.
19 Nov 2008
I’m a big fan of CPU architectures. Here’s a conversation between David Moon
formerly of Symbolics Lisp Machines and Cliff Click Jr. of Azule Systems. They
discuss details of both the Lisp Machine architecture and Azule’s massively
multi-core Java machine.
A Brief Conversation with David Moon
The claim (from both Symbolics and Azule)
is that adding just a few instructions to an ordinary RISC instruction set can
make GC much faster. With so much code being run in Java these days I wonder
if we’ll see similar types of instructions added to mainstream architectures.
20 Oct 2008
This one can: XKCD: Someone is Wrong on the Internet
-– this comic’s punchline has saved me at least an hour of a week since it
came out. That’s more than I’ve saved by learning Python. :-)