Valve Hardware Day 2006 - Multithreaded Edition
by Jarred Walton on November 7, 2006 6:00 AM EST- Posted in
- Trade Shows
Valve Hardware Day 2006
Last week Valve Software invited us up to their headquarters in Bellevue Washington for their Hardware Day event. Valve usually has some pretty interesting stuff to show off, and they are one of several companies that consistently push the boundaries of what your computer hardware can do. As creator of the Half-Life series, Valve is one of the most respected gaming software companies around. Their Steam distribution network has also garnered quite a bit of attention over the years. Last year, the big news was the new HDR rendering that Valve added to their Source engine. So what has Valve been up to for the past year, and how will it affect the future of gaming?
The man himself, Gabe Newell
Some of you may recall some of the statements Valve Software founder Gabe Newell made in regards to the next generation platforms and the move towards multi-processor systems. The short summary is that creating efficient and powerful multithreaded code is extremely difficult, and there's a very real possibility that developers will need to throw away a lot of their existing code base. Both of these things are drawbacks for creating multithreaded games, but there are also important benefits. Perhaps the most important advantage is that if you need additional processing power in the near future, you are much more likely to get it by tapping into the power of multiple processors rather than waiting for clock speeds to increase.
While it is listed as a challenge, one of the points made by Valve is that computer games are typically designed to make maximum use of your system. "You're doing a disservice to the customer if you're not using all of the CPU power." Some might disagree with that sentiment, but at some point the choice has to be made between a game that looks better and/or performs faster and one that uses less computational resources. Then there's a secondary consideration: do you want to make a computer game that merely takes advantage of additional processing cores to enhance the gaming experience, or should a multi-core CPU be required? There are still a large number of single core processors in use today, and many of those people might be unhappy if they were forced to upgrade.
Tom Leonard, Multithreading Project Lead
The costs and challenges associated with creating multithreaded games help to explain why the previous gaming support for multiple processors has been limited at best, but with all of the major processor vendors moving towards multi-core chips, the installed user base has finally become large enough that it makes sense to invest the time and effort into creating a powerful multithreaded gaming engine. Valve Software set out to do exactly that over the past year. The efforts have been spearheaded by Valve programmer Tom Leonard, whose past experience includes work on C++ compilers, system utilities, and artificial intelligence among other things. Other Valve employees that have helped include Jay Stelly, Aaron Seeler, Brian Jacobson, Erik Johnson, and Gabe Newell.
Perhaps the most surprising thing is how much has been accomplished in such a relatively short time, and Valve Software provided the attendees with a couple benchmark applications to demonstrate the power of multi-core systems. Before we get to the actual performance of these utilities, however, let's take a look at what multithreading actually means, the various approaches that can be taken, and the areas that stand to benefit the most. There are of course many ways to accomplish any given task, but for this article we are primarily concerned with Valve's approach to multithreading and what it means to the gaming community.
Last week Valve Software invited us up to their headquarters in Bellevue Washington for their Hardware Day event. Valve usually has some pretty interesting stuff to show off, and they are one of several companies that consistently push the boundaries of what your computer hardware can do. As creator of the Half-Life series, Valve is one of the most respected gaming software companies around. Their Steam distribution network has also garnered quite a bit of attention over the years. Last year, the big news was the new HDR rendering that Valve added to their Source engine. So what has Valve been up to for the past year, and how will it affect the future of gaming?
The man himself, Gabe Newell
Some of you may recall some of the statements Valve Software founder Gabe Newell made in regards to the next generation platforms and the move towards multi-processor systems. The short summary is that creating efficient and powerful multithreaded code is extremely difficult, and there's a very real possibility that developers will need to throw away a lot of their existing code base. Both of these things are drawbacks for creating multithreaded games, but there are also important benefits. Perhaps the most important advantage is that if you need additional processing power in the near future, you are much more likely to get it by tapping into the power of multiple processors rather than waiting for clock speeds to increase.
While it is listed as a challenge, one of the points made by Valve is that computer games are typically designed to make maximum use of your system. "You're doing a disservice to the customer if you're not using all of the CPU power." Some might disagree with that sentiment, but at some point the choice has to be made between a game that looks better and/or performs faster and one that uses less computational resources. Then there's a secondary consideration: do you want to make a computer game that merely takes advantage of additional processing cores to enhance the gaming experience, or should a multi-core CPU be required? There are still a large number of single core processors in use today, and many of those people might be unhappy if they were forced to upgrade.
Tom Leonard, Multithreading Project Lead
The costs and challenges associated with creating multithreaded games help to explain why the previous gaming support for multiple processors has been limited at best, but with all of the major processor vendors moving towards multi-core chips, the installed user base has finally become large enough that it makes sense to invest the time and effort into creating a powerful multithreaded gaming engine. Valve Software set out to do exactly that over the past year. The efforts have been spearheaded by Valve programmer Tom Leonard, whose past experience includes work on C++ compilers, system utilities, and artificial intelligence among other things. Other Valve employees that have helped include Jay Stelly, Aaron Seeler, Brian Jacobson, Erik Johnson, and Gabe Newell.
Perhaps the most surprising thing is how much has been accomplished in such a relatively short time, and Valve Software provided the attendees with a couple benchmark applications to demonstrate the power of multi-core systems. Before we get to the actual performance of these utilities, however, let's take a look at what multithreading actually means, the various approaches that can be taken, and the areas that stand to benefit the most. There are of course many ways to accomplish any given task, but for this article we are primarily concerned with Valve's approach to multithreading and what it means to the gaming community.
55 Comments
View All Comments
primer - Tuesday, November 7, 2006 - link
it's a nice article. i'm anxious to see what develops out of Valve in the near future.how about using some Athlon FX, Opteron 100/1200 series or higher speed Athlon X2s for crying out loud. i know that here is a performance gap even with the higher AMD models currently, but please show us an attempt at not being as one-sided.
jm20 - Tuesday, November 7, 2006 - link
The tests at 2.0 and 2.4 Ghz for the AMD chips are there, you can plot how it 'should' improve. Here are my scaling projections based on the data given for the 939 platform.AMD Speed single dual
2.0 14.0 27.0
2.2 15.5 29.5
2.4 17.0 32.0
2.6 18.8 35.0
2.8 20.8 38.2
3.0 23.1 41.7
I just hope this will show up correctly :/
Very interesting article, I'm very excited to see an almost linear improvement from single to dual core.
yacoub - Tuesday, November 7, 2006 - link
Your Tested Systems details on page 8 - the last three show a CPU of a Venice 3200+ oc'd to 2.4GHz (hey that's what I run too!), but the headings suggest they should really show Intel chips. :)yacoub - Tuesday, November 7, 2006 - link
Yes please make it only visual and not actually a part of the game, because much like trying too hard to make graphics look realistic, it really just adds more frustration for the player than anything else. It's already annoying in HL2 getting caught up on the edge of prop_physics related objects. The last thing we need is also getting caught or bumped by another player ;)
JarredWalton - Tuesday, November 7, 2006 - link
If the world is more interactive, there might not actually be a need for "prop physics" objects. There's also the potential to make a game with different gameplay mechanics depending on how the character interacts with the world. It sounds like initially Valve will make it a visual enhancement, to make entities look more lifelike in their behavior, but down the road others could potentially do more. Like most of the enhancements, what we want to see is how they can actually change and improve gameplay beyond just being visual.yacoub - Tuesday, November 7, 2006 - link
"You're doing a disservice to the customer if you're not using all of the CPU power."okay so that alone shows the need for dual-core so the customer can offload background tasks to a second core so the game can truly get 100% of a core. ;)
timmiser - Tuesday, November 7, 2006 - link
Background tasks?? I agree with Gabe that I want all of my CPU working the game. I'm sitting here with an Athlon X2 4800+ and I can't run Flight Sim X at an acceptable frame rate all the while I watch the graph that shows CPU#2 at idle while CPU#1 tries to run the entire program by itself!On another note, how about Microsoft develope some type of new API (DirecThread?) that automatically takes care of utilizing multiple cores so that game companies like Valve don't have to employ entire multi-threaded R&D divisions just so their games use both cores.
It seems like we are going back to the caveman days before DirectInput, DirectSound, & DirectX etc. Remember when you had to choose your sound card, joystick, and video card from a list within the game?? Let's not go there again!!
-Tim
JarredWalton - Tuesday, November 7, 2006 - link
That was a direct quote from... Gabe I think. Others might disagree, but I thought it was an interesting take on things. As for background tasks, they usually only need a bit of CPU time (less than 5% in most cases), so unless you really want to encode videos and play games at the same time....yacoub - Tuesday, November 7, 2006 - link
What a worthless attempt at sarcasm:Why not just say something normal like:
It's not omg-witty, but at least that sentence doesn't end with a preposition. @___@
JarredWalton - Tuesday, November 7, 2006 - link
Which obviously ruined the whole article. Seriously yacoub, a little tact with posting would be nice. Rather than stating:You could have just said something normal like:
We are real people, and derogatory adjectives like "worthless" tend to irritate more than help. You may not intend it that way, but imagine for a second someone talking about what you worked on for a couple days last week and describing it as "absolute garbage". The key word in "constructive criticism" is to actually make it constructive.
Now, thanks for the suggestion, and I'm more than happy to change things a bit to appeas people. Like most people, I just appreciate a bit more consideration, even if I'm just doing my job here. :) As the old cliche goes, you can catch more flies with honey than with vinegar. (Well, my grandpa used to say that anyway.)