Why no desktop 16-core CPU?

Posted by | Posted in Game Development, Pioneer | Posted on 06-03-2013

It’s a question I keep coming up against as I do multi-threading work but where are all of the desktop 16-core CPUs?

You can get what AMD call a 16-core CPU in the Opteron 6200 but it’s built on Bulldozer or Piledriver which are more like 1.5 cores per “dual core” thanks to sharing their FPU capabilities. Or to put it another way, 16-core INTEGER and 8-core FLOATING POINT.

Not long ago we went from single-core to dual-core, to true dual-core (both cores on the same die), to quad-core… and then we stopped.

I guess the argument could be that it’s not worth it for most people? Or that hyperthreading gives you 8 hardware threads with upto 30% performance boost if you can use them well.

This all misses the point though and I’d have been quite happy if AMD had continued adding cores to it’s K10 architecture, keeping up with the process node advances (die shrinking), updating, optimising and just piling on the cores. They have done that to some degree because K10h, as used in the Phenom 2, did make it into the early APU’s in a low power die-shrunk version. It lacked any kind of L3 cache though it did have some extensions, updates and improvements so that it just about holds it’s own against a similar number of core Phenom 2.

Those chips were APU’s though, with an on chip GPU for mobile use. So they clocked slower and fully 50% of the die was spent on the GPU. You could get versions without the GPU called Athlon II but they still lacked the L3 cache and the GPU was there, just disabled and powered off. There was no 8-core Athlon II with an L3, even a small one even though it was probably possible.

We’re down at 22nm + 3D transitors with Intel CPUs whilst AMD are still rolling out on 32nm but are we really stuck at 4-cores?

No, there are higher core counts as you can see but they’re for servers rather than our mere mortal desktop machines. So the work isn’t going into getting more performance out of heavily threading things, instead it’s in GPGPU languages like CUDA, DirectCompute and OpenCL. Utilising the GPU to do work you’d normally have just hammered out on the CPU. There’s real benefit to doing things on your GPU, and eventually I think AMDs “APU” strategy might pay off if they can reduce the latency between the CPU<->GPU for compute languages for example but traditional multi-threading seems to have been ignored. It’s not even an option to get more cores on a desktop CPU and I think that’s a shame as there’s a lot of workloads that will happily scale to 16 or 32 threads without the need to move them to GPU.

It would have been interesting if AMD had chosen to do it, to keep scaling the cores at least as an option but then I think there’s a metric fucktonne of things that AMD could have done to stay relevant which they’ve manifestly failed to do so here’s a short list:

  • big.LITTLE – as in the ARM design where you have a group (4 typically) of large, fast, powerful CPUs and then you have one tiny little low power CPU that is used when the workload gets light to save power.
  • Unlocked multipliers and clocks on CPUs sold with a very limited warranty at the same price as the regular locked one – the Black Edition chips are good but not enough.
  • Change the chip packaging format as Intel and IBM have both separately proposed for better thermal, power and mounting design – if you’re in 2nd place you innovate to survive.
  • Speaking of IBM – form an alliance, use their resources and manufacturing to get access to better process node shrinks.
  • …and of Process Node shrinks – you can’t compete with Intel on them but as soon as AMD were free of Global Foundaries why didn’t they run off to TSMC (or IBM) and aggressively chase what there was available?

There must be a tonne more as well besides, but in short I miss the AMD of old. We were speaking about it at work the other day and it always produces the same head-shaking response where you just can’t believe that todays AMD is the same one that gave us the K6 and k8 architectures. The AMD that bludgeoned Intels Pentium 4 misstep into a cocked hat and happily overclocked it pants off.

Todays AMD seems to be one that releases products based on “vision” rather than”getting-the-fucking-job-done-well“. I’d even settle for: “getting the job done well enough” and do it with more cores but instead if you buy AMD now you’re probably getting a Piledriver chip at the high-end which is finally a little bit faster in some situations than the k10h architecture… they could have done an 8-core k10h in approximately the same die area but minus the GPU and I’d rather have had that because all my GPU needs are serviced by a separate card in a PCI-e slot.

I’d buy that chip, fuck I’d buy a 16-core version without hesitation. A die shrunk 8/16-core Phenom, L3 cache intact, the improvements they rolled into the Stars (k10h successor) architecture, no GPU, on a quad channel memory bus and clocked at about 3Ghz. That could pummel my Core i7 into the floor with the loads I have in mind.

It’s not to be though, that AMD is dead and for some reason so are desktop 8/16-core CPUs it seems.

I made this!

Posted by | Posted in Game Development, Pioneer | Posted on 19-01-2013




In response to critique of a title I worked on…

Posted by | Posted in Game Development, Life | Posted on 15-09-2012

So, today I have been digging up reviews and information on games I’ve worked on. Right the way back QA on Super Skidmarks Megadrive.

Along the way I inevitably got to MotoGP 10/11, this is one of those games that’s so wrapped up in a very painful set of events that it’s hard to tell whether I love the game because of how great it is, or because of the events that came long behind it. Nevermind all that though, I’m out looking for reviews!

When I find this: http://www.randomprodinc.com/moto-gp-1011-review/

Now the review might be “fair“, a bit harsh giving only 6 out of 10, marked down quite hard by the graphics it seems. Not really fair to compare MotoGP 10/11 against other games out, they ran at half the framerate, it’s very easy to make one game look better than another when it has twice as long to draw each frame but then stutters along when anything happens on screen.

So I go to make a comment on this long dead review when I see the reply from “SpeedEight“… and I laugh my arse off.

I know *exactly* who “SpeedEight” is and the two responses to his post just make me grin so wide I think the top of my head might come off. Sadly he never replied any further, I’d have paid money to read that thread.

Anyway this being the internet I posted my own reply, a lengthy one of course but with a much calmer head… of course the internet ate it and it’s gone for good due to it wanting me to enter the captcha phrase, if you try to comment on that review you’ll see that there is no captcha system. Odd.

I’m not actually going to go into the MotoGP 10/11 review… well I might but first I wanted address another comment from the reviews author.

I would like to point out that I am studying Computer Games Technology so I know what goes into making a game and this is my honest opinion of this game.

Good, we wouldn’t want a dishonest opinion, and perhaps he’s striving to keep reviews around the 5 out of 10 range, excellent goal, noble even, misguided and doomed to failure but can’t fault it idealistically anyway. Then there’s the rest of that sentence:

I am studying Computer Games Technology so I know what goes into making a game

Yes… and I’ve read Shakespeare therefore I can write better books.

I’ve also been into games development since I was 15 and programming for even longer, I did a degree (BSc Visualisation with honours) at Teesside University, I had worked at GAME on the high-street and have played quite a few games across many, many, many systems, I’d even made a few games using Shoot ’em up construction kit, and AMOS and until I’d actually worked in the industry and shipped a whole game I knew absolutely fucking nothing.

This might be an effect related to the fact that the less you know the more you *think* you know, like how teenagers know everything, small children think houses cost £6.85 and because government ministers have never had jobs we’re all doomed. The effect gets thoroughly bludgeoned out of programmers during their first time working with another coder, artists the first time they hold a pencil and designers the first glorious time they try to get a programmer to implement that “one little thing“. Oh, no that’s just a bludgeoning.

It’s the realisation that you really know nothing about something until you’re the one who has succeeded in doing it.

We can try and communicate that love is all consuming, how beautiful a view is, how cold and lonely the middle of the Atlantic was at times, how exhausting that 3rd week doing 7 days a week from 8am to 2am but until you’ve done it you really only have this shell or outline of the experience and a bit of text saying “fill-in-later“.

I’m not sure exactly when I realised I knew nothing, but by the time MotoGP 10/11 had finished I knew I’d learn’t a huge amount since that time and now I was certain, absolutely certain, that I would never be capable of learning it all because none of us are.



My weak C++ is overkill.

Posted by | Posted in Game Development, Life | Posted on 30-07-2012

In the space of the last two weeks I’ve done a few programming tests, travelled down to Oxford for an interview + test and failed multiple times.

The feedback has been consistently inconsistent. Having failed at one test due to my approach being “overkill” and focusing too much on the technical I decided that it needed a bit more work and another approach implementing that was a little more bare bones. Then when the Oxford based studio wanted an example of some code I reused that “overkill” code for this purpose. This time apparently my C++ was “too weak“.

At this point, and over £90 down on travel expenses which will never be reimbursed, I’m feeling a little out of sorts with the whole process. Previously I’ve been head hunted by other companies, I’m still one of the first people that our old CEO approaches when he needs a coder and whilst everyone has something they don’t like about the way I code they still tell me that they’d happily work with me again.

So what’s going on?

Maybe I just don’t fit that eminently employable mold that everyone seems to be getting squeezed into lately? No, well “yes” but it’s not quite that simple. I don’t have a great range of demos to show people, or a large volume of finished projects. Mostly my spare time coding is learning about a single thing that doesn’t really add up to what you’d call “a demo“. The titles I’ve worked on are usually my demos but recently EVERYONE has insisted on seeing production quality code. By “production quality” I think they’re actually meaning some kind of aspirational coding quality that I’ve yet to see in real game code but we all know what they want anyway. I don’t have the code for a lot of projects, and even if I did it’s under NDA as far as I’m concerned. I don’t go around showing people the code from other companies projects because it’s not mine to show.

Of course there’s always the “coding test“; the ultimate independent arbiter of a programmers ability! There’s no better test than seeing how they solve the old point-is-inside-a-polygon with pen and paper to really tell you what kind of a programmer is sat before you! Maybe instead it’ll be something almost 20 or 30 lines long with a couple of functions just to see how they cope, or my new personal favourite; the whilst ski-ing with your new co-workers which route do you take semi-psychological question. Yay! Shame that “bury their corpses in the mountain snow for giving me this stupid test” wasn’t one of the possible answers.

What a fucking ball ache, plus a massive waste of time. They’re like any bloody test, they tell you how good the person sat in front of you is at that test and that test only. Not what they’re coding style is, not how quickly or well they can change that style to match your companies Byzantine preference, it doesn’t tell you how they learn, adapt or take criticism of the approach they’ve used. It doesn’t help you see why they have those recommendations on LinkedIn (Did they ask for them or were given? Who are those people to you friends or just co-workers?), what they’d like to learn more about or where they’re weak.

My personal experience is that I seem to be getting filtered out at a lot of these tests, even for companies where their whole game is less complicated than a single feature I’ve worked on for other titles. Apparently all those years of experience don’t matter because they don’t like the style I used to answer an arbitrary test question on a sub-subject that I haven’t needed to look at since the second year of University over 10 years ago… I still answered it and in the last interview I even got praised that I’d taken the correct approach to solving it!

What seems to happen is that I fall foul of these tiny tests that stretch some irrelevant scrap of knowledge or practice and that’s it, test over, interview failed. For the bigger tests, the tests you can do sat at home, I’m either going to too much effort (wtf!?!) or I’m just not hearing back from places, at all.

These places aren’t Valve, Sony, Microsoft, BioWare etc. No, I’m falling flat on my face with over a decade and a half of programming practice and 9 years in the Games Industry for companies making mobile phone games who have development teams of over 140 people. We did MotoGP 10/11 for Xbox360 and PS3 (and an internal PC version) with less than 50 and I wrote major pieces of core functionality and gameplay for those damned games.

Does that make me the best coder I know? Good grief no, I’m average, sometimes I’m better than the next guy, sometimes I’m worse, frequently it depends on the task at hand. If you want to wait on finding that super-coder-from-the-year-3001 then just say so but don’t expect to hire him for as little as you’re offering me.

The upshot?

I’m tired, I feel a little beaten up by this application and interviewing process. I wish I could hit pause, get a cuppa, tell everyone to fuck off… and quietly turn 33 years old on Saturday 4th Aug (I’d like a career change this year please!), returning renewed, ready … and tell everyone to _really_ fuck off because I’d rather go Indie than work for most of these places that I’m applying to. Sadly this on-again/off-again relationship I’ve had with contracts and work post-Monumental-Games-Ltd has meant that I have absolutely nothing left of savings, and since I haven’t even been paid for my last bit of contracting(!) I am pretty screwed this month too.

This isn’t a very satisfactory ending to this post because this isn’t some story with a conclusion, this is just my life recently.

Tense? Nervous? Angry? Well then…

Posted by | Posted in Game Development, red ship | Posted on 27-05-2012

Tense? Nervous? Angry? Well then I guess someone’s demanding that you commute to another city so you can lose precious hours of working time to sit in on meetings that won’t help you, answer the questions of idiots who’re hindering you and generally make no progress on the complicated research task that they’ve given you which involves an unfamiliar build system using two different languages which you don’t know.

I am sat here cross legged on the floor before my PC honestly wondering if keeping this job for another month is even remotely worthwhile. The rational part is of course saying that I’m skint, the rest is wondering if another months pay is worth several years in prison for murder(/though obviously I’d plead diminished responsibility and accept manslaughter!). No I need the money, I have the mortgage, Danni wants to do things this summer and I’ve heard nothing back from any of the places I’ve sent my CV off to. On which note actually after all of the talks they’ve had it might be extended… by 1 month! Woo, 4 extra weeks.

That’s worthwhile I guess, as I’ll keep looking and leave at the earliest possible opportunity that presents itself. Not only that but I won’t find out until next week which is *drum-roll* my last week! What a complete clusterfuck.

We’ve got no design that’s worth a shit, nor have we had for the last 5 months, no real management or production, no leadership, no art or scheduling, constant re-design… I realise it’s hard to have re-design without design, perhaps re-whimsical-direction-and-arm-waving is a more accurate description.

I maintain that game development is not really that difficult for the most part. You define your desired goal, you plan the steps that get you from where you are now (having nothing, or maybe already having some tech) to where you want to be. Then you divide up that plan into workloads for people, try to figure out dependencies between tasks, identify risks (wherever and whenever that’s possible), sort it all into you’re preferred organising method, then you get on with it. Shit will hit the fan along the way but at least you’ll know where you’re supposed to be going even if you don’t quite get there you should get most of the way.

I still after 5 months am not sure what this game we’ve been making is really all about! Or how it will play, what the end goal of it is, how we define success or failure, anything! I know what it currently does and I vaguely understand what my current task is, but that’s all. That’s a pretty damning failure isn’t it?

On a different tack entirely, I’ve started work on something that Duncan suggested which I’ve tentatively called “red ship” thanks to this Rainbow Codes name generator implementation :)

It’s beyond early days on that one, I don’t even know where it’ll go yet… well, not quite true I know the inspiration for it was one of the games we’ve overplayed beyond all sense or reason, what I mean is that I don’t know where I’ll take this game eventually. Hopefully though it’s small enough to be able to release in a reasonable timeframe. We shall see I guess.